前提環境
- mac 10.9.5
- php 5.6
- composer 1.0.0
- vagrant 1.6.3
目標
- vagrantでLaravelを動かす
- DBはPostgreSql
macでphp+postgresqlやろうとして、
[PDOException]
could not find driver
が出たからhomesteadに挑戦したという・・
手順
基本的に公式のドキュメント通り。
Laravel Homestead 5.0.0 Laravel
Vagrant boxの追加
vagrant box add laravel/homestead
Homesteadのインストール
手順は2種類。git cloneするのと、composerで入れるの。
git cloneの場合はこちらの手順で良い。
composerを選択した場合
composerでhomesteadをインストール
composer global require "laravel/homestead=~2.0"
~/.composer/vendor/bin
にPATHを通す
ターミナルからhomesteadコマンドが使えるようになる。
homestead 設定ファイルを作成
homestead init
Homestead.yaml ファイルが ~/.homestead
ディレクトリに作られる。
Homestead.yamlの設定を変更する
ターミナルで
homestead edit
を打つと、editorでHomestead.yamlを編集できる。
普通にテキスト編集エディタでファイルを開いて編集しても同じ。
設定項目
- ip: vagrantに割り当てられるIP address
- authorize: 公開鍵のパス
- keys: 秘密鍵のパス
- folters: ホストでlaravelのコードを置きたいディレクトリとvagrantでのディレクトリのマッピング
- sites: Nginxサイト設定
- databases: vagrant上のMySql, PostgreSqlに作るデータベース名
- variables: vagrant上での環境変数
vagrant up
公式のドキュメントに
Homesteadディレクトリーで vagrant up コマンドを実行してください。
と書いてあるが、Homesteadディレクトリーがどこなのかわからん・・
これでめちゃめちゃハマりました・・
普通にgit cloneしてる場合は、そのcloneしたディレクトリで良いのですが、composerでインストールした場合
cd ~/.composer/vendor/laravel/homestead
でした。。
homestead init
で作られた ~/.homestead
ではありません。。
こっちは設定ファイルが置かれるだけらしい・・
ひどい目にあった;;
動作確認
アプリの起動
vagrant sshでログインして、ホームにHomestead.yamlで指定した folders
のvagrant側のディレクトリが出来てるか確認する。
出来てたら、cdして、アプリケーション起動。
php artisan serve
ホストから 192.168.10.10:8000
(Homestead.yamlのIP設定を変えていれば、IP部分を読み替えて)接続・・・・
できない!!なぜ〜〜
php artisan serve --host 0.0.0.0
にすると解決した。
参考URL:laravelのartisan serveで起動したビルトインサーバに外部からアクセスする方法 – 日本の天ぷら情報
ありがとうございます!
DB接続が出来てるか確認
まだ Larabelの初期設定(DBの設定をpostgresに変えたくらい)しかしていないので、モデルが無い。
が、DB接続可能か調べるのは以下で大丈夫っぽい。
初めてmigrationするなら
php artisan migrate:install
もうマイグレーション済なら
php artisan migrate:refresh
とかでエラーが出なければ大丈夫っぽい。