Você pode ler sobre isso aqui: link
Estou assumindo que você deseja executar cada vhost como um usuário / grupo diferente. Caso contrário, você precisará apenas deles praticamente em qualquer lugar em seus arquivos conf (pode estar em fastcgi.conf). Para isso, confira este URL:
link
Para a corrida como coisa do usuário, tentarei explicar como isso funciona:
Eu não acho que você tenha que tocar o php-fpm.conf, apenas deixe como é quando você instalou o php5-fpm
Sem comentários, o meu parece assim:
php-fpm.conf
[global]
pid = /var/run/php5-fpm.pid
error_log = /var/log/php5-fpm.log
include=/etc/php5/fpm/pool.d/*.conf
Você parece ter um host virtual, então eu não sei o que você faria com 2 fastcgiexternalservers de qualquer maneira.
Os passos pelos quais o php é espremido são os seguintes:
- AddHandler php-script .php
- Ação php-script /php5.fastcgi
- Alias /php5.fastcgi /var/lib/apache2/fastcgi/php5.fastcgi
- FastCgiExternalServer /var/lib/apache2/fastcgi/php5.fastcgi -socket php5-fpm.sock
Aqui em # 4, o alias dado em # 3 será resolvido pelo fastcgiexternalserver (o caminho não precisa existir), e o parâmetro socket é um nome de arquivo relativo ao FastCgiIpcDir que você definiu anteriormente. Atualmente estou usando o seguinte diretório para isso:
FastCgiIpcDir /var/run/
O que significa que sua jornada continua em /etc/php5/fpm/pool.d/www.conf
A linha importante é:
listen = /var/run/php5-fpm.sock
O caminho tem que ser o mesmo que fastcgiipcdir mais o socketname relativo, então o fluxo será captado aqui. Sem comentários:
www.conf
[www]
user = www-data
group = www-data
listen = /var/run/php5-fpm.sock
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
Para cada soquete (para cada site, se cada soquete for diferente) você quiser ouvir, você tem que criar novos arquivos conf (como o www.conf).
As quatro etapas que descrevi anteriormente devem estar em cada host virtual que você deseja executar como outro usuário / grupo.
Eu acredito que deveria ser assim:
Vhost www
<VirtualHost *:80>
ServerName xxxx.com
ServerAdmin [email protected]
DocumentRoot /home/web/xxxx/www/prod
Options None
AddHandler php-script .php
Action php-script /php5.fastcgi
Alias /php5.fastcgi /var/lib/apache2/fastcgi/php5.fastcgi
FastCgiExternalServer /var/lib/apache2/fastcgi/php5.fastcgi -socket php5-fpm.sock
<Directory /home/web/xxxx/www/prod/>
Options Indexes FollowSymLinks Includes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.www_prod.log
LogLevel debug
CustomLog /var/log/apache2/access.www_prod combined
</VirtualHost>
Depois disso, certifique-se sempre de dar acesso de gravação onde os soquetes serão criados.
Isso seria o fastcgiipcdir / var / run para mim no ubuntu, que aponta para / run, então eu apenas chmodded que:
chmod 777 /run
(Claro que não é muito bom de fazer, mas para demonstração e testes locais, tudo bem)
Ativar seu site:
a2ensite site //site: just whatever your www vhost conf file name is
E quando quiser experimentar, reinicie sempre o php-fpm e o apache :
service php5-fpm restart
service apache2 restart
Tente entender isso primeiro e, em seguida, fazê-lo funcionar será fácil. Eu tive a minha quota de tentar muitas combinações diferentes, mas quando eu entendi, fazia sentido.