カテゴリー
コンピューター

【Vagrant】共有フォルダ内にドキュメントルートがあるために httpd が自動起動できない問題への対処

config.vm.synced_folder で Vagrant 共有フォルダを設定できます。

この共有フォルダからフォルダを中に 2 〜 3 個進んだところを Apache のドキュメントルートとして設定しておりました。

すると、仮想マシンで httpd を自動起動するように設定しているにもかかわらず、エラーで起動しないという問題が発生してしまいました><。

今回、この問題を解決できましたのでノートいたします。

httpd を起動する設定

仮想マシン起動後に、プロビジョニングが行われることを利用して、このタイミングで httpd を再起動するようにいたします。

Vagrant.configure("2") do | config|
  config.vm.provision "shell", run: "always", inline: "sudo service httpd restart"
end

以上を追記し、vagrant up することで httpd が自動的に起動いたしました♪

おまけ

shell を inline 実行するときに、ある程度見やすくなるように書き方をかんがえると次のようになると思います。

ヒアドキュメントを使います♪

  • 終端位置をインデントしたいため、<<- を使用した。
  • Vagrantfile の場合、<<- EOT は NG。スペースを除いた <<-EOT とする必要がある。
    Vagrant.configure("2") do | config|
      config.vm.provision "shell", run: "always", inline: <<-EOT
        sudo service httpd restart
        echo "hello"
        echo "world!"
      EOT
    end
    

おわりに

次のページが参考になりました♪ありがとう存じます!

以上です。

コメントを残す