我遇到了这个问题lem当我从源安装apache,但后来试图运行
$ sudo /etc/init.d/httpd restart
这是使用预安装的版本的Apache。 /etc/init.d/httpd中的stop指令并未删除在启动源代码安装的apache版本时创建的httpd.pid文件。
要确定是否这也是你的问题的原因,找出其中httpd.pid文件是越来越设置,当你如果你从源代码安装运行
$ sudo apachectl start
和Apache2的是生活在/ usr /本地/ apache2,那么应该在/ usr/local/apache2/logs中创建httpd.pid文件。当您通过运行停止apache时
$ sudo apachectl stop
此文件应该被删除。因此,为了测试是否httpd.pid文件引起您的问题,通过调用
$ sudo apachectl start
启动Apache并找到httpd.pid文件。然后尝试使用
$ sudo /etc/init.d/httpd stop
如果原始httpd.pid文件仍然存在停止Apache,那么这就是为什么阿帕奇无法启动,当您使用
$ sudo /etc/init.d/httpd start
为了让我的/ etc /初始化.D/httpd的文件才能正常工作,我明确地把该呼叫开始于apachectl和停止方法:
#!/bin/bash
# /etc/init.d/httpd
#
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache2/bin/apachectl
httpd=/usr/local/apache2/bin/httpd
pid=/usr/local/apache2/logs/httpd.pid
prog=httpd
RETVAL=0
start() {
echo -n $"Starting $prog: "
$apachectl -k start
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
$apachectl -k stop
RETVAL=$?
echo
}