Как да инсталирам уеб сървър с 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.

Ако използвахме Apache, това би било нещо толкова просто, колкото инсталирането на пакета libapache2-mod-php5, но тъй като използваме Nginx, ще трябва да инсталираме пакета spawn-fcgi вместо това. Също така в урока ще обясня как да създадете първоначален скрипт за него в /etc/init.d/, за да можете да го контролирате по-удобно.

1. Инсталация:

Ще започнем с първото нещо, инсталирайте Spawn-FastCGI и PHP от нашите хранилища.

Всички команди, които ще бъдат изпълнени, се изпълняват с права на root, или чрез поставяне на sudo в началото на всеки ред, или чрез влизане като root

Ако на вашия сървър използвате дистрибуция като Debian, Ubuntu или някаква производна в терминала, трябва да поставите следното и да натиснете Въведете :

aptitude install spawn-fcgi php5-cgi php5-curl

aptitude не е инсталиран по подразбиране в Ubuntu, но препоръчвам да го инсталирате и използвате вместо apt-get, тъй като aptitude прави по-добро управление на зависимостите в определени случаи

Лично аз не препоръчвам производни на Debian, дори Ubuntu за сървъри, през годините опитът ми не беше напълно задоволителен. Първият ми избор за сървърни операционни системи е Debian, тогава бих помислил за 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 адресът, домейнът, който се хоства в тази папка, например, ако беше форумът DesdeLinux ще бъде: име на сървър_на форум.desdelinux. 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 start

Засега урокът за свързване на Nginx с PHP с помощта на SpawnFastCGI, ние се нуждаем само от MySQL и APC 🙂

Надявам се това да е интересно за вас.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   f3niX каза той

    Ако е четвърт, защо на изображението пише 3? започна в 0 Предполагам? отличен пост.

    поздрави

    1.    KZKG ^ Гаара каза той

      1-во: Презентация
      2-ро: Nginx
      3-то: Nginx + PHP (Spawn_FastCGI)

      ????

      Благодаря, че прочетохте ^ _ ^

      1.    Родриго каза той

        какво се случи с част 4 ???
        и с последващите ?????

  2.   рпаянм каза той

    Здравейте:

    Би било по-добър избор, ако вместо 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) и Google, който иска да спре в зависимост от Mysql, както направи Уикипедия, и ще премине от MySQL 5.1 към MariaDB 10.0 с помощта именно на SkySQL, които вече са експерти в тази област.

    Поздрав2.

    1.    KZKG ^ Гаара каза той

      Здравейте,

      Да, разбира се, познавам MariaDB и всъщност вече говорихме за това: https://blog.desdelinux.net/tag/mariadb/

      В момента обаче използвам MySQL, защото правя тези уроци от конкретния опит, който имах при мигрирането. DesdeLinux (с всичките му услуги) към други сървъри, по това време променихме напълно технологията и задачите или промените, с които трябваше да се сблъскам, не бяха малко.
      Прочетете този мой коментар от този момент: https://blog.desdelinux.net/el-blog-desdelinux-abandona-hostgator-y-pasa-a-gnutransfer/comment-page-1/#comment-81291

      Крайната идея е наистина да, мигрирайте към MariaDB, но не съм имал време да направя съответните тестове 🙂

      Благодаря за четенето

  3.   eliotime3000 каза той

    Този урок ще ми помогне да инсталирам zPanel X с NGINX, за да не наситя сайта си при мигриране към GNUPanel VPS.

  4.   Драгнел каза той

    Коледният подарък? Очаквах с нетърпение поздравления за всички.

    1.    KZKG ^ Гаара каза той

      Благодаря партньор 😀

  5.   st0rmt4il каза той

    Добавено към любими!

    Между другото, имам това съмнение и въпрос, наистина ли Nginx има по-голяма производителност от Apache?

    Поздрави!

    1.    KZKG ^ Гаара каза той

      Е, Apache може да бъде оптимизиран много, но ... досега, Google и почти всички от нас са съгласни, че Nginx консумира много по-малко RAM, има не по-малка производителност, въпреки че не е толкова просто при конфигуриране.

  6.   Луис Моралес каза той

    Добър KZKG ^ Gaara отлична информация за онези от нас, които се интересуват от този свят, въпрос, кога четвъртия пост 😀