我在 Ubuntu 12.10 上运行 apache2。当我使用命令“service apache2 status”时,它报告 apache 未运行,出于某种原因,apache 默认网页继续在端口 80 上运行。在我的 sites-available 文件夹中,我有一个基于 python 的应用程序,它被分配到端口 80,但是当我重新加载并重新启动 Apache2 服务并在浏览器中输入 localhost 时,它继续运行默认页面。
我怎样才能摆脱在端口 80 上运行的 apache2?
答案1
您可以通过执行以下操作来仔细检查是否没有仍在运行的进程:-
ps aux | grep apache
如果 apache2 仍在运行,它将显示结果
使用杀死他们
sudo killall apache2
您需要确定为什么该过程会不受控制init
。如果您正在运行一个非常繁忙的 Apache 服务器,就会发生这种情况,这表明存在一些与性能相关的问题,但造成这种情况的原因有很多。
检查是否有其他 Web 应用程序正在运行,这些应用程序可能会使用 /usr/sbin/apache2 -d 语句手动启动 apache2 或 mod 版本的 httpd。但我对此表示怀疑,因为您更有可能遇到端口锁定问题,尤其是当两者都使用标准端口时
当然,apache 日志说了什么?
答案2
对于从 Google 登陆此处的其他人,请尝试运行sudo netstat -lnp
以检查哪个进程正在监听端口 80
我遇到了类似的问题,发现实际上是 Nginx 在端口 80 上运行并获取了 Apache 默认页面!这帖子帮助我弄清楚了。
答案3
显然,apache web 服务器正在运行。init.d 脚本实际上并不是那么智能,在发出命令并返回命令提示符后,它不会检查所有 httpd 进程是否都在运行。您必须进行检查才能确定。