我一直在摸索着在 unbuntu (12.04) 盒子上设置 redmine,并在 NginX 设置线上的某处设置,现在 apache 不再加载,因为 nginx 已经占用了端口。
我尝试使用以下命令删除 NginX,但这似乎没有任何区别。当我重新启动服务器并指向我的网络浏览器时,我仍然收到“欢迎使用 NginX”消息
sudo apt-get purge nginx
我已经确认 NginX 已经消失了,因为当我现在运行上面的命令时,我得到了输出
Package nginx is not installed, so not removed
然而,每次我启动机器时,它都会再次运行。我注意到以下正在运行的进程(如果有帮助的话)
root 923 0.0 0.0 76784 1280 ? Ss 03:00 0:00 nginx: master process /usr/sbin/nginx
www-data 925 0.0 0.0 77092 1704 ? S 03:00 0:00 nginx: worker process
www-data 926 0.0 0.1 77092 2204 ? S 03:00 0:00 nginx: worker process
www-data 927 0.0 0.0 77092 1704 ? S 03:00 0:00 nginx: worker process
www-data 928 0.0 0.0 77092 1704 ? S 03:00 0:00 nginx: worker process
关于将 apache2 恢复为“默认”(缺少更好的术语)Web 服务器的任何建议?
取决于你如何安装 nginx。
如果您用来安装它的过程还安装了有效的 rc 脚本,那么这将起作用:
sudo update-rc.d nginx disable
如果这给出了有意义的输出,则您在重新启动时不会遇到问题。
如果使用了 upstart 脚本,请检查 inside
/etc/init/nginx
。您可能必须更改此文件中的变量才能禁用它。如果它是源安装并且您不知道安装位置或安装方式,请使用
find
或locate
。要使用定位,请运行:
sudo updatedb
这将为所有文件建立索引以便快速查找
然后运行:
locate nginx
这应该会让您丢失应该(小心)删除的 nginx 文件。
我还建议终止进程。也许删除过程中的一些进程仍在运行。
显然,重启也应该解决这个问题。但是如果你不想重新启动,你需要手动杀死它们,因为你的清除删除了 /etc/init.d/nginx 脚本。
从命令行运行它:
它会终止所有 nginx 进程,并且应该允许您继续启动 Apache。
如果这不起作用,您需要确定那个端口是什么。你可以用
netstat -natp | grep 80
.该命令将显示处于“LISTEN”状态的“:80”端口引用,以及打开该端口的进程。然后你杀死那个特定的进程。
我猜你在某个地方有一个启动脚本正在做这件事。考虑到它的 Ubuntu 12.04,它很可能是一个 upstart 脚本(否则它是一个 init 脚本,但我们现在都在使用)。
您可以查看是否有新贵的工作以 ngnix 启动
initctl list
如果是这样,您会发现一个任务可能称为ngnix
. 您可以使用 stop ngnix 停止它,然后手动启动 apache。转到
/etc/init
并查找名为 ngnix.conf 的文件(upstart 中的启动脚本是jobname.conf
)- 将其重命名为不以 conf 结尾的名称或删除它,然后重新启动。如果没有这样的文件,请去/etc/init.d 中查看启动ngnix 的脚本。
您应该通过运行以下命令检查您实际安装了哪个 nginx 包:
在 Debian 和 Ubuntu 中,不同的 nginx 包包含一组不同的模块,例如,您可以安装
nginx-extras
或nginx-full
安装包,然后您需要运行nginx
是一个简单的元包,将nginx-full
作为依赖项安装,但不需要自行安装。