Назад | Перейти на главную страницу

Apache не запускается автоматически после перезагрузки Scientific Linux Vagrant Box

Каждый раз, когда я перезагружаю свой компьютер с Scientific Linux, у меня возникает проблема, заключающаяся в том, что он не запускает веб-сервер Apache (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  ]

У меня есть аналогичная установка на Vagrant-боксе с сервером Ubuntu 12.04, который правильно запускал службы httpd, так в чем же ключ к тому, чтобы сервер Scientific Linux Apache автоматически загружал httpd?

Каждый раз я использую команду: vagrant reload в моей командной строке веб-сервер не запускает службу httpd, и мне приходится использовать команду перезапуска (sudo service httpd restart) чтобы получить это. Но я хочу, чтобы эта функция выполнялась автоматически, как на моем Ubuntu 12.04 раньше (precision64). Таким образом, решающим фактором является не граница между сообщениями Failed и OK, проблема в том, что они находятся в состоянии FAILED после перезагрузки.

Обновить: попробовал вашу красивую идею моментально! Но я определяю, что все 3 уровня выполнения (3,4,5) уже находятся в состоянии ВКЛ. Это мой текущий статус:

   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

Я столкнулся с той же проблемой при настройке среды разработки с помощью vagrant.

Я думаю, что одна из ваших записей documentRoot находится на общем диске. Поскольку vagrant монтирует их после загрузки (и apache запускается раньше), служба apache не может запуститься (отсутствует корень документа)

Я смог решить эту проблему, используя этот учебник в сети. Лично я в конечном итоге использовал метод SysVInit, потому что не смог сделать это с выскочкой. Вы можете легко портировать его на SystemD Вам просто нужно изменить /etc/init.d/httpd [command] к systemctl [command] http.service Вы также можете уже использовать service httpd start

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

JeroenED

У нас такая же проблема. Для нас это вызвано тем, что Apache полагается на общие файлы, которые монтируются Vagrant. Это приводит к сбою Apache во время загрузки.

В предыдущих версиях Vagrant сценарии обеспечения всегда запускались при загрузке / перезагрузке, поэтому Apache перезапускался после подключения общих сетевых ресурсов.

Судя по звуку, проблема в том, что Apache не включается по умолчанию после того, как вы выполните «бродячую перезагрузку». Я считаю, что «бродячая перезагрузка» имитирует то, что произойдет, если вы «выключите и снова выключите» виртуальную машину. Похоже, вы хотите, чтобы демон Apache запускался после загрузки виртуальной машины.

Я зашел на сайт Scientific Linux. В нем указано, что основной дистрибутив основан на «Enterprise Linux». Обычно я интерпретирую это как «RedHat Enterprise Linux». Если это неверно, дайте мне знать.

Способ включения / выключения служб в зависимости от уровня запуска операционной системы обычно осуществляется через «chkconfig». Сначала я хотел бы подтвердить, какие услуги включены, а какие нет.

chkconfig --list 

Вы должны получить массу вывода со строками, которые выглядят так:

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

Первый столбец - это имя службы, а затем последующий столбец содержит пары значений, которые <runlevel>:<on|off>. Итак, в строке выше gpm служба отключена на всех уровнях запуска.

На вашем месте я бы отфильтровал вывод и поискал бы «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

Даже если это будет сделано, вам все равно придется перезапустить службу вручную, если она была отключена при запуске виртуальной машины:

service httpd start

В ServerName предупреждение директивы может быть проигнорировано, но вам придется вручную указать IP-адрес, который вы указали для виртуальной машины при ее инициализации, если вы действительно хотите увидеть веб-контент, предоставляемый виртуальной машиной. Я бы проконсультировался с разделом «Частные сети» документации Vagrant.

Надеюсь это поможет!