我目前有其他服务在监听端口 80,因此我已将 apache 配置为监听端口 444,而该端口上肯定没有服务在监听。
但是,当我尝试启动 apache 时,收到此错误:
(98)Address already in use: make_sock: could not bind to address 127.0.0.1:444
也尝试过(但失败了)绑定到0.0.0.0:444
。此后的错误是:
Unable to open logs
有人能给我指出正确的方向吗?
更新:
关于用户:
# envvars
APACHE_RUN_USER=www-data
APACHE_RUN_GROUP=root
$ groups www-data
www-data : www-data root
$ ls -l /var/log/apache2
total 60
-rw-r----- 1 www-data root 0 May 9 08:02 access.log
..other files, same permissions..
如上所述,444 上没有任何监听:
netstat -anp | grep 444
udp 0 0 0.0.0.0:57444 0.0.0.0:* 761/avahi-daemon: r
答案1
尝试将端口更改为 4444 或大于 1024 的端口,看看 apache 是否可以启动。您可以尝试删除目录以外的所有日志文件。您还可以检查日志文件是否未打开lsof | grep /var/log/apache2
答案2
好吧,如果您无法访问日志并且无法绑定到端口,我想知道是否已运行另一个 apache 实例。
ps aux|grep httpd
在报告错误后,您是否运行过:以确保服务器上没有另一个 apache 实例正在运行?我的意思是有什么东西阻止了您想要的相同两个资源 - 听起来可能是您正在运行的另一个副本。
您还可以使用 lsof 查看正在使用这些资源的内容:
lsof |egrep access\.log\|444
繁荣!