死锁非常让人烦恼,“httpd dead but subsys locked”。这个问题困扰了很长时间,终于意外的解决了,之前查找了无数资料,测试了无数方案,都不管用,最后却是在无意间修改配置时候,发现,死锁解决了。真是意外的收获,这个方法,相信一般人也想不到,由于一般人出现出现死锁原因不一致,所以解决方案也不一致,可以都做尝试一下。下面,就总结可能的方案,最后一种是我出现的问题解决方案。
1.删除锁,重启服务器
依次执行以下指令:
sudo rm -f /var/lock/subsys/httpd
sudo service httpd restart
2.杀死所有进程,重启服务器
依次执行以下指令:
killall -9 httpd
sudo service httpd restart
3.修改配置文件,重启服务器
找到httpd.conf,不修改的话,默认路径是etc/httpd/conf/httpd.conf用vim指令打开:
将:
PidFile /var/run/httpd.pid
改为:
PIDFILE=/var/run/httpd.pid
执行
sudo service httpd restart
4.手动删除锁文件,重启服务器
删除httpd.lock文件和httpd.pid文件
执行
sudo service httpd restart
5.数据库异常
rm -fr /var/lib/mysql/*
rm /var/lock/subsys/mysql
rm: remove regular empty file `/var/lock/subsys/mysqld'? yes
shell> killall mysqld
shell> service mysqld start
6.修改配置文件(我出现问题的解决方案)
找到httpd.conf,不修改的话,默认路径是etc/httpd/conf/httpd.conf用vim指令打开:
找到以下内容:
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
在里面添加一句(我这里是做py,cgi的测试):
AddHandler cgi-script .cgi .py .pl
即变为:
<Directory "/var/www/cgi-bin">
AllowOverride None
AddHandler cgi-script .cgi .py .pl
Options None
Require all granted
</Directory>
除了以上方案,再解决不了,就卸载重装吧。