כיצד להתקין שרת אינטרנט עם Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [חלק 4: Nginx + PHP עם SpawnFastCGI]

לפני כמה זמן סיפרתי לך על סדרת ההדרכות הזו, כיצד להתקין ולהגדיר תצורה של שרת לאירוח ביקוש גבוה. מאמר זה יעסוק בהתקנה וקביעת תצורה Nginx + PHP עם SpawnFastCGI:

Spawn_FastCGI:

ניתן לומר שזה מה שמחבר את Nginx עם PHP, כלומר, גם אם מותקנת בהם חבילת PHP5 אם לא מותקנת ומבוצעת Spawn_FastCGI כאשר הם פותחים אתר ב- PHP, הדפדפן יוריד את הקובץ, זה לא יראה להם שום דבר שהוא .php תוכנת מכיוון שהשרת אינו יודע לעבד קבצי .php, לכן חיוני להתקין ולהגדיר את תצורת Spawn_FastCGI.

אם השתמשנו באפצ'י זה יהיה משהו פשוט כמו התקנת חבילת libapache2-mod-php5, אך מכיוון שאנו משתמשים ב- Nginx נצטרך להתקין את חבילת spawn-fcgi במקום זאת. כמו כן, במדריך אני אסביר כיצד ליצור עבורו סקריפט ראשוני ב- /etc/init.d/ כך שתוכלו לשלוט בו בצורה נוחה יותר.

1. התקנה:

נתחיל מהדבר הראשון, נתקין את Spawn-FastCGI ו- PHP מהמאגרים שלנו.

כל הפקודות שיש לבצע מבוצעות עם הרשאות שורש, או על ידי הצבת סודו בתחילת כל שורה או על ידי כניסה לשורש

אם בשרת שלך אתה משתמש בהפצה כגון דביאן, אובונטו או נגזרת כלשהי במסוף עליך לשים את הדברים הבאים ולחץ זן :

aptitude install spawn-fcgi php5-cgi php5-curl

aptitude אינו מותקן כברירת מחדל באובונטו, אולם אני ממליץ להתקין אותו ולהשתמש בו במקום apt-get, מכיוון ש aptitude עושה ניהול טוב יותר של תלות במקרים מסוימים

באופן אישי, אני לא ממליץ על שום נגזרת של דביאן, אפילו לא אובונטו לשרתים, לאורך השנים החוויות שלי לא היו מספקות לחלוטין. הבחירה הראשונה שלי עבור מערכת ההפעלה של השרת היא דביאן, ואז הייתי חושב על CentOS, סוף סוף איזה BSD

2. תצורה:

בשלב הקודם (כשהתקנו את Nginx) הורדנו קובץ שנקרא nginx-spawn-fastcgi.tar.gz שכאשר רוכסן אותו הוא יצר את התיקיה nginx-spawn-fastcgi בביתנו, נעתיק את הקובץ ממנו spawn-fastcgi ל- /etc/init.d/:

cp ~/nginx-spawn-fastcgi/spawn-fastcgi /etc/init.d/

כמו כן, אנו זקוקים להפעלת ה- php-fastcgi ב- / usr / bin /

cp ~/nginx-spawn-fastcgi/php-fastcgi /usr/bin/

מושלם, יש לנו את הקובץ מוכן שיאפשר לנו לשלוט ב- spawn-fastcgi וגם בהפעלה php-fastcgi, עכשיו אנחנו הולכים להתחיל spawn-fastcgi:

/etc/init.d/spawn-fastcgi start

זה יראה לנו משהו כמו: spawn-fcgi: ילד הוליד בהצלחה: PID: 3739

עכשיו אנחנו הולכים להחליף את הקובץ /etc/nginx/sites-available/mywebsite.net בקובץ ~ / nginx-spawn-fastcgi / mywebsite_plus_php.net

cp ~/nginx-spawn-fastcgi/mywebsite_plus_php.net /etc/nginx/sites-available/mywebsite.net

