Apache 2.4.9 不遵守 PidFile 指令
Apache 2.4.9 Does Not Respect PidFile Directive
回复:Mac OS X Yosemite 10.10.1,Apache 2.4.9
Apache 2.4.9 似乎忽略了 PidFile 指令,并且总是在 /var/run/httpd.pid 处创建一个进程 ID 文件。这使得无法启动多个 httpd 实例,每个实例都在不同的端口上侦听。例如Apache 2.2.26就没有这个问题。
所以你自己看看:
1) 修改 Apache 的 "default" Mac OS X 配置文件 /etc/apache2/httpd.conf,以包含(紧跟在 ServerRoot 之后)指令,例如:
PidFile "/var/log/apache2/apache.pid"
2)这样启动Apache:
sudo apachectl start
3) 观察到指定的 .pid 文件丢失,Apache 创建了 /var/run/httpd.pid.
如何修复?
这不是错误。您刚刚忽略了一个事实,即默认配置包括 /etc/apache2/extra/httpd-mpm.conf
,它在第 12 行设置了 PidFile
:
#
# PidFile: The file in which the server should record its process
# identification number when it starts.
#
# Note that this is the default PidFile for most MPMs.
#
<IfModule !mpm_netware_module>
PidFile "/private/var/run/httpd.pid"
</IfModule>
回复:Mac OS X Yosemite 10.10.1,Apache 2.4.9
Apache 2.4.9 似乎忽略了 PidFile 指令,并且总是在 /var/run/httpd.pid 处创建一个进程 ID 文件。这使得无法启动多个 httpd 实例,每个实例都在不同的端口上侦听。例如Apache 2.2.26就没有这个问题。
所以你自己看看:
1) 修改 Apache 的 "default" Mac OS X 配置文件 /etc/apache2/httpd.conf,以包含(紧跟在 ServerRoot 之后)指令,例如:
PidFile "/var/log/apache2/apache.pid"
2)这样启动Apache:
sudo apachectl start
3) 观察到指定的 .pid 文件丢失,Apache 创建了 /var/run/httpd.pid.
如何修复?
这不是错误。您刚刚忽略了一个事实,即默认配置包括 /etc/apache2/extra/httpd-mpm.conf
,它在第 12 行设置了 PidFile
:
#
# PidFile: The file in which the server should record its process
# identification number when it starts.
#
# Note that this is the default PidFile for most MPMs.
#
<IfModule !mpm_netware_module>
PidFile "/private/var/run/httpd.pid"
</IfModule>