Как установить веб-сервер с Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [4-я часть: Nginx + PHP с SpawnFastCGI]

Некоторое время назад Я вам рассказывал об этой серии уроков, о том, как установить и настроить сервер для хостинга с высокими требованиями. Эта статья будет об установке и настройке Nginx + PHP con SpawnFastCGI:

Спаун_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 или какой-либо производный в терминале, вы должны ввести следующее и нажать Enter :

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 - это виртуальный хост, который служит примером, то есть, другими словами, мы должны изменить его и установить наши конфигурации.

Мы должны изменить следующее:

  • access_log (строка 3): это будет путь к файлу журнала доступа к этому сайту.
  • error_log (строка 4): это будет путь файла журнала ошибок к этому сайту.
  • server_name (línea 5): La URL, dominio que está hosteado en esa carpeta, por ejemplo, si se tratase del foro de DesdeLinux sería: server_name foro.desdelinux.net
  • root (строка 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 (то есть в строке server_name) мы сказали, что наш сайт - 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 restart или что вы забыли запустить Spawn-FastCGI с помощью /etc/init.d/spawn-fastcgi start

Пока что руководство по связыванию Nginx с PHP с помощью SpawnFastCGI, нам нужны только MySQL и APC 🙂

Надеюсь, вам это интересно.


11 комментариев, оставьте свой

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

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

  1.   f3niX сказал

    Если это четверть, почему на изображении написано 3? началось с 0 я думаю? отличный пост.

    привет

    1.    КЗКГ ^ Гаара сказал

      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.    КЗКГ ^ Гаара сказал

      Привет,

      Да, конечно, я знаю MariaDB и, собственно, мы уже говорили об этом: https://blog.desdelinux.net/tag/mariadb/

      No obstante, ahora mismo estoy usando MySQL pues estos tutoriales los hago desde la experiencia particular que tuve al migrar DesdeLinux (con todos sus servicios) hacia otros servidores, en ese momento cambiamos la tecnología completamente y las tareas o cambios que tuve que afrontar no fueron pocos.
      Прочтите этот мой комментарий с того момента: 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.    КЗКГ ^ Гаара сказал

      Спасибо, партнер 😀

  5.   ST0RMT4IL. сказал

    Добавлено в избранное!

    Кстати, у меня есть это сомнение и вопрос, действительно ли Nginx имеет большую производительность, чем Apache?

    Привет!

    1.    КЗКГ ^ Гаара сказал

      Что ж, Apache можно сильно оптимизировать, но ... до сих пор Google и почти все мы согласны с тем, что Nginx потребляет намного меньше оперативной памяти, имеет неплохую производительность, хотя при настройке это не так просто.

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

    Хороший КЗКГ ^ Гаара отличная информация для тех из нас, кто интересуется этим миром, вопрос, когда 4 пост