启动apache失败(无法绑定到地址0.0.0.0:80)
更新:已修复,在启用的站点中,一个VirtualHosts配置文件似乎错误 我有Ubuntu 11.10 当我运行命令启动apache2时:启动apache失败(无法绑定到地址0.0.0.0:80),apache,port,kill,netstat,Apache,Port,Kill,Netstat,更新:已修复,在启用的站点中,一个VirtualHosts配置文件似乎错误 我有Ubuntu 11.10 当我运行命令启动apache2时: sudo /etc/init.d/apache2 start 我收到以下错误消息: 正在启动web服务器apache2 apache2:无法可靠地确定服务器的完全合格 域名,对服务器名(98)地址使用127.0.1.1已在 用法:make_sock:无法绑定到地址0.0.0.0:80不侦听 套接字可用,正在关闭无法打开日志操作“启动” 失败了 我运行此命
sudo /etc/init.d/apache2 start
我收到以下错误消息:
正在启动web服务器apache2apache2:无法可靠地确定服务器的完全合格 域名,对服务器名(98)地址使用127.0.1.1已在 用法:make_sock:无法绑定到地址0.0.0.0:80不侦听 套接字可用,正在关闭无法打开日志操作“启动” 失败了 我运行此命令以获取正在使用端口80的进程:
sudo netstat -ltnp | grep ':80'
返回此输出:
tcp6 0 0 :::80 :::* LISTEN 1176/
要知道要运行哪个进程,请运行此命令:
ps -wlp1176
fuser -k -n tcp 80
这将返回:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
5 D 33 1176 1 0 80 0 - 0 exit ? 00:00:00 apache2
但如果我试图扼杀这个过程:
sudo kill -9 1176
它不会杀死它,如果我再次运行netstat命令,它仍然显示在侦听中,并且apachestart失败
有什么建议吗?对我运行此命令有效:
ps -wlp1176
fuser -k -n tcp 80
它可能是skype或使用端口80的nginx
尝试关闭skype,或运行:
sudo/etc/init.d/nginx stop
我遇到了相同的错误,只想确认正在运行
sudo netstat -ltnp | grep ':80'
帮助我指出Hiawatha Web服务器妨碍了Apache2
移除Hiawatha修复了该问题(sudo dpkg——清除Hiawatha)。
Ubuntu 12.04.2服务器。试试这个,它适合我
sudo netstat -ltnp | grep ':80'
这将返回以下内容:
tcp6 0 0 :::80 :::* LISTEN 1047/apache2
然后
然后我重新启动了Apache,一切正常。转到设备管理器,从菜单/视图中选择“显示隐藏设备”,转到“非即插即用驱动程序”/HTTP,双击它以禁用它(并禁用或手动禁用某些依赖于它的服务)。 重新启动并享受 我也有同样的问题 对我来说,apache已经在运行了,但它运行的方式不对 杀死进程不起作用,因为守护进程一直在重新实例化它
apachectl stop
已解决问题。由于重复安装apache或其他服务正在使用端口,因此会发生这种情况
sudo lsof -i | grep "httpd"
您将找到进程id和服务的侦听端口。然后检查
cd /proc/(process id of http)
然后使用命令终止该进程
kill -9 pid
现在
再次终止进程
语法:-
kill -9 pid
现在启动apache
sudo ./apachectl start
我要做的只是检查您的/etc/apache2/sites available/your-domain-name.com.conf中是否设置了以下内容
SSLEngine on
SSLCertificateFile /your/path/to/your-domain.com.crt
SSLCertificateKeyFile /your/path/to/your-domain.com.key
SSLCACertificateFile /your/path/to/your-domain.com.ca-bundle
并且没有任何键入错误的目录或任何其他不应该出现在.conf文件中的内容。对我来说,它起到了关键作用,因为重新启动和终止进程根本没有任何帮助。无论如何它都没有启动。我使用下面的过程修复了它。 以root用户身份运行下面的命令
root# ps aux |grep apache
它将显示Apache PID,只需杀死该PID并重新启动Apache服务器。看起来其他进程正在使用端口80
$ netstat -anp | grep
例如,$netstat-anp | grep80
通过上面的步骤,您可以获得进程名,如果您想使用端口,那么您需要停止进程或更改端口。您只能在.conf的一个文件中拥有listen PORTNUMBER。不要把它放在多个文件中。试试看:)使用其中一种
sudo killall httpd
或
检查是否有人使用80端口
sudo netstat -tulpn| grep :80
重启
sudo service httpd start
然后重新启动服务器。我花了一整天的时间才明白这个问题
那么什么是pid 1176?(
ps-wlp1176
)5 D 33 1176 1 0 80 0-0退出?00:00:00 apache2So,这对你有什么建议吗?提示:与您尝试启动的内容相比。在我看来,apache已经在运行,但它不提供页面服务,不停止,也不启动或重新启动。我只是遇到了类似的情况。带有pid 1345的apache2进程占用端口80,但没有任何响应kill 1345
终止了该进程,然后我可以启动一个新的apache2进程。在Debian 4.0.4中也为我工作。每次重新启动实例时,我都会遇到此错误。您知道如何完全解决它吗?对于那些没有端口绑定问题并且没有vhost语法错误的人,您首先要做的是查找侦听值。看看这个问题,这个答案需要解释为什么它会真正有用。
sudo service httpd start