如何解决网站无法访问 Apache也无法启动?

2021-03-16    分类: 网站建设

如何解决网站无法访问 Apache也无法启动?
1、错误现象
这是创新互联一个客户的案例,客户告知网站无法访问了,并且Apache也无法启动。客户的网站是基于Apache+Tomcat+Mysql构建,于是登录服务器查看信息如下图。
如何解决网站无法访问 Apache也无法启动?
这里提示的是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的值。

分享名称:如何解决网站无法访问 Apache也无法启动?
网站链接:https://www.cdcxhl.com/news/105272.html

成都网站建设公司_创新互联,为您提供App设计网站内链移动网站建设标签优化用户体验域名注册

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

猜你还喜欢下面的内容

网站建设网站维护公司