php7.0-fpm no funciona

php7.0-fpm no funciona

Instalé Apache php7.0y mysqlen 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_fcgidocumentació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.

información relacionada