Apache용 역방향 프록시를 사용하여 Nginx 서버를 설정했습니다.지도 시간) 몇 달 전. nginx 부분과 Apache의 PHP 페이지 등 모든 것이 잘 작동합니다.
하지만 PHP에는 컬을 사용해야 했기 때문에 다음과 같이 php-curl 패키지를 설치했습니다.
sudo apt install php-curl
그 이후로 모든 PHP 페이지에 대해 "500 내부 서버 오류"만 발생합니다. nginx 페이지와 html 페이지는 여전히 잘 작동합니다.
이 문제의 범인을 어떻게 찾는지 잘 모르겠습니다. 패키지 제거를 다시 시도하고 서비스를 다시 시작했습니다 sudo systemctl reload apache2
(활성 상태이며 sudo systemctl status apache2
오류가 표시되지 않음).
이는 오류 로그( /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"
추신: 이것이 관련이 있는지 확실하지 않지만 우분투 21.10에 서버를 설정하고 작동이 중단되기 직전에 22.10으로 업데이트했습니다. 업데이트 후에도 여전히 작동했지만 업데이트 중에 서비스가 다시 시작되지 않았고 php-curl을 설치하면 다시 시작되었을 수 있습니까?
답변1
문제는 파일에 있었는데 /etc/apache2/mods-enabled/fastcgi.conf
, 제 눈에는 다음과 같았습니다.
<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>
php7.4
php8을 실행한 이후로 문제가 발생할 수 있다고 의심했습니다 . 서버에서 PHP 버전을 다시 확인 php --version
하고 그에 따라 해당 줄을 변경했습니다.
FastCgiExternalServer /usr/lib/cgi-bin/php-fcgi -socket /run/php/php8.1-fpm.sock -pass-header Authorization
그런 다음 아파치( )를 다시 시작했는데 sudo systemctl status apache2.service
이제 다시 작동하는 것 같습니다.
Alias
폴더가 /usr/lib/cgi-bin/php-fcgi
존재하지 않는다는 사실이 여전히 짜증스럽습니다 ( /usr/lib/cgi-bin
실제로는 비어 있습니다). 나는 그것이 내 문제일지도 모른다고 생각했습니다.Apache에 PHP-FPM을 설치할 수 없습니다(FastCGI 서버에 연결하지 못했습니다).fastcgi.conf
), 처음부터 확인했습니다 . 하지만 모든 것이 작동하는 것 같으므로 지금은 그대로 진행하겠습니다.