LEMP

На эту тему довольно много информации можно найти на просторах всемирной паутины, но нет такого “единого” места, где написано стоит ли использовать эту связку для той или иной CMS, как ее настраивать под CMS, как запустить php-fpm от имени конкретного пользователя, как и чем преобразовать .htaccess в реврайты для nginx’а и, собственно, о возможных проблемах и их решениях. Приходиться тратить время и собирать информацию “по кусочкам”. Я же хочу все это вместить в 2-3 статьях. Простым языком, чтобы каждый мог воспользоваться моими советами/рекомендациями или наоборот – опровергнуть их.

Эта статья – вводная. В ней будет описан сама установка связки Nginx + PHP-FPM и механизм взаимодействия панельки ISPmanager с этой связкой. Приступим..

Все описанное в этой и последующих статьях успешно протестировано и работает на Centos 6.3.

Предполагается, что у нас уже установлена панель ISPmanager.

  1. Заходим в панель по 1500 порту
  2. Во вкладке “Возможности” выключаем apache. Именно выключаем, не удаляем! После этого, панель будет работать только по порту 1500
  3. В этом же разделе устанавливаем актуальную версию nginx (если установлен был до этого, просто пропускаем этот шаг)
  4. Теперь настало время установить PHP-FPM. В консоли из-под рута выполняем:
yum install php-fpm

После этих действий у нас установлен Nginx и PHP-FPM.

Теперь осталось “подружить” панель с этой связкой. В консоли, из-под рута, создаем файл с конфигом:

vi /usr/local/ispmgr/etc/server.templ
                root $root_path;
                set $subdomain "";
                server_name_in_redirect off;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $host;

                #========== Our rules ===========

                location / {
                   try_files       $uri $uri/;
                }

                #================

                location ~ \.php$ {
                    try_files       $uri $uri/;
                    fastcgi_pass 127.0.0.1:9000;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include fastcgi_params;
                }

                location = /favicon.ico {
                    log_not_found off;
                    access_log off;
                }

                location = /robots.txt {
                    allow all;
                    log_not_found off;
                    access_log off;
                }

                location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
                    access_log off;
                    expires max;                }

                location ~ (/\.ht|/bitrix/modules|/upload/support/not_image|/bitrix/php_interface) {
                    deny all;
                }

                location ~ /.svn/ {
                    deny all;
                }

                location ~ /\.ht {
                    deny  all;
                }

После этого перезагружаем панель и включаем демон php-fpm:

killall -9 ispmgr
service php-fpm start

На этом сама связка закончена. В следующей статье я рассмотрю инструмент для преобразования .htaccess в реврайты для nginx, как с ними работать, как вставлять преобразованные реврайты в наш конфиг. Кроме того, по возможности я буду публиковать оптимальный конфиг хостов nginx для популярный CMS. На очереди – Diafan.

Подписываемся на обновления блога по Email:

Введите адрес электронной почты



Метки: , , , , , , ,

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