你如何重新启动Apache?

Jai*_*uri 292 server apache2 services

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

rcapache2 restart
Run Code Online (Sandbox Code Playgroud)

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

如何重新启动我的 Apache?

mac*_*aco 435

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

  • `sudo restart apache2` 在 `Ubuntu 12.04` 中不起作用。不确定其他 Ubuntu 版本。 (10认同)
  • `sudo restart apache2` 在 Ubuntu 14.04 中不起作用。`sudo service apache2 restart` 正在努力工作。 (9认同)
  • @saji89 你需要做`sudo service apache2 restart`,然后它就会工作。 (2认同)

Mar*_*nas 115

您是要重新启动Apache,还是要优雅地重新加载其配置?

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

sudo service apache2 reload
Run Code Online (Sandbox Code Playgroud)

优雅地重新加载会更快一点,并且没有停机时间。

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

  • 在正常重启之前总是运行 `sudo apache2ctl configtest`。如果配置有语法错误,正常重启将失败并且 apache 将停止。 (3认同)

Ric*_*rri 27

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

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

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

sudo start apache2
sudo stop apache2
sudo reload apache2
sudo restart apache2
Run Code Online (Sandbox Code Playgroud)


Oli*_*Oli 21

sudo /etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)

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

  • 在最近的 Ubuntu 下执行此操作时,您会收到一条关于以新方式执行此操作的消息,尽管它仍会执行您想要的命令。 (2认同)

小智 19

Ubuntu方式:

  1. 重启:
    sudo service apache2 restart|stop|start 
    
    Run Code Online (Sandbox Code Playgroud)
  2. 停止:
    sudo service apache2 stop 
    
    Run Code Online (Sandbox Code Playgroud)
  3. 开始:
    sudo service apache2 start 
    
    Run Code Online (Sandbox Code Playgroud)


kem*_*102 12

正如马吕斯所说,优雅应该用于重新启动:

sudo apache2ctl graceful
Run Code Online (Sandbox Code Playgroud)

或者

sudo apache2ctl graceful-stop
Run Code Online (Sandbox Code Playgroud)

优雅地停止Apache。

在重新启动/停止 Web 服务器之前,这些命令会等待所有对网页的请求都得到处理,这样您的用户就不会得到半个网页。