デザイントランスメディア Advent Calendar 2019 10日目の記事です。
何回かに分けて、Laravel6の基本的なインストールを行ってきました。
各記事は、下記のリンク先をご覧ください。
今回は、環境構築の話題に少し戻って、Homesteadについて少し使い方を紹介したいと思います。
homestead.yamlの再反映
サイトの追加や、Sysncフォルダの追加などでhomestead.yamlを更新した場合、単純にvagrantnの再起動では反映されません。
vagrantが起動している状態で下記コマンドを実行します。
vagrant reload --provision
これで、homestead.yamlの設定が再設定されます。
これからの説明で、homestead.yamlを変更している場合、変更後にこのコマンドを実行する必要があります。
複数サイトの設定
自分もそうですが、案件が複数ある場合、複数のサイトを立ち上げる必要がありますが、その場合、homestead.yamlを変更することで実現できます。
folders:
- map: ~/Documents/code/0002_test
to: /home/vagrant/code/0002_test
- map: ~/Documents/code/0003_test2
to: /home/vagrant/code/0003_test2
sites:
- map: test1.test
to: /home/vagrant/code/0002_test/public
- map: test2.test
to: /home/vagrant/code/0003_test2/public
foldersの項目にSyncするフォルダを追加します。また、sitesに追加したドメインとドキュメントルートを記載します。
基本的には、この2つを追加することでサイトを複数立ち上げることができます。
もちろん、追加したドメインのhostsの設定は必要ですよ。
Apacheへの変更
基本的にhomesteadのサイトは指定がなければ、nginxで稼働します。
もし、Apacheに変更したい場合は、sitesの項目にtypeを追加して、apacheを指定します。
sites:
- map: test1.test
to: /home/vagrant/code/0002_test/public
type: "apache "
typeの種類は他にもいろいろあるみたいですが、未検証です。
PHPのバージョン指定
homesteadで複数サイトを構築する場合、サイトによってPHPのバージョンが異なる場合があります。
その場合は、homestead.yamlのsitesにPHPのバージョンを指定します。
sites:
- map: test1.test
to: /home/vagrant/code/0002_test/public
type: "apache "
php: "5.6"
- map: test2.test
to: /home/vagrant/code/0003_test2/public
php: "7.3"
指定できるバージョンは、下記になります。
- PHP 7.3
- PHP 7.2
- PHP 7.1
- PHP 7.0
- PHP 5.6
マニュアル上は記載されていないですが、CLIは切り替わったので、PHP7.4も組み込まれていそうです。
PHPのCLIのバージョン変更
コマンドラインのPHPのバージョンを切り替えたい場合は、homesteadにSSHログインして下記のコマンドで切り替えることが可能です。
# PHP 7.3に切り替え
php73
# PHP 7.2に切り替え
php72
# PHP 7.1に切り替え
php71
# PHP 7.0に切り替え
php70
# PHP 5.6に切り替え
php56
ウェブサーバーの切り替え
homestead.yamlのsitesの設定で、Apacherとnginxが共存している場合、homesteadにsshログインし、下記コマンドで切り替えが可能です。
flip
flipを実行するたびに、nginxとapacheが切り替わります。
Mailの設定
これ、めちゃくちゃ便利だなーと思ったのですが、送信するメールを相手側に送信することなく、確認することが可能です。
Laravelの.envの設定を下記に変更します。
MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
http://localhost:8025 へアクセスすると送信されたメールがここで確認できます。実際には、メールは相手側へ送信されていません。
homesteadの設定や小技はまだまだありますが、自分が使っている設定は大体これくらいかなと思います。
また、新しい物を見つけたりしたら紹介したいと思います。