Pull to refresh

Amazon EC2 + PHP-fpm + Nginx

Reading time2 min
Views6K
Наступил момент когда я решил перевести свой проект FastCGI, мне не нужна была производительность, не нужна была стабильность или еще какие-то преимущества, которые предоставляет FastCGI. В первую очередь это было желание узнать что то новое, понять как оно работает, и посмотреть все преимущества в деле.
Почитав большое количество информации найденной в интернете, я сделал выбор в пользу php-fpm+Nginx.
Почему именно эта связка, ну во-первых потому что проект написан на php, во-вторых неформальным стандартом в сети является именно она.

Первым делом я перечитал огромную кучу информации, найденной в поисковиках, и везде было практически одно и то же, скачать php, наложить патч php-fpm, make, make install, решение вполне понятное но не совсем правильное для ОС с системами управления пакетами.

Поэтому мной было найдено решение с использованием пакетного менеджера, его я и приведу ниже.
Все манипуляции производились мной на Amazon EC2 micro с установленной ОС Amazon Linux x64, поэтому буду описывать все манипуляции для этой системы. Для других систем все и пакетных менеджеров все практически идентично.

Установка компонентов

Установка nginx:
sudo yum install nginx

Установка php(мне это не понадобилось т.к. у меня работал Apache+php):
sudo yum install php

Установка php-fpm:
sudo yum install php-fpm

После установки понадобиться небольшая настройка.

Настройка nginx для работы с php-fpm, файл конфигурации находиться /etc/nginx/nginx.conf:
Вся настройка сводиться к добавления внутрь секции «location» следующего текста. Не забудет так же исправить порт на котором работает сервис если вы так же как и я изначально его будете ставить на систему с уже работающим веб-сервером Apache.

  location ~ \.php$ {
            #root       ;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
            include        fastcgi_params;
        }


Для запуска связки в режиме стандартных настроек, ничего менять в файле конфигурации(/etc/php-fpm.conf) не надо. Все параметры конфигурации хорошо описаны в самом файле, так же дополнительно можно посмотреть тут.
Запуск

Когда настройки завершены переходим к запуску, здесь все еще проще
sudo service php-fpm start
sudo service nginx start


Тестирование, сравнение apache+php и nginx+php-fpm, приводить здесь не буду потому что это статья про настройку. Выражу здесь только свое субъективное мнение nginx+php-fpm работает не значительно быстрее apache+php.
Tags:
Hubs:
-6
Comments6

Articles

Change theme settings