Настраиваем связку Nginx + PHP-FPM с панелью ISPManager

Опубликовано admin - пт, 04/27/2012 - 05:46

В этой заметке мы рассмотрим каким образом можно настроить связку Nginx + PHP-FPM, когда на сервере установлена панель ISPManager. Это решение отлично будет работать не только для Drupal сайта;) Настройку проведем для работы Drupal сайта, аналогично статье Настраиваем Nginx + Php-fpm + Apc на Debian.

Сама по себе панель ISPManager отличная штука, мы ее используем на многих выделенных серверах, т.к. она не дорогая и позволяет из коробки настроить веб-сервера в режимах:

  • Apache + mod_php / cgi
  • Nginx + Apache
  • Nginx (в этом случае php обрабатываться не будет)

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

Настройка ISPManager

В панеле ISPManager на странице "Возможности" устанавливаем Nginx и останавливаем Apache.
Создаем файл /usr/local/ispmgr/etc/server.templ со следующим содержимым:

  location / {
	try_files $uri @drupal;
  }

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

  location @drupal {
	fastcgi_pass 127.0.0.1:9000;
        fastcgi_index  index.php;
	fastcgi_read_timeout 600;
        fastcgi_param  SCRIPT_FILENAME      $document_root/index.php;
        fastcgi_param  QUERY_STRING         q=$uri&$args;
        fastcgi_param  REQUEST_METHOD       $request_method;
        fastcgi_param  CONTENT_TYPE         $content_type;
        fastcgi_param  CONTENT_LENGTH       $content_length;
        fastcgi_param  REDIRECT_STATUS      200;
        fastcgi_param  SCRIPT_NAME          /index.php;
        fastcgi_param  REQUEST_URI          $request_uri;
        fastcgi_param  DOCUMENT_URI         $document_uri;
        fastcgi_param  DOCUMENT_ROOT        $document_root;
        fastcgi_param  SERVER_PROTOCOL      $server_protocol;
        fastcgi_param  GATEWAY_INTERFACE    CGI/1.1;
        fastcgi_param  SERVER_SOFTWARE      nginx/$nginx_version;
        fastcgi_param  REMOTE_ADDR          $remote_addr;
        fastcgi_param  REMOTE_PORT          $remote_port;
        fastcgi_param  SERVER_ADDR          $server_addr;
        fastcgi_param  SERVER_PORT          $server_port;
        fastcgi_param  SERVER_NAME          $server_name;  
  } 

Установка PHP-FPM

Установка Php-fpm достаточно проста, но нужно подключить репозиторий dotdeb.org:

apt-get install php5-fpm

После проведенной настройки при создании WWW доменов (виртуальных хостов) в конфигурацию Nginx будет дописываться информация из файла шаблона server.templ

Смею заметить, что статья неверная, так как отключение Apache в IPSmanager приведет к выключенной панели.

Да, Вы правы к панели через Apache доступа не будет, но вполне можно пользоваться встроенным в панель веб сервером, который можно включить на порту 1500.

При дефлотной установке панели с нуля, данные настройки не позволяют создать www профиль в панели, пишет что то про синтактическу ошибку в данном шаблоне, можно более развернутую статью сделать от А до Я если не сложно ...

попробуйте перезагрузить nginx через ssh он покажет строку в которой ошибка, ну или в логах посмотреть. Если не получится пишите на почту info@drupal-admin.ru помогу разобраться.

скажите инструкция для привязки ISP + nginx + PHP-fpm ( без apache посередине ) есть в природе вообще ?

Добавить комментарий

Filtered HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.
  • Web page addresses and email addresses turn into links automatically.