我一直在通过在一个unbuntu(12.04)盒子上设置redmine来摸索 ,并且沿着NginX线路build立起来,现在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
任何build议把apache2作为“缺省”(缺乏更好的术语)Web服务器?
取决于你如何安装nginx。
如果你用来安装的程序,也安装了有效的rc脚本,那么这将工作:
sudo update-rc.d nginx disable
如果这给出了一个有意义的输出,那么重启时就不会出现问题。
如果使用了新贵的脚本,检查/etc/init/nginx 。 您可能必须更改此文件中的variables才能将其禁用。
如果它是一个源代码安装,并且您不知道在何处或如何安装它,请使用find或locate 。
要使用定位,请运行: sudo updatedb
这将索引所有文件以便快速查找
然后运行: locate nginx
这应该给你一个你应该(仔细)删除的nginx文件丢失。
我build议也杀死进程。 也许删除过程留下了一些进程仍在运行。
显然,重启也应该照顾到这一点。 但是,如果您不想重新启动,则需要手动closures它们,因为清除操作会删除/etc/init.d/nginx脚本。
从你的命令行运行这个:
kill $(pidof nginx)
它杀死了所有的nginx进程,并允许你继续启动Apache。
如果THAT不起作用,你需要确定有什么端口。 你可以用netstat -natp | grep 80来做到这netstat -natp | grep 80 netstat -natp | grep 80 。
该命令将显示处于“LISTEN”状态的“:80”端口引用,以及打开该端口的进程。 然后你杀掉那个特定的进程。
我猜你有一个启动脚本是在做这个。 考虑到它的Ubuntu 12.04,可能是它的一个暴发户脚本(否则它是一个初始化脚本,但我们现在使用这两天)。
你可以检查一下,是否有一个暴发户用initctl list启动ngnix如果是这样的话,你会发现一个可能叫做ngnix的任务。 你可以停止ngnix,然后手动启动apache。
去/etc/init找一个名为ngnix.conf的文件(启动脚本是jobname.conf ) – 把它重命名为不以conf结尾的东西或删除它,然后重新启动。
如果没有这样的文件,请检查启动ngnix的脚本/etc/init.d。
您应该通过运行来检查您实际安装了哪个nginx软件包:
dpkg -l | grep nginx
在Debian和Ubuntu中,不同的nginx包包含了一组不同的模块,例如你可以安装nginx-extras或nginx-full包,那么你需要运行
aptitude purge nginx-full
nginx是一个简单的元程序包,它将安装nginx-full作为依赖项,但是不需要自己安装。