Instalé Apache php7.0
y mysql
en una máquina Ubuntu 16.04 y obtengo la respuesta "php no se está ejecutando". Aquí está mi configuración 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>
Cuando intento ir al sitio, no analiza el php sino que lo imprime en la pantalla.
¿Alguien tiene alguna idea?
Me deshice de todas las demás cosas de fpm que solían funcionar con Apache 2.2 y agregué esta línea a la configuración.
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/var/run/php/php7.0-fpm.kermit.sock|fcgi://localhost/var/www/sites/www.example.com/httpdocs
Ahora aparece el siguiente error en los registros de errores
[Miércoles 21 de marzo 13:04:35.539499 2018] [proxy:error] [pid 26569] (13) Permiso denegado: AH02454: FCGI: intento de conectarse al socket de dominio Unix /var/run/php/php7.0-fpm. kermit.sock (localhost) falló
Los permisos parecen correctos para el socket.
srw-rw---- 1 kermit kermit 0 Mar 21 13:00 php7.0-fpm.kermit.sock=
Aunque no sé de dónde viene ese signo =
Respuesta1
Si está utilizando PHP-FPM, debería considerar usar mod_proxy_fcgi
, que está disponible recientemente en Apache 2.4 y es solo para este tipo de caso de uso. ElEntrada wiki de Apache para PHP-FPMtiene una buena orientación para comenzar.
Elmod_proxy_fcgi
documentaciónTambién incluye ejemplos específicos para configurar PHP-FPM y eldocumentación PHPtambién tiene información útil.
Respuesta2
Sus permisos de socket son incorrectos: "srw-rw---- 1 kermit kermit 0 21 de marzo 13:00 php7.0-fpm.kermit.sock"
Dices que Apache se ejecuta con www-data.
Debe agregar www-data a kermit o cambiar los permisos del socket en la configuración del grupo php-fpm a algo como kermit:www-data
Respuesta3
Pude solucionar este problema cambiando el grupo a www-data junto con un par de otros cambios que ocurrieron en versiones posteriores de apache-22 y 24.