起動時にApacheサービスを開始するようにCentOS 6 Vagrantセットアップを構成するのに問題があります。私はchkconfigを使用してみましたが、OSはそれを無視しているようです。
Sudo chkconfig --list httpd
を実行すると、
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
コマンドを実行した結果だと思います
Sudo chkconfig httpd on
Sudo chkconfig --levels 235 httpd on
Sudo chkconfig --levels 345 httpd on
私のプロビジョニングスクリプトでこのことを正しく構成するさまざまな試みで。私はPuppetやChefを使用しておらず、実際に使用したくもありません。別のホストマシンでこれを機能させていましたが、2番目のホストでは、何らかの理由で機能しなくなったようです。
Sudo service httpd start
を使用して手動でサービスを開始すると正常に機能しますが、vagrant halt && vagrant up
またはvagrant reload
を実行するとすぐに、VMが戻ってきたときにサービスが開始されませんアップ。
イライラして、まったく同じ方法で構成したmysqldサービスが、起動時に完全に正常に起動します。
私の/ var/log/httpd/error_logはこれを言っています:
[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
問題は、VMがVagrantが共有フォルダをマウントする前にApacheサービスを開始しようとしており、httpd DocumentRootが存在しないディレクトリを指していることであることがわかりました。マウントが発生するまで待機してからhttpdを起動しようとするudevイベントを設定します。
http://razius.com/articles/launching-services-after-vagrant-mount/