Page 4 of 7

Re: nginx + php-fpm

Posted: Sat Sep 20, 2014 2:50 pm
by imperio
Скажите пожалуйста будет или нет все таки такая поддержка ?
Конечно будет. Чтобы выполнить эту задачу нужно решить некоторые зависимости.
На данном этапе мы заняты двумя другими функциями. Файловый менеджер, который будет в платной версии и Брандмауэр, который мы решили реализовать в бесплатной версии. Изначально обе функции планировались только в платной версии.

ВОПРОС: nginx + php-fpm

Posted: Fri Sep 26, 2014 5:11 am
by WhiteWind
Бодрого утра разработчикам Vesta!

Дорогие разработчики! Пока мы ждем реализацию php-fpm + nginx нужно как-то работать с ней и сейчас. В принципе, изменив шаблоны все более-менее стартует и работает, но запускается от одного пользователя, а мне искренне хочется запускать от индивидуальных.
Посему, в виду отсутствия полной документации (или я не нашел), хочу распросить: есть ли способ запускать действия по событиям, например, создания домена, или пользователя?
То есть, я, например, хочу создавать новый пул php-fpm для каждого нового пользователя, а в его конфигурации прописывать нужный номер порта. Есть сейчас такая возможность и что для этого поковырять?

Re: nginx + php-fpm

Posted: Sun Nov 16, 2014 2:46 pm
by AndryCat
Доброго времени суток.

Какие-то сроки по сабжу появились?

Re: nginx + php-fpm

Posted: Sun Nov 16, 2014 3:41 pm
by imperio
Задача для нас самая главная, но по срокам сориентировать пока не можем.

Re: nginx + php-fpm

Posted: Mon Dec 08, 2014 12:23 pm
by radiolip
)))

Re: nginx + php-fpm

Posted: Mon Dec 08, 2014 1:10 pm
by radiolip
Сегодня хотел реализовать php fpm + nginx на тестовом сервере, исключая Apache, без панели это конечно сложно и не удобно таки. С vesta к сожалению не работает.

Re: nginx + php-fpm

Posted: Mon Dec 08, 2014 6:50 pm
by imperio
Apache + Nginx вполне хорошая связка

Re: nginx + php-fpm

Posted: Mon Dec 15, 2014 11:54 am
by krasniy001
Тоже ждал связку php+nginx в итоге не дождавшись перешел на другую панель, но используя эту связку могу сказать что преимущества в ней нет, лучше использовать Apache+Nginx как сказал Imperio, большая часть специфических сайтов на ней не работает потому что под ЧПУ нужно создавать специальные правилы, из коробки этого не будет, максимум запустится Wordpress, Joomla и т.п. во вторых ожидаемого прироста в производительности нет, единственный увиденный плюс это изоляция процессов каждого юзера.
Меня интересует другое, почему нет частых обновленний? Нет развития, нововведений, это же все таки хостинг тут меняется все каждый день. Как можно делать ставку на такой продукт? Разработчики обьясните, панелью некому заниматься? Ведь отличное начало было.

Re: nginx + php-fpm

Posted: Mon Dec 15, 2014 12:13 pm
by imperio
Панель продолжает активно развиваться. Прошлый релиз был в октябре, следующий планируем выпустить в конце декабря одновременно с выходом коммерческой версии. Если конечно успеем всё доделать. Сейчас готовится к тестированию файловый менеджер. Наш специалист работает над портировением CentOS 7 и Ubuntu 14.10. Также идёт работа над nginx only.
https://bugs.vestacp.com/
In Progress - это над чем мы сейчас работаем.

Re: nginx + php-fpm

Posted: Wed Dec 24, 2014 9:48 am
by viliam
kinolaev wrote:Есть также "средний" режим: 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'ы нужно создавать вручную

Конфиг рабочий, проверен лично. Жду предложений по улучшению)
Настраивал по этому ману но получаю ошибку 500

ЛОГ:
2014/12/24 04:44:45 [error] 6539#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 777.777.777.777, server: site.ru, request: "GET / HTTP/1.1", upstream: "http://111.111.111.11:8080/", host: "site.ru"


UPD. Разобрался. Не стартовал апач из за несуществующего конфига на который ссылался файл php-fpm.tpl. Надо заремить строку: Include %home%/%user%/conf/web/%web_system%.%domain%.conf*