למה? פשוט, מכיוון שלקובץ mywebsite.net הקודם שלנו אין תמיכה ב- PHP, כלומר הוא Nginx בלבד, בעוד שהקובץ mywebsite_plus_php.net כן תומך ב- PHP, כלומר Nginx + PHP באמצעות SpawnFastCGI.

ההבדלים בין קבצים אלה הם כמה, למשל:

  • בשורה 3 הקובץ התומך ב- PHP מתווסף index.php
  • שורה חדשה תחת מספר 3 המכילה: fastcgi_index index.php;
  • מספר שורות חדשות אחרות המסבירות ל- Nginx כיצד לעבד PHP.
  • ... .. בקיצור, הנה תמונה שתעזור לך לדעת את ההבדלים בין שני הקבצים:

nginx_mysql_spawn-fastcgi_comparing_mywebsite_confs

 

הקובץ mywebsite_plus_php.net הוא vhost המשמש דוגמה, כלומר, ובמילים אחרות, עלינו לשנות אותו ולקבוע את התצורות שלנו.

עלינו לשנות את הדברים הבאים:

  • access_log (שורה 3): זה יהיה הנתיב של קובץ יומן הגישה לאתר זה
  • error_log (שורה 4): זה יהיה הנתיב של קובץ יומן השגיאות לאתר זה
  • server_name (שורה 5): כתובת ה- URL, התחום שמתארח באותה תיקיה, למשל, אם זה היה פורום FromLinux זה יהיה: server_name forum.fromlinux.net
  • שורש (שורה 6): הנתיב לתיקייה בה נמצאים קבצי ה- HTML, בואו להשאיר את זה ב- / var / www / מכיוון שזה יהיה רק ​​מבחן
ברור שהם חייבים לציין ברשומות ה- DNS שלהם של ספק האירוח שלהם (באמצעות CPanel או כלי אחר) שהדומיין או תת-הדומיין המוצהרים ב- server_name ממוקמים ב- IP של שרת זה שהם מגדירים. כלומר, ב- DNS שבו הם יוצרים תת-דומיינים עבור הדומיין שלהם, עליהם להצהיר כי הדומיין או תת-הדומיין שהם הכניסו בשורה 5 נמצאים בשרת זה (שרת זה = כתובת ה- IP של השרת המדובר)

מוכן, עכשיו נפעיל מחדש את Nginx:

/etc/init.d/nginx restart

כדי לבדוק שה- Nginx שלנו מעבד PHP כראוי, בואו נעתיק את הקובץ phptest.php לתיקיה המתארחת, כלומר זו המצוינת בשורה מס '6 בקובץ mywebsite_plus_php.net (למשל, root / var / www /), בהנחה שהאתר יתארח ישירות ב- / var / www / יהיה:

cp ~/nginx-spawn-fastcgi/phptest.php /var/www/

נניח שבשורה 5 של mywebsite_plus_php.net (כלומר, קו שם השרת) אמרנו שהאתר שלנו הוא www.mysite.net אז עלינו לגשת ל- www.mysite.net/phptest.php. במילים אחרות, הרעיון הוא לגשת לקובץ phptest.php מהדפדפן שלנו, ואם הדברים הבאים מופיעים ה- Nginx שלנו מקושר בצורה מושלמת עם PHP:

nginx_mysql_spawn-fastcgi_tersting_nginx_php

 

במקרה וזה לא נראה, כלומר שהדפדפן מנסה להוריד את קובץ ה- .php ... המשמעות היא שהם עשו משהו לא בסדר, שהם לא החליפו את /etc/nginx/sites-available/mywebsite.net ב- ~ / nginx-spawn-fastcgi / mywebsite_plus_php.net ... ששכחת להפעיל מחדש את Nginx עם /etc/init.d/nginx הפעלה מחדש או ששכחת להתחיל Spawn-FastCGI עם /etc/init.d/spawn-fastcgi התחלה

עד כה המדריך לקישור Nginx עם PHP באמצעות SpawnFastCGI, אנו זקוקים רק ל- MySQL ו- APC 🙂

