(前回の続き)
前回の記事で Vagrant に Homestead をインストールし、Windows から仮想OSを起動するところまで行いました。次は仮想環境に Laravel アプリケーションを作成してみます。
Homestead にはすでに Web サーバーや MySql、Composer などの環境が揃っています。SSH でログインすればすぐにそれらを利用できます。
cd ~/Homestead
vagrant ssh
これだけで SSH ログインが可能です。もし「vagrant ssh」を使わずに使い慣れたツールからログインするなら次の設定でもログインできます。
IP: 127.0.0.1
Port: 2222
User: vagrant
Password: vagrant
前回「C:\Users\ユーザー名\Code\Laravel\public\index.php」にテスト用のファイルを置いて動作を確認しました。今回は実際に Laravel プロジェクトを「/Home/Code/Laravel」に作ってみます。動作テストで作った Laravel フォルダは不要なので削除しておいて下さい。(Windows側からでも構いません)
rm -r ~/Code/Laravel
プロジェクト作成は仮想環境側から行います。書式は「composer create-project laravel/laravel プロジェクト名 –prefer-dist」です。
cd ~/Code
composer create-project laravel/laravel Laravel --prefer-dist
無事にインストールが済んだらブラウザで「http://homestead.app」にアクセスしてみます。正常なら Laravel の初期画面が表示されているはずです。
これでプロジェクト作成は完了です。Windows 側からもホームの Code フォルダに同じプロジェクトフォルダが存在するのが確認できるはずです。
サイトの追加
サイトが一つ出来たので、さらにもう一つサイトを追加してみます。
今回は「http://sample.homestead.app」にアクセスしたら「/home/vagrant/Code/sample/public」の内容が表示されるようにしてみます。
コマンドはこちらです。SSH ログインした仮想環境側で実行して下さい。
serve sample.homestead.app /home/vagrant/Code/sample/public
あとは Windows に戻り、「C:\Windows\System32\drivers\etc\hosts」に管理者権限で追記します。
192.168.10.10 sample.homestead.app
あとは先程と同様に Laravel プロジェクトを仮想環境上に作成します。
cd ~/Code
composer create-project laravel/laravel sample --prefer-dist
これで Code フォルダ内に sample が作られ、「http://sample.homestead.app」からアクセスできるようになりました。
データベース管理ツール
データベースの操作はコマンドでもできますが、phpMyAdmin などの GUI ツールがあると便利です。まずは apt-get で仮想環境にインストールしてみます。
sudo apt-get install phpmyadmin
ユーザー vagrant のパスワードは「vagrant」です。sudo で必要ならそのように入力して下さい。phpmyadmin は「/usr/share/phpmyadmin/」にインストールされます。先ほどと同じように serve コマンドを使って「http://phpmyadmin.app」のアドレスから「/usr/share/phpmyadmin/」にアクセスできるようにします。
serve phpmyadmin.app /usr/share/phpmyadmin/
Windows の hosts にも次の行を書き加えます。
192.168.10.10 phpmyadmin.app
これで「http://phpmyadmin.app」から phpMyAdmin ページに移動できます。
mysql のユーザー名 homestead、パスワード secret でログイン可能です。
phpMyAdmin の代わりに Windows のアプリケーションを使って管理することも出来ます。代表的な管理ツールとして、公式の MySQL Workbench などが有ります。
基本的な設定は次のようにします。
Host: 127.0.0.1
Port: 33060
Username: homestead
Password: secret
/etc/mysql/my.cnf の bind-address の設定によっては Host の IP が変わるかもしれませんが、こちらの環境では上記で接続出来ました。