如何解决网站无法访问 apache也无法启动?
1、错误现象
这里提示的是http.pid文件的错误,熟悉apache的读者应该知道httpd.pid文件其实是apache的进程pid文件,apache的启动进程id放在这个文件中。
2、解决思路
既然提示httpd.pid这个文件有问题,那么先看看这个文件是否存在,以及其中的内容是什么。查看httpd.pid文件,操作如下:
linux:~#more/usr/local/apache2/logs/httpd.pid
发现这个文件存在,但是内容为空,这里肯定是有问题的。要解决这个问题,首先要了解apache的启动机制及http.pid文件的作用。
httpd.pid文件为文本文件,内容只有一行,记录了httpd进程的pid。通过cat命令可以看到该文件的内容,通过这个pid文件可以防止进程启动多个副本。只有能获得pid文件的进程才能正常启动并把自身的pid写入该文件中。同一个程序的多余进程则自动退出。同时,httpd.pid文件在apache正常启动时创建,正常关闭时自动删除,apahce在启动时会查找httpd.pid文件是都存在,如果文件不存在创建此文件,将apache启动的进程id写入http.pid中,并提示启动成功。如果文件存在但内容为空,那么会出现“(2014)internal error”的错误了。
在这个案例中,httpd.pid文件存在,但是内容为空,这个现象可能是磁盘空间耗尽导致的,也可能是系统突然断电导致的,总之导致这个问题的原因有很多种,这里并不打算深究,因为找到解决问题的办法是我们的目的。
3、解决问题
解决这个问题有两个办法:可以直接删除httpd.pid这个空文件,也可以将这个文件写入一个数字id值,操作如下:
linux:~#echo"28976">>/usr/localo/apache2/logs/httpd.pid
linux:~#more/usr/local/apache2/logs/httpd.pid28976
接着,再次启动apache:
linux:~#usr/local/apache2/bin/apachectl start
这次apache可以正常启动了,此时查看httpd.pid文件内容,信息如下:linux:~#more/usr/local/apache2/logs/httpd.pid7789
可以看到,apache成功启动后,已经自动获取了一个新的pid值,进程间通信以这个pid进行。apache在启动后,保持这个pid值不变,直到下次重新启动apache才更新httpd.pid的值。
网站优化外包的好处以及模式讲解企业网站的跳出率多少比较正常,降低网站跳出率的方法什么是死链接?怎么定义?美国100M服务器哪里可以租?速度快不快新加坡云服务器主要看哪些方面的参数?如何制作自己的网站 企业品牌网站设计思路北京设备检修小程序开发功能需求文档网站建设中谈谈PHP内部缓存