אני מקווה שזה מעניין עבורך.


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

11 תגובות, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   F3niX דיג'ו

    אם מדובר ברבע, מדוע התמונה אומרת 3? התחיל ב 0 אני מניח? פוסט מצוין.

    לגבי

    1.    KZKG ^ גאארה דיג'ו

      1: מצגת
      2: נגינקס
      שלישי: Nginx + PHP (Spawn_FastCGI)

      ???

      תודה שקראת ^ _ ^

      1.    רודריגו דיג'ו

        מה קרה לחלק 4 ???
        ועם הבאים ?????

  2.   rpayanm דיג'ו

    היי

    זו תהיה בחירה טובה יותר אם במקום mysql תשתמש ב- MariaDB, כפי שאתה צריך לדעת שהאחרון הוא מזלג של הראשון, וכבר יש דיבורים שזה יהיה MySQL של ​​העתיד (http://www.genbetadev.com/bases-de-datos/mariadb-sera-el-mysql-del-futuro) כמו Mysql הוא בחינם, עד לנקודה.

    SkySQL, חברה המספקת שירותים ממאגרי מידע בחינם, תמכה כלכלית בפרויקט MariaDB (http://www.genbetadev.com/bases-de-datos/mariadb-y-skysql-unen-fuerzas-para-llevar-a-mariadb-a-lo-mas-alto) וגוגל שרוצה להפסיק תלוי ב- Mysql, כפי שעשתה גם ויקיפדיה, ותבצע את המעבר מ- MySQL 5.1 ל- MariaDB 10.0 בעזרת, בדיוק, של SkySQL, שכבר מומחים בתחום זה.

    Salu2.

    1.    KZKG ^ גאארה דיג'ו

      שלום,

      כן כמובן, אני מכיר את MariaDB ולמעשה, כבר דיברנו על זה: https://blog.desdelinux.net/tag/mariadb/

      עם זאת, כרגע אני משתמש ב- MySQL מכיוון שאני עושה הדרכות אלו מהניסיון המסוים שהיה לי בעת העברה מלינוקס (עם כל שירותיה) לשרתים אחרים, באותה תקופה שינינו את הטכנולוגיה לחלוטין ואת המשימות או השינויים שהייתי צריך. הפנים לא היו מעטים.
      קרא את ההערה הזו שלי מאותו הרגע: https://blog.desdelinux.net/el-blog-desdelinux-abandona-hostgator-y-pasa-a-gnutransfer/comment-page-1/#comment-81291

      הרעיון הסופי הוא אכן כן, נודד ל- MariaDB, אך לא הספקתי לעשות את הבדיקות הרלוונטיות 🙂

      תודה שקראת

  3.   אליוטיים 3000 דיג'ו

    מדריך זה יעזור לי להתקין את zPanel X עם NGINX כדי לא להרוות את האתר שלי בעת המעבר ל- GNUPanel VPS.

  4.   דראגנל דיג'ו

    מתנת חג המולד? ציפיתי לברכות לכולם.

    1.    KZKG ^ גאארה דיג'ו

      תודה שותף 😀

  5.   St0rmt4il דיג'ו

    נוסף למועדפים!

    אגב, יש לי את הספק והשאלה הזו, האם באמת לנגינקס יש יותר ביצועים מאשר לאפאצ'י?

    ברכות!

    1.    KZKG ^ גאארה דיג'ו

      ובכן, ניתן לבצע אופטימיזציה של אפאצ'י הרבה אבל ... עד עכשיו, גוגל זה וכמעט כולנו מסכימים ש- Nginx צורכת הרבה פחות זיכרון RAM, יש ביצועים לא מבוטלים, אם כי זה לא כל כך פשוט בתצורה.

  6.   לואיס מוראלס דיג'ו

    טוב KZKG ^ גאארה מידע מעולה לאלו מאיתנו שמתעניינים בעולם הזה, שאלה למתי ההודעה הרביעית 😀