Instalei o Apache php7.0
em mysql
uma máquina Ubuntu 16.04 e recebo a resposta "php não está rodando". Aqui está minha configuração de vhost:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.example.com
DocumentRoot /var/www/sites/www.example.com/httpdocs
ScriptAlias "cgi-bin" "/var/www/sites/wwww.example.com/cgi-bin"
ErrorLog ${APACHE_LOG_DIR}/www.example.com.error_log
LogLevel debug
CustomLog ${APACHE_LOG_DIR}/www.example.com.log combined
<IfModule mod_fastcgi.c>
AddHandler php7-fcgi .php
Action php7-fcgi /php7-fcgi virtual
Alias /php7-fcgi-kermit /usr/lib/cgi-bin/php7-fcgi-kermit
FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi-kermit -socket /run/php/php7.0-fpm.kermit.sock -pass-header Authorization
<Directory "/usr/lib/cgi-bin">
Require all granted
</Directory>
</IfModule>
<IfModule mod_fastcgi.c>
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler php7-fcgi-kermit
</FilesMatch>
</IfModule>
</VirtualHost>
Quando tento acessar o site ele não está analisando o php e sim imprimindo na tela.
alguém tem alguma ideia?
Eu me livrei de todas as outras coisas do fpm que costumavam funcionar com o apache 2.2 e adicionei esta linha ao conf
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/var/run/php/php7.0-fpm.kermit.sock|fcgi://localhost/var/www/sites/www.example.com/httpdocs
Agora recebo o seguinte erro nos logs de erros
[Quarta, 21 de março 13:04:35.539499 2018] [proxy:error] [pid 26569] (13)Permissão negada: AH02454: FCGI: tentativa de conexão ao soquete de domínio Unix /var/run/php/php7.0-fpm. kermit.sock (localhost) falhou
As permissões parecem corretas para o soquete
srw-rw---- 1 kermit kermit 0 Mar 21 13:00 php7.0-fpm.kermit.sock=
Eu não sei onde está conseguindo esse sinal =
Responder1
Se você estiver usando PHP-FPM, considere usar mod_proxy_fcgi
, que está disponível recentemente no Apache 2.4 e é apenas para esse tipo de caso de uso. OEntrada wiki do Apache para PHP-FPMtem algumas boas orientações para começar.
Omod_proxy_fcgi
documentaçãotambém inclui exemplos específicos para configurar o PHP-FPM e oDocumentação PHPtambém tem informações úteis.
Responder2
Suas permissões de soquete estão incorretas: "srw-rw ---- 1 kermit kermit 0 21 de março 13:00 php7.0-fpm.kermit.sock"
Você diz que o Apache roda com www-data.
Você precisa adicionar www-data ao kermit ou alterar as permissões de soquete na configuração do pool php-fpm para algo como kermit:www-data
Responder3
Consegui corrigir isso alterando o grupo para www-data junto com algumas outras alterações que ocorreram em versões posteriores do Apache-22 e 24