在重新启动Scientific Linux Vagrant Box后,Apache不会自动启动

每次我重新启动我的科学Linux框,我有问题,它不启动Apache Web服务器httpd )。

我必须手动执行此代码:

 [vagrant@magento ~]$ sudo service httpd restart Stopping httpd: [FAILED] Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName [ OK ] 

我有一个与Ubuntu 12.04服务器的Vagrant框的类似的设置,正确启动httpd服务,所以有什么线索得到一个科学的Linux Apache服务器启动httpd自动?

每次我使用命令:在我的命令提示符vagrant reload ,Web服务器不会得到httpd服务,我必须使用重新启动命令( sudo service httpd restart )来获取它。 但是我想在自己的Ubuntu 12.04之前(精确64)自动的那个函数。 所以决定性的因素不是“失败”和“确定”消息之间的界限,问题在于重新启动后状态为“失败”。

更新:瞬间尝试你的好主意! 但我确定,所有3个运行级别(3,4,5)已经处于ON状态。 这是我现在的状态:

  34 [vagrant@example ~]$ chkconfig --list 35 crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off 36 htcacheclean 0:off 1:off 2:off 3:off 4:off 5:off 6:off 37 httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 38 ip6tables 0:off 1:off 2:on 3:on 4:on 5:on 6:off 39 iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off 40 lvm2-monitor 0:off 1:on 2:on 3:on 4:on 5:on 6:off 41 mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off 42 netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off 43 netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off 44 network 0:off 1:off 2:on 3:on 4:on 5:on 6:off 45 postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off 46 rdisc 0:off 1:off 2:off 3:off 4:off 5:off 6:off 47 rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off 48 saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off 49 sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 50 udev-post 0:off 1:on 2:on 3:on 4:on 5:on 6:off 51 vboxadd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 52 vboxadd-service 0:off 1:off 2:on 3:on 4:on 5:on 6:off 53 vboxadd-x11 0:off 1:off 2:off 3:on 4:off 5:on 6:off 54 [vagrant@magento ~]$ chkconfig --list | egrep '(apache|httpd)' 55 httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 

我们有同样的问题。 对我们来说,这是由Apache依靠Vagrant安装的共享文件引起的。 这会导致Apache在加载过程中失败。

在之前的Vagrant版本中,configuration脚本始终在启动/重新启动时运行,因此在连接networking共享之后,Apache将重新启动。

我在用stream浪汉build立我的开发环境时也面临同样的问题。

我认为你的一个documentRoot条目在共享驱动器上。 因为stream浪者在启动之后安装了这些(并且之前启动了apache),apache服务无法启动(缺less文档根目录)

我能在网上使用这个教程解决它。 就个人而言,我最终使用SysVInit方法,因为我无法与新贵做到这一点。 你可以很容易地把它移植到SystemD上你只需要把/etc/init.d/httpd [command] systemctl [command] http.service你也可以使用service httpd start

http://razius.com/articles/launching-services-after-vagrant-mount/

JeroenED

鉴于它的声音,问题是,在你做“stream浪者重新加载”之后,默认情况下Apache不是“开启”的。 我相信“stream浪汉重新加载”模拟了如果您“重新启动”虚拟机会发生什么情况。 这听起来像是你希望在虚拟机引导之后运行Apache守护进程。

我去了科学Linux网站。 它指出,底层分发是基于“企业Linux”。 我通常会将其解释为“RedHat Enterprise Linux”。 如果这是不正确的,让我知道。

基于操作系统的运行级别打开/closures服务的方式通常通过“chkconfig”来处理。 我会首先确认哪些服务是closures的。

 chkconfig --list 

你应该得到大量的输出,其行数如下所示:

 gpm 0:off 1:off 2:off 3:off 4:off 5:off 6:off 

第一列是服务的名称,然后后面的列包含<runlevel>:<on|off>的值对<runlevel>:<on|off> 。 所以,在上面的一行中, gpm服务在所有运行级别都是closures的。

如果我是你,我会过滤输出,并在服务列表中寻找“httpd”或“apache”:

 chkconfig --list | egrep '(apache|httpd)' 

在我的RHEL盒子上,我得到以下内容:

 httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off 

默认运行级别通常是数字“3”。 然后我会把这个服务“打开”,这个运行级别3,4和5是这样的:

 chkconfig --level 345 httpd on 

即使这样做了,如果在启动VM时closures了服务,仍然需要手动重新启动服务:

 service httpd start 

ServerName指令警告可能会被忽略,但是如果要真正看到虚拟机提供的Web内容,最终必须手动指定为虚拟机指定的IP地址。 我会咨询Vagrant文​​档的“专用networking”部分。

希望这可以帮助!