如何重新启动Apache?


249

我从SLES切换到Ubuntu,现在我想重新启动本地服务器。在SLES中,我使用了:

rcapache2 restart

但这似乎在Ubuntu中不起作用。:(

如何重新启动Apache?

Answers:


364

sudo service apache2 restart 从Red Hat借来的方式。


1
我认为这service是LSB方式,并且应该在大多数发行版中都可以使用,现在Debian和Ubuntu 终于有了它。
Marius Gedminas 2010年

10
sudo restart apache2不在中工作Ubuntu 12.04。不确定其他Ubuntu版本。
saji89

2
@ saji89您需要执行操作sudo service apache2 restart,然后它将起作用。
Kevdog777

9
sudo restart apache2在Ubuntu 14.04中不起作用。sudo service apache2 restart努力工作。
toesslab 2014年

105

您要重新启动 Apache,还是要正常重载其配置?

每个人都在回答第一个问题。你可以做第二

sudo service apache2 reload

优雅地重新加载会更快一些,并且不会出现停机时间。

有一个警告:如果您的apache配置文件包含错误(例如,在不存在的目录中配置日志文件),则服务器可能会静默退出,而不会在控制台上打印任何错误消息。在使用进行实际重新加载之前apache2ctl configtestservice apache2 reload运行的会捕获大多数其他错误apache2ctl graceful


1
是! 如果要在不启动网站查看器的情况下重新启动,请使用graceful更好!

我发现重新启动是一个优势,如果Apache没有运行,它将启动。->请问重装还会启动吗?
Torben Gundtofte-Bruun 2011年

我不这么认为-更糟糕的是,如果在配置文件中出现语法错误,重新加载将停止正在运行的apache。
Marius Gedminas

3
sudo apache2ctl configtest在正常重启之前,请始终运行。如果config出现语法错误,则正常重启将失败,并且apache将停止。
Mikko Rantalainen

@MikkoRantalainen:谢谢,我已经编辑了答案以删除原始内容apache2ctl graceful,而是推荐just service apache2 reload,它运行configtestbefore graceful
Marius Gedminas

26

在Ubuntu下启动/停止服务(不仅是Apache)的推荐方法是使用启动/停止/重载命令(实际上是对initctl 程序的符号链接,这是upstart的一部分)。

对于使用旧/etc/init.d脚本的服务,将使用正确的参数调用相应的脚本;对于使用upstart基础结构的服务,适当的事件转换将通过initctl通知 upstart守护程序 。

因此,要在Ubuntu上启动/停止/重新加载/重新启动apache,可以使用:

sudo start apache2
sudo stop apache2
sudo reload apache2
sudo restart apache2

20
sudo /etc/init.d/apache2 restart

当然,你可以换出restartstopstart和(我认为)reload


2
在最近的Ubuntu下执行此操作时,您会收到有关以新方法执行操作的消息,尽管它仍会执行您所需的命令。
jfmessier 2010年

我还没有意识到Apache已迁移到Upstart。
奥利(Oli)

我再也看不到该讯息了。
蒂姆(Tim)2013年

17

Ubuntu方式:

sudo service apache2 restart|stop|start 

11

正如Marius所说,应使用graceful重新启动:

sudo apache2ctl graceful

要么

sudo apache2ctl graceful-stop

优雅地停止Apache。

这些命令会等到所有对网页的请求得到满足后,才重新启动/停止Web服务器,以使您的用户不会得到一半的网页。


4

首先,您使用此命令检查状态

sudo service apache2 status

然后停止正在运行的服务

sudo service apache2 stop

然后使用以下命令:

sudo /opt/lampp/lampp start

这个解决方案对我有用。


2

如果要在系统中安装Apache 2.4版本,要在本地系统上启动重新启动或停止Apache服务器,则应运行以下命令

./apachectl start

或者您可以根据需要使用restart,也可以停止。这是经过测试的代码


1

您可以使用服务来重新启动Apache

service apache2 restart

并且您可以使用所有功能(停止-开始-重新加载)



0
sudo systemctl restart apache2

systemctl-控制systemd系统和服务管理器。

systemctl可用于自省和控制“ systemd”系统和服务管理器的状态。


-1

如果您是root用户:(我认为在Ubuntu中,root用户被禁用,而不是使用'sudo'命令!)

$ /etc/init.d/apache stop
$ /etc/init.d/apache start
$ /etc/init.d/apache restart
$ /etc/init.d/apache reload 

(如果使用a2ensite或a2dissite,则必须重新加载apache配置)


root没有被禁用,如果您自己不给它一个密码,那么它就没有密码。
Mikael Auno

1
//stop apache认为是评论?如果是这样,则标准的外壳符号将是#stop apache//在bash中不起作用
Mikel

如果没有密码,则@MikaelAuno根帐户将被禁用
T0xicCode '04

1
@ xav0989完全是定义问题。当然,你不能直接登录的root,或登录如root在需要的任何方式root的与此有关的密码,但也有其他方法可以成为root。尝试下面的示例,sudo -i然后whoami您将看到您确实以身份登录root。另外,如果您这样做ps aux | grep root,将会看到系统上已经有许多进程以的身份运行root。因此,可以说,root它没有被禁用。
Mikael Auno

@MikaelAuno或sudo -E -s。通过禁用,我假设这意味着您不能直接以身份登录root,但仍可以以身份运行进程root
T0xicCode '04
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.