我在这里有一个Apache的问题。
对于我作为开发人员的整个职业生涯,我已经像这样重新启动了Apache:
sudo /etc/init.d/apache2 restart
我今天刚刚部署了我的第一个Rails应用程序,但是我很难让Apache在主机上重新启动。 当我尝试这种方式,Apache会尝试重新启动,但最终会挂起。
但是,这工作得很好:
sudo apachectl restart
这两种技术有什么区别? 我认为后者最好是第一个“语法糖”,但是事实肯定不是这样,因为后者是在前者没有的情况下工作的。
如果它是相关的(我怀疑它可能),这个Rails应用程序使用Phusion Passenger。 我以前的开发经验(以前的方法工作正常)主要是用PHP。 我很新的Rails。
有问题的服务器运行Ubuntu 11.04(Natty)。
sudo /etc/init.d/apache2 restart
此方法使用您的Linux发行版的init脚本来重新启动进程。 这些脚本在启动时运行以启动apache。
sudo apachectl restart
这个方法使用apachectl控制程序。 在几乎每一个场合我都会推荐使用apachectl来maniuplate apache守护进程。 您可以更好地控制进程如何重启(请参阅graceful vs. restart),configurationvalidation选项以及获取状态信息的方式。
使用init脚本重新启动apache和apachectl的主要区别在于,apachectl专门devise为允许pipe理员控制apache,而init脚本被devise为Unix的一种通用方式,在内核和init daeamon加载后启动进程。
编辑:不幸的是,我不知道如何解决您的问题与Rails或Phusion乘客。 尝试查看您的Apache日志寻找线索。