Configuré un servidor Nginx con proxy inverso para Apache (siguiendo estotutorial) algunos meses atrás. Todo funciona muy bien, la parte nginx y las páginas php en Apache.
Pero necesitaba usar curl para php y por eso instalé el paquete php-curl con
sudo apt install php-curl
Desde entonces solo recibo "Error interno del servidor 500" para todas las páginas PHP. Las páginas nginx y html todavía funcionan bien.
No estoy seguro de cómo encontrar al culpable de esto. Intenté desinstalar el paquete nuevamente y reinicié el servicio sudo systemctl reload apache2
(está activo y sudo systemctl status apache2
no muestra ningún error)
Sin embargo , esto está en los registros de errores ( /var/log/apache2/error.log
):
[fastcgi:error] [pid 9587:tid 140151397275200] (2)No such file or directory: [client xxx.xxx.xxx.xxx:49342] FastCGI: failed to connect to server "/usr/lib/cgi-bin/php-fcgi": connect() failed
[fastcgi:error] [pid 9587:tid 140151397275200] [client xxx.xxx.xxx.xxx:49342] FastCGI: incomplete headers (0 bytes) received from server "/usr/lib/cgi-bin/php-fcgi"
PD: No estoy seguro de si esto es relevante, pero configuré el servidor en ubuntu 21.10 y lo actualicé a 22.10 poco antes de que dejara de funcionar. Definitivamente todavía funcionó después de la actualización, pero ¿tal vez los servicios no se reiniciaron durante la actualización y la instalación de php-curl provocó un reinicio?
Respuesta1
El problema estaba en el archivo /etc/apache2/mods-enabled/fastcgi.conf
, que para mí tenía este aspecto:
<IfModule mod_fastcgi.c>
AddHandler fastcgi-script .fcgi
FastCgiIpcDir /var/lib/apache2/fastcgi
AddType application/x-httpd-fastphp .php
Action application/x-httpd-fastphp /php-fcgi
Alias /php-fcgi /usr/lib/cgi-bin/php-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php-fcgi -socket /run/php/php7.4-fpm.sock -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
</IfModule>
Sospeché que php7.4
podría causar problemas desde que ejecuto php8. Verifiqué dos veces la versión de php en el servidor (con php --version
) y cambié la línea respectiva en consecuencia:
FastCgiExternalServer /usr/lib/cgi-bin/php-fcgi -socket /run/php/php8.1-fpm.sock -pass-header Authorization
Luego reinicié Apache ( sudo systemctl status apache2.service
) y ahora parece funcionar nuevamente.
Todavía me irrita que la Alias
carpeta /usr/lib/cgi-bin/php-fcgi
no exista ( /usr/lib/cgi-bin
de hecho, esté vacía). Sospeché que ese podría ser mi problema (verNo se puede instalar PHP-FPM en Apache (no se pudo conectar al servidor FastCGI)), que hizo el check fastcgi.conf
en primer lugar. Pero como todo parece funcionar, seguiré adelante por ahora.