Ich habe Probleme beim Konfigurieren eines CentOS 6 Vagrant-Setups zum Starten des Apache-Dienstes beim Booten. Ich habe versucht, chkconfig zu verwenden, und das Betriebssystem scheint es einfach zu ignorieren.
Wenn ich renne sudo chkconfig --list httpd
, bekomme ich
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Was ich vermute, war das Ergebnis der Ausführung der Befehle
sudo chkconfig httpd on
sudo chkconfig --levels 235 httpd on
sudo chkconfig --levels 345 httpd on
in verschiedenen Versuchen, dieses Ding in meinem Bereitstellungsskript richtig zu konfigurieren. Ich benutze weder Puppe noch Koch, noch möchte ich wirklich. Ich hatte dies auf einem anderen Host-Computer, aber auf dem zweiten Host scheint es aus irgendeinem Grund nicht mehr zu funktionieren.
Das manuelle Starten des Dienstes mit sudo service httpd start
funktioniert einwandfrei, aber sobald ich einen vagrant halt && vagrant up
oder vagrant reload
den Dienst starte, wird er nicht gestartet, wenn die VM wieder hochgefahren wird.
Frustrierend ist, dass der mysqld-Dienst, den ich genauso konfiguriert habe, beim Start einwandfrei funktioniert.
Mein / var / log / httpd / error_log sagt dies:
[Thu Apr 17 09:31:09 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu Apr 17 09:31:09 2014] [notice] Digest: generating secret for digest authentication ...
[Thu Apr 17 09:31:09 2014] [notice] Digest: done
[Thu Apr 17 09:31:09 2014] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.5.11 configured -- resuming normal operations
[Thu Apr 17 09:34:45 2014] [notice] caught SIGTERM, shutting down
/vagrant
Mount zufällig als DocumentRoot festgelegt? Dies wurde möglicherweise nicht bereitgestellt, als Apache versucht zu starten, was zu einem fehlenden / nicht lesbaren DocumentRoot führt, was ein Grund für die sofortige Beendigung von Apache ist.Antworten:
Es stellte sich heraus, dass die VM versuchte, den Apache-Dienst zu starten, bevor Vagrant die freigegebenen Ordner bereitgestellt hatte, und dass httpd DocumentRoot auf ein nicht vorhandenes Verzeichnis zeigte. Ich habe diese Anweisungen befolgt, um ein udev-Ereignis einzurichten, das wartet, bis der Mount erfolgt ist, bevor versucht wird, httpd zu starten.
http://razius.com/articles/launching-services-after-vagrant-mount/
quelle
Wenn
httpd
auf in istchkconfig
und die Syntax korrekt ist , ist es wahrscheinlich Apache Dokument Fußpunkte zu synchronisierten Ordner, die zum Zeitpunkt des Beginns der Dienst nicht verfügbar ist.Die Problemumgehung besteht darin, ein Shell-Skript in Ihr System bereitzustellen,
Vagrantfile
das den Dienst überprüft und bei Bedarf jedes Mal startet, wenn dervagrant
Befehl aufgerufen wird, zoder:
Siehe auch: Apache startet nicht nach dem Neuladen von Vagrant bei SO
quelle