Homesteadの設定を変更してちょっとだけ使いこなしてみる

Homesteadの設定を変更してちょっとだけ使いこなしてみるHomestead
Homesteadの設定を変更してちょっとだけ使いこなしてみる

デザイントランスメディア 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の設定や小技はまだまだありますが、自分が使っている設定は大体これくらいかなと思います。
また、新しい物を見つけたりしたら紹介したいと思います。

タイトルとURLをコピーしました