最近在查看服务器上的apache2
的错误日志的时候,发现如下错误信息:
1 2 3 4 5 |
[Sun Jan 28 19:06:13.794012 2018] [cgi:error] [pid 3382:tid 139940209870592] [client 149.56.130.214:39 474] AH02811: script not found or unable to stat: /usr/lib/cgi-bin/php [Sun Jan 28 19:06:14.238284 2018] [cgi:error] [pid 3382:tid 139940117550848] [client 149.56.130.214:39 474] AH02811: script not found or unable to stat: /usr/lib/cgi-bin/php5 [Sun Jan 28 19:06:15.550249 2018] [cgi:error] [pid 3382:tid 139940226656000] [client 149.56.130.214:39 474] AH02811: script not found or unable to stat: /usr/lib/cgi-bin/php-cgi [Sun Jan 28 19:06:15.983952 2018] [cgi:error] [pid 3382:tid 139940125943552] [client 149.56.130.214:39 474] AH02811: script not found or unable to stat: /usr/lib/cgi-bin/php.cgi [Sun Jan 28 19:06:16.422075 2018] [cgi:error] [pid 3382:tid 139940033623808] [client 149.56.130.214:39 474] AH02811: script not found or unable to stat: /usr/lib/cgi-bin/php4 |
刚刚开始感觉莫名其妙,因为PHP
的解析已经通过PHP-FPM
模式进行处理,服务器上的配置已经不需要cgi
进行处理了。
网上搜索了一下,发现这个是由于ubuntu
上apache2
的默认配置模版导致的,尤其是从ubuntu 12.04
一路升级上来的系统,在配置模版中有指出/usr/lib/cgi-bin/
这个路径,可是这个路径已经不再使用了。
修改方式如下:
1 |
$ sudo vim /etc/apache2/sites-enabled/000-default.conf |
向下查找,会发现如下内容:
1 2 3 4 5 6 7 |
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin/"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> |
如果确实网站已经不再使用任何cgi
相关的东西了,可以直接注释掉这段代码。
另外如果开启了HTTPS
,同理需要修改HTTPS
对应的配置文件。
修改完成后,重启服务器:
1 |
$ sudo service apache2 restart |
参考链接
script not found or unable to stat: /usr/lib/cgi-bin/php-cgi