Page 2 of 7

Re: nginx + php-fpm

Posted: Sat Nov 23, 2013 9:37 pm
by bondbig
ок, спасибо.
А что по механизму апгрейда?

Re: nginx + php-fpm

Posted: Sun Nov 24, 2013 10:06 am
by skid
Слшиком рано говорить об этом. Первостепенная задача сделать поддержку. В зависимости от реализации будут уточнятся детали механизма миграции и переключений.

Re: nginx + php-fpm

Posted: Tue Nov 26, 2013 11:12 am
by candela
skid wrote:Поддержка php-fpm планируется в релизе 0.9.8-9
skid wrote:Релиз через 2-3 месяца примерно. Сложно сказать точнее.
ага, спасибо

Re: nginx + php-fpm

Posted: Thu Nov 28, 2013 8:25 am
by Skorsa
Это будет отдельная модификация Весты или в панели Веста будет реализована возможность переключатся между конфигурациями?

Re: nginx + php-fpm

Posted: Thu Nov 28, 2013 8:31 am
by Skorsa
Есть предложение сделать что то вроде этого

Два пункта в панели управления

1.Экономный режим (для слабых машин)

2. Стандартный режим (для сильных машин)

Причём под экономичным режимом написать чем конкретно грозит его использование (например проблемы с htaccess )

Ну или возможность отключать или подключать службы в пункте "Службы"

Re: nginx + php-fpm

Posted: Thu Nov 28, 2013 9:11 am
by skid
Спасибо за мысли. Когда начнем работу над реализацией, будем иметь их в виду.

Re: nginx + php-fpm

Posted: Fri Dec 06, 2013 5:40 pm
by kinolaev
Есть также "средний" режим: nginx -> apache -> php5-fpm через fastcgi. Для этого нужно:
1) установить и включить модули апача:

Code: Select all

apt-get install libapache2-mod-fastcgi
a2enmod alias actions fastcgi
service apache2 restart
2) установить php5-fpm, создать pool для пользователя vesta

Code: Select all

apt-get install php5-fpm
mv /etc/php5/fpm/pool.d/www.conf /etc/php5/fpm/pool.d/%user%.conf
и заменить в нем:
- [www] на [%user%]
- для параметров user и group установить значение %user%
- для listen - /var/run/php5-fpm-%user%.sock
(%user% - имя пользователя vesta)
3) скопировать default.tpl в php-fpm.tpl и default.stpl в php-fpm.stpl:

Code: Select all

cp /usr/local/vesta/data/templates/web/apache2/default.tpl /usr/local/vesta/data/templates/web/apache2/php-fpm.tpl
cp /usr/local/vesta/data/templates/web/apache2/default.stpl /usr/local/vesta/data/templates/web/apache2/php-fpm.stpl
4) и отредактировать новые шаблоны:
- php-fpm.tpl

Code: Select all

<VirtualHost %ip%:%web_port%>

    ServerName %domain_idn%
    %alias_string%
    ServerAdmin %email%
    DocumentRoot %docroot%
    ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
    Alias /vstats/ %home%/%user%/web/%domain%/stats/
    Alias /error/ %home%/%user%/web/%domain%/document_errors/
    #SuexecUserGroup %user% %group%
    CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
    CustomLog /var/log/%web_system%/domains/%domain%.log combined
    ErrorLog /var/log/%web_system%/domains/%domain%.error.log
    <Directory %docroot%>
        AllowOverride All
        Options +Includes -Indexes +ExecCGI
        <IfModule mod_fastcgi.c>
          <FilesMatch \.php$>
            SetHandler php5-fpm-%user%
          </FilesMatch>
        </IfModule>
    </Directory>
    <Directory %home%/%user%/web/%domain%/stats>
        AllowOverride All
    </Directory>

    <IfModule mod_fastcgi.c>
      Action php5-fpm-%user% /php5-fcgi
      Alias /php5-fcgi %home%/%user%/web/%domain%/cgi-bin/php5-fcgi
      FastCgiExternalServer %home%/%user%/web/%domain%/cgi-bin/php5-fcgi -socket /var/run/php5-fpm-%user%.sock -pass-header Authorization
    </IfModule>
    <IfModule mod_ruid2.c>
        RMode config
        RUidGid %user% %group%
        RGroups www-data
    </IfModule>
    <IfModule itk.c>
        AssignUserID %user% %group%
    </IfModule>

    Include %home%/%user%/conf/web/%web_system%.%domain%.conf*

</VirtualHost>
- php-fpm.stpl

Code: Select all

<VirtualHost %ip%:%web_ssl_port%>

    ServerName %domain_idn%
    %alias_string%
    ServerAdmin %email%
    DocumentRoot %sdocroot%
    ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
    Alias /vstats/ %home%/%user%/web/%domain%/stats/
    Alias /error/ %home%/%user%/web/%domain%/document_errors/
    #SuexecUserGroup %user% %group%
    CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
    CustomLog /var/log/%web_system%/domains/%domain%.log combined
    ErrorLog /var/log/%web_system%/domains/%domain%.error.log
    <Directory %sdocroot%>
        AllowOverride All
        SSLRequireSSL
        Options +Includes -Indexes +ExecCGI
        <IfModule mod_fastcgi.c>
          <FilesMatch \.php$>
            SetHandler php5-fpm-%user%
          </FilesMatch>
        </IfModule>
    </Directory>
    <Directory %home%/%user%/web/%domain%/stats>
        AllowOverride All
    </Directory>
    SSLEngine on
    SSLVerifyClient none
    SSLCertificateFile %ssl_crt%
    SSLCertificateKeyFile %ssl_key%
    %ssl_ca_str%SSLCertificateChainFile %ssl_ca%

    <IfModule mod_fastcgi.c>
      Action php5-fpm-%user% /php5-fcgi-ssl
      Alias /php5-fcgi-ssl %home%/%user%/web/%domain%/cgi-bin/php5-fcgi-ssl
      FastCgiExternalServer %home%/%user%/web/%domain%/cgi-bin/php5-fcgi-ssl -socket /var/run/php5-fpm-%user%.sock -pass-header Authorization
    </IfModule>
    <IfModule mod_ruid2.c>
        RMode config
        RUidGid %user% %group%
        RGroups www-data
    </IfModule>
    <IfModule itk.c>
        AssignUserID %user% %group%
    </IfModule>

    Include %home%/%user%/conf/web/s%web_system%.%domain%.conf*

</VirtualHost>
(добавлено то, что внутри <IfModule mod_fastcgi.c>)
5) ну и собственно, изменить шаблон apache для нужного сайта через vesta (также понадобится пересоздать web)

Плюсы:
1) экономия ресурсов
2) можно включить php5-fpm только для определенных сайтов
3) рабочий htaccess
Минусы:
1) pool'ы нужно создавать вручную

Конфиг рабочий, проверен лично. Жду предложений по улучшению)

Re: nginx + php-fpm

Posted: Fri Jan 31, 2014 6:45 pm
by grob
Подпишусь...

Re: nginx + php-fpm

Posted: Thu May 29, 2014 12:37 pm
by viliam
Апну, что ли. Сабж оч. актуален.

Re: nginx + php-fpm

Posted: Fri May 30, 2014 4:18 pm
by imperio
Будет в версии 0.9.9-1