グローバルなHomesteadでLaravel環境構築
目次
Homesteadの設定
Homesteadの初期化
Homesteadリポジトリをクローンしたら、Homestead.yaml設定ファイルを生成するために、bash init.shコマンドをHomesteadディレクトリで実行する。
$ bash init.sh
after.sh, aliases, Homestead.yaml の3つのファイルが新たに生成されているのを確認
初期化に続いてHomestead.yamlを編集して Homestead を設定する。
provider: virtualbox (確認のみ。初期値が同じであるため変更不要)
共有ディレクトリの設定
~/codeフォルダへ常に個別プロジェクトをマップする代わりに、別々にマップすべきでしょう。仮想マシンへあるフォルダをマップすると、そのフォルダ中のすべてのファイルによるディスクIOをトラックし続けます。これにより、フォルダの中に莫大なファイルが存在する場合に、パフォーマンスの問題が起きます。
とりあえず3つのプロジェクトを設定しておく。(後でプロジェクト追加する場合は、Homestead.yaml に追記して、vagrant reload –provision で反映させればよい)
folders: - map: ~/code/project01 to: /home/vagrant/code/project01 - map: ~/code/project02 to: /home/vagrant/code/project02 - map: ~/code/project03 to: /home/vagrant/code/project03
同時に、ローカルマシン側のユーザーディレクトリ直下に code フォルダを作成。
$ mkdir ~/code $ chmod 755 ~/code
~/code の配下に各プロジェクトの共有ディレクトリを作る。これは、自動で生成されるわけではないので。
(権限は 755 $ chmod 755 ~/code)
$ cd ~/code $ mkdir project01 project02 project03
なお、Homestead.yaml を編集したり、共有フォルダを変更した場合は vagrant reload –provision すると反映された。(vagrant up –provision では反映されない)
また、ゲストマシン側では、Homestead.yaml 変更前の古いフォルダも残っていたので、これは手動で rmdir して削除した。
laravel プロジェクトを git clone した後のエラー対応
composer install する
ビルトインサーバー立ち上げのため、
php artisan serve --host 192.168.10.10 --port 8000
ところが長々としたエラーが!
Warning: require(/home/vagrant/code/dotinstall_myblog/myblog/vendor/autoload.php): failed to open stream: No such file or directory in /home/vagrant/code/dotinstall_myblog/myblog/artisan on line 18
PHP Fatal error: require(): Failed opening required ‘/home/vagrant/code/dotinstall_myblog/myblog/vendor/autoload.php’ (include_path=’.:/usr/share/php’) in /home/vagrant/code/dotinstall_myblog/myblog/artisan on line 18
Fatal error: require(): Failed opening required ‘/home/vagrant/code/dotinstall_myblog/myblog/vendor/autoload.php’ (include_path=’.:/usr/share/php’) in /home/vagrant/code/dotinstall_myblog/myblog/artisan on line 18
どうやら /vendor/autoload.php が見つからないことが問題。