Laravel Homestead
Table of Contents
Introduction
Laravel は、ローカル development の環境を含む、PHPdevelopment 体験全体を楽しいものにすることを目指しています。Laravel Homestead は、公式の、あらかじめパッケージ化された Vagrant ボックスで、PHP や webserver、または他の server ソフトウェアをあなたのローカルマシンにインストールすることなく、素晴らしい development 環境を提供します。
Vagrant は、仮想マシンの管理とプロビジョニングをシンプルでエレガントな方法で提供します。Vagrant のボックスは完全に使い捨て可能です。何か問題が発生した場合、数分でボックスを破棄し、再作成することができます!
Homestead は Windows、macOS、Linux システムで動作し、Nginx、PHP、 MySQL 、 PostgreSQL、 Redis 、 Memcached 、Node など、素晴らしい Laravel アプリケーションを開発するために必要な他のすべてのソフトウェアが含まれています。
WARNING
Windows を使用している場合、ハードウェア仮想化(VT-x)を有効にする必要があるかもしれません。通常、BIOS 経由で有効にすることができます。UEFI システム上で Hyper-V を使用している場合、VT-x にアクセスするためには、さらに Hyper-V を無効にする必要があるかもしれません。
含まれているソフトウェア
- Apache
- Blackfire
- カサンドラ
- Chronograf
- CouchDB
- Crystal & Lucky フレームワーク
- Elasticsearch
- EventStoreDB
- Flyway
- Gearman
- 行け
- Grafana
- InfluxDB
- Logstash
- MariaDB
- Meilisearch
- MinIO
- MongoDB
- Neo4j
- Oh My Zsh
- Open Resty
- PM2
- Python
- R
- RabbitMQ
- Rust
- RVM(Ruby バージョンマネージャー)
- Solr
- TimescaleDB
- トレーダー (PHP extension)
- Webdriver & Laravel Dusk ユーティリティ
Installation and Setup
最初のステップ
あなたの Homestead environment を立ち上げる前に、Vagrant をインストールするとともに、以下のサポートされている providers のうちの 1 つをインストールする必要があります:
これらの全てのソフトウェアパッケージは、すべての一般的なオペレーティングシステム用の使いやすいビジュアルインストーラーを提供します。
Parallels の provider を使用するには、Parallels Vagrant プラグイン をインストールする必要があります。それは無料です。
Homestead のインストール
ホストマシンに Homestead リポジトリをクローニングして Homestead をインストールすることができます。home ディレクトリ内のHomestead
フォルダにリポジトリをクローンすることをお勧めします。なぜなら、Homestead 仮想マシンはすべての Laravelapplication のホストとして機能するからです。このドキュメンテーション全体で、このディレクトリを Homestead ディレクトリと呼ぶことにします。
git clone https://github.com/laravel/homestead.git ~/Homestead
Laravel Homestead リポジトリをクローンした後、release
ブランチを checkout する必要があります。このブランチには常に Homestead の最新の安定した release が含まれています:
cd ~/Homestead
git checkout release
次に、bash init.sh
command を Homestead ディレクトリから実行し、Homestead.yaml
設定ファイルを作成します。Homestead.yaml
ファイルは、 Homestead インストールのすべての設定を行う場所です。このファイルは Homestead ディレクトリに配置されます。
# macOS / Linux...
bash init.sh
# Windows...
init.bat
Homestead の設定
あなたの Provider の設定
あなたのHomestead.yaml
ファイルのprovider
キーはどの Vagrant の provider を使用すべきかを示しています: virtualbox
またはparallels
:
provider: virtualbox
WARNING
もしあなたが Apple Silicon を使用しているなら、Parallels の provider が required です。
共有フォルダの設定
Homestead.yaml
ファイルのfolders
プロパティは、 Homestead environment と共有したいすべてのフォルダをリストします。これらのフォルダ内のファイルが変更されると、それらはあなたのローカルマシンと Homestead のバーチャル environment の間で sync され、状態が保持されます。必要なだけ共有フォルダを設定することができます。
folders:
- map: ~/code/project1
to: /home/vagrant/project1
WARNING
Windows の users は
~/
の path syntax 構文を使わず、代わりに自分の project への完全な path を使用すべきです。例えばC:\Users\user\Code\project1
のようにします。
常に個々のアプリケーションをそれぞれのフォルダマッピングに割り当てるべきであり、すべてのアプリケーションを含む single の大きなディレクトリにマッピングするのではありません。フォルダをマッピングすると、仮想マシンはフォルダ内のすべてのファイルのディスク IO を追跡しなければなりません。フォルダ内に大量のファイルがある場合、パフォーマンスが低下する可能性があります。
folders:
- map: ~/code/project1
to: /home/vagrant/project1
- map: ~/code/project2
to: /home/vagrant/project2
WARNING
Homestead を使用する際には、
.
(現在のディレクトリ)をマウントしてはいけません。これにより、Vagrant は現在のフォルダを/vagrant
にマッピングせず、オプションの features が機能しなくなり、プロビジョニング中に予期しない結果を引き起こします。
NFS を有効にするためには、フォルダーマッピングにtype
オプションを追加することができます。
folders:
- map: ~/code/project1
to: /home/vagrant/project1
type: "nfs"
WARNING
Windows で NFS を使用する場合、vagrant-winnfsd プラグインのインストールを検討するべきです。このプラグインにより、 Homestead 仮想マシン内のファイルとディレクトリの正しい user / グループの権限が維持されます。
また、options
キーの下にそれらをリストアップすることにより、Vagrant のSynced Folders でサポートされている任意の options を渡すこともできます。
folders:
- map: ~/code/project1
to: /home/vagrant/project1
type: "rsync"
options:
rsync__args: ["--verbose", "--archive", "--delete", "-zz"]
rsync__exclude: ["node_modules"]
Nginx サイトの設定
Nginx に詳しくないですか?問題ありません。あなたのHomestead.yaml
ファイルのsites
プロパティは、domain をあなたの Homestead environment のフォルダに簡単にマッピングすることができます。サンプルのサイト設定は、Homestead.yaml
ファイルに含まれています。また、必要なだけあなたの Homestead environment にサイトを追加することができます。 Homestead は、作業中の Laravel application の便利な仮想化 environment を提供できます:
sites:
- map: homestead.test
to: /home/vagrant/project1/public
sites
プロパティを Homestead 仮想マシンのプロビジョニング後に変更する場合は、仮想マシン上の Nginx 設定を update するために、ターミナルでvagrant reload --provision
command を実行する必要があります。
WARNING
Homestead scripts は可能な限り冪等に構築されています。ただし、プロビジョニング中に問題が発生した場合、
vagrant destroy && vagrant up
command を実行してマシンを破壊し、再構築する必要があります。
ホスト名解決
mDNS
を使用してホスト名を自動的に解決する Homestead が出版します。あなたがHomestead.yaml
ファイル内で hostname: homestead
を設定した場合、ホストはhomestead.local
で利用可能になります。macOS、iOS、Linux デスクトップディストリ view ションはmDNS
サポートを default で含んでいます。Windows を使用している場合は、 Bonjour Print Services for Windows をインストールする必要があります。
自動ホスト名の使用は、Homestead のper project installationsに最適です。もし複数のサイトを single Homestead インスタンス上でホストする場合、hosts
ファイルに web サイトの "domains" を追加することができます。このhosts
ファイルは、あなたのマシン上の Homestead サイトへのリクエストを Homestead 仮想マシンに redirect します。macOS と Linux では、このファイルは/etc/hosts
にあります。Windows では、C:\Windows\System32\drivers\etc\hosts
にあります。このファイルに追加する行は次のようになります:
192.168.56.56 homestead.test
リストされている IP アドレスが Homestead.yaml
ファイルに設定されたものであることを確認してください。一度 domain をあなたの hosts
ファイルと Vagrant ボックスに追加し、起動させたら、 web ブラウザを介してサイトにアクセスできるようになります。
http://homestead.test
Services の設定
Homestead は default でいくつかの services を起動します。しかし、プロビジョニング中に有効化または無効化する services をカスタマイズすることができます。例えば、PostgreSQL を有効化し、 MySQL を無効化するためには、Homestead.yaml
ファイル内のservices
option を変更します。
services:
- enabled:
- "postgresql"
- disabled:
- "mysql"
enabled
およびdisabled
ディレクティブでの順序に基づいて、指定された services が開始または停止されます。
Vagrant Box の起動
Homestead.yaml
をあなたの好みに編集したら、 Homestead ディレクトリから vagrant up
command を実行します。Vagrant は仮想マシンを boot し、共有フォルダと Nginx サイトを自動的に設定します。
マシンを破壊するには、vagrant destroy
command を使用することができます。
Project ごとのインストール
すべての project で同じ Homestead の仮想マシンを共有し、グローバルに Homestead をインストールする代わりに、管理する各 project に対して Homestead インスタンスを設定することもできます。Vagrantfile
を project に同梱して出荷したい場合など、各 project ごとに Homestead をインストールすることが有益かもしれません。これにより、project に取り組んでいる他の人々が、project のリポジトリをクローンした直後にvagrant up
をすぐに実行できます。
あなたは、 Composer パッケージマネージャを使用して、 Homestead をあなたの project にインストールすることができます。
composer require laravel/homestead --dev
一度 Homestead がインストールされたら、Homestead のmake
command を使用して、あなたの project のためのVagrantfile
とHomestead.yaml
ファイルを生成します。これらのファイルはあなたの project の root に配置されます。make
command は自動的にHomestead.yaml
ファイル内のsites
とfolders
のディレクティブを設定します:
# macOS / Linux...
php vendor/bin/homestead make
# Windows...
vendor\\bin\\homestead make
次に、ターミナルでvagrant up
の command を実行し、ブラウザでhttp://homestead.test
の project にアクセスします。ただし、自動ホスト名解決を使用していない場合、homestead.test
またはお選びの domain について/etc/hosts
ファイルのエントリを追加する必要がありますので、ご注意ください。
オプションの Features のインストール
オプションのソフトウェアは、Homestead.yaml
ファイル内のfeatures
オプションを使用してインストールされます。ほとんどの features は、 boolean value を使用して有効または無効にする事ができますが、一部の features では複数の設定 options を許可します:
features:
- blackfire:
server_id: "server_id"
server_token: "server_value"
client_id: "client_id"
client_token: "client_value"
- cassandra: true
- chronograf: true
- couchdb: true
- crystal: true
- dragonflydb: true
- elasticsearch:
version: 7.9.0
- eventstore: true
version: 21.2.0
- flyway: true
- gearman: true
- golang: true
- grafana: true
- influxdb: true
- logstash: true
- mariadb: true
- meilisearch: true
- minio: true
- mongodb: true
- neo4j: true
- ohmyzsh: true
- openresty: true
- pm2: true
- python: true
- r-base: true
- rabbitmq: true
- rustc: true
- rvm: true
- solr: true
- timescaledb: true
- trader: true
- webdriver: true
Elasticsearch
サポートされている Elasticsearch の version を指定することができます。これは正確な version 番号(メジャー.マイナー.パッチ)でなければなりません。default インストールでは、'Homestead'という名前の class ターが作成されます。Elasticsearch にはオペレーティングシステムのメモリの半分以上を割り当ててはならず、したがってあなたの Homestead 仮想マシンは少なくとも Elasticsearch 割り当ての 2 倍のメモリを持つようにしてください。
NOTE
Elasticsearch のドキュメンテーション を参照して、設定のカスタマイズ方法を学びましょう。
MariaDB
MariaDB を有効にすると、 MySQL が削除され、代わりに MariaDB がインストールされます。通常、 MariaDB は MySQL のドロップインリプレースメントとして機能するため、application の database 設定では引き続きmysql
の database driver を使用する必要があります。
MongoDB
default の MongoDB インストールでは、database の user 名がhomestead
に設定され、対応する password はsecret
に設定されます。
Neo4j
default の Neo4j インストールでは、databaseuser 名がhomestead
に設定され、対応する password がsecret
に設定されます。Neo4j ブラウザにアクセスするには、あなたの web ブラウザでhttp://homestead.test:7474
にアクセスしてください。ポート7687
(Bolt)、7474
( database username )、および7473
( HTTP S)は Neo4j client からの requests を受け付ける準備ができています。
Aliases
あなたはaliases
ファイルを変更することで、あなたの Homestead 仮想マシンに Bash の aliases を追加することができます。これはあなたの Homestead ディレクトリ内にあります:
alias c='clear'
alias ..='cd ..'
aliases
ファイルを更新した後で、vagrant reload --provision
command を使用して、 Homestead 仮想マシンを再プロビジョニングする必要があります。これにより、新しい aliases がマシン上で利用可能になることを確認することができます。
Updating Homestead
あなたが Homestead のアップデートを始める前に、現在の仮想マシンを削除したことを確認するべきです。これは、あなたの Homestead ディレクトリで以下の command を実行することにより行うことができます:
vagrant destroy
次に、 Homestead のソース code を update する必要があります。リポジトリをクローンした場合、元々リポジトリをクローンした場所で次のコマンドを実行できます:
git fetch
git pull origin release
これらのコマンドは、 GitHub リポジトリから最新の Homestead code を引っ張り出し、最新の tags を取得し、その後、最新のタグ付き release にチェックアウトします。最新の安定した release バージョンは Homestead のGitHub リリースページ で見つけることができます。
あなたがプロジェクトのcomposer.json
ファイルを通じて Homestead をインストールした場合、composer.json
ファイルが"laravel/homestead": "^12"
を含んでいることを確認し、 update であなたの依存関係を更新する必要があります:
composer update
次に、vagrant box update
command を使用して Vagrant ボックスを update する必要があります:
vagrant box update
Vagrant box を更新した後、Homestead の追加設定ファイルを更新するために Homestead ディレクトリからbash init.sh
command を実行する必要があります。既存のHomestead.yaml
、after.sh
、およびaliases
ファイルを上書きするかどうか尋ねられます:
# macOS / Linux...
bash init.sh
# Windows...
init.bat
最後に、最新の Vagrant インストールを利用するために、あなたの Homestead 仮想マシンを再生成する必要があります:
vagrant up
Daily Usage
SSH 経由での接続
vagrant ssh
という command を実行することで、仮想マシンに SSH 接続できます。このコマンドは、あなたの Homestead ディレクトリから実行してください。
追加のサイトを追加する
あなたの Homestead 環境が供給され、稼働している場合、他の Laravelprojects のために追加の Nginx サイトを追加したいかもしれません。あなたは単一の Homestead 環境上で、あなたが望むだけの Laravelprojects を実行できます。追加のサイトを追加するには、そのサイトをあなたのHomestead.yaml
ファイルに追加してください。
sites:
- map: homestead.test
to: /home/vagrant/project1/public
- map: another.test
to: /home/vagrant/project2/public
WARNING
サイトを追加する前に、プロジェクトのディレクトリに対してフォルダマッピングが設定されていることを確認してください。
Vagrant が自動的にあなたの"hosts"ファイルを管理していない場合、そのファイルに新しいサイトも追加する必要があるかもしれません。 macOS と Linux では、このファイルは/etc/hosts
に位置しています。 Windows では、C:\Windows\System32\drivers\etc\hosts
に位置しています:
192.168.56.56 homestead.test
192.168.56.56 another.test
サイトが追加されたら、vagrant reload --provision
端末の command をあなたの Homestead ディレクトリから実行してください。
サイトの種類
Homestead は、Laravel 以外のプロジェクトを簡単に実行できるようにするいくつかの"types"のサイトをサポートしています。例えば、statamic
サイト type を使用して、Statamic application を Homestead に簡単に追加することができます:
sites:
- map: statamic.test
to: /home/vagrant/my-symfony-project/web
type: "statamic"
利用可能なサイトの種類は次のとおりです: apache
、apache-proxy
、apigility
、expressive
、laravel
(これが default です)、proxy
(nginx 用)、silverstripe
、statamic
、symfony2
、symfony4
、そして zf
です。
サイトパラメータ
params
サイトディレクティブを使用して、fastcgi_param
の追加の values をあなたのサイトに追加することができます。
sites:
- map: homestead.test
to: /home/vagrant/project1/public
params:
- key: FOO
value: BAR
Environment 変数
あなたはHomestead.yaml
ファイルにそれらを追加することで、グローバルな environment 変数を定義することができます:
variables:
- key: APP_ENV
value: local
- key: FOO
value: bar
Homestead.yaml
ファイルを更新した後、必ず vagrant reload --provision
command を実行してマシンを再プロビジョニングしてください。これにより、インストールされたすべての PHP バージョンの PHP-FPM 設定が update され、また vagrant
user のための environment も update されます。
Ports
default として、以下のポートがあなたの Homestead environment に転送されます:
- HTTP: 8000 → 80 に転送
- HTTPS: 44300 → 443 に転送
追加のポートを転送する
ご希望であれば、Homestead.yaml
ファイル内に ports
設定エントリを定義することで、Vagrant ボックスへ追加のポートを転送することができます。Homestead.yaml
ファイルを更新した後、vagrant reload --provision
command を実行してマシンを再プロビジョニングすることを忘れないでください。
ports:
- send: 50000
to: 5000
- send: 7777
to: 777
protocol: udp
以下は、ホストマシンからあなたの Vagrant ボックスにマップしたい追加の Homestead service ポートのリストです:
- SSH: 2222 → 22 へ
- ngrok UI: 4040 → 4040 へ
- MySQL: 33060 → 3306 へ
- PostgreSQL: 54320 → 5432 へ
- MongoDB: 27017 → へ 27017
- Mailpit: 8025 → 8025 へ
- Minio: 9600 → 9600 へ
PHP バージョン
Homestead は、同一の仮想マシンで複数のバージョンの PHP を実行することをサポートしています。Homestead.yaml
ファイル内で特定のサイトに使用する PHP のバージョンを指定することができます。利用可能な PHP のバージョンは、"5.6"、"7.0"、"7.1"、"7.2"、"7.3"、"7.4"、"8.0"、"8.1"、"8.2"、そして"8.3"、( default )です。
sites:
- map: homestead.test
to: /home/vagrant/project1/public
php: "7.1"
Homestead 仮想マシン内では、CLI を通じて対応しているどの PHP versions でも使用することができます:
php5.6 artisan list
php7.0 artisan list
php7.1 artisan list
php7.2 artisan list
php7.3 artisan list
php7.4 artisan list
php8.0 artisan list
php8.1 artisan list
php8.2 artisan list
php8.3 artisan list
次のコマンドを使用して、CLI で使用される PHP の default バージョンを変更することができます。これらのコマンドは Homestead 仮想マシン内から発行します:
php56
php70
php71
php72
php73
php74
php80
php81
php82
php83
データベースへの接続
homestead
の database は、既定で MySQL と PostgreSQL の両方に対応しています。ホストマシンの database client から MySQL または PostgreSQL の database に接続するには、127.0.0.1
のポート33060
( MySQL )または54320
(PostgreSQL)に接続します。両方のデータベースの username と password は、homestead
/secret
です。
WARNING
これらの非標準ポートは、ホストマシンから databases に接続する際にのみ使用すべきです。
database
の設定ファイルでは、Laravel application が仮想マシンの within で動作しているため、default の 3306 と 5432 のポートを使用します。
Database バックアップ
Homestead は、あなたの Homestead 仮想マシンが破壊されたときに自動的にあなたの database をバックアップすることができます。この feature を利用するためには、Vagrant 2.1.0 よりも新しい version を使用している必要があります。または、Vagrant の古い version を使用している場合は、vagrant-triggers
プラグインをインストールする必要があります。自動的な database バックアップを有効にするには、次の行をあなたの Homestead.yaml
ファイルに追加してください:
backup: true
一度設定すると、Homestead はあなたが vagrant destroy
command を実行したときに、databases を .backup/mysql_backup
および .backup/postgres_backup
ディレクトリに出力します。これらのディレクトリは Homestead をインストールしたフォルダーや、プロジェクトごとのインストール 方法を使用している場合、あなたの project の root にあります。
Cron スケジュールの設定
Laravel は、毎分実行する single schedule:run
Artisan command をスケジュールすることで、schedule cron jobsを便利に行う方法を提供しています。 schedule:run
command は、実行する予定のタスクを決定するために、routes/console.php
ファイルに定義されている job schedule を調べます。
schedule:run
command を Homestead サイトで実行したい場合は、サイトの定義時に schedule
オプションを true
に設定することができます。
sites:
- map: homestead.test
to: /home/vagrant/project1/public
schedule: true
サイトの cron job は、 Homestead 仮想マシンの/etc/cron.d
ディレクトリで定義されます。
Mailpit の設定
Mailpit は、実際に受信者に mail を送ることなく、mail を傍受して確認することができます。始めるためには、application の .env
ファイルを 更新 して、次の mail の設定を使用してください:
MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
Mailpit が設定された後、http://localhost:8025
で Mailpit のダッシュボードにアクセスできるようになります。
Minio の設定
Minio は Amazon S3 と互換性のある API がついたオープンソース objectstorageserver です。Minio をインストールするには、以下の設定 option を含めてHomestead.yaml
ファイルをアップデートしてください。この設定は機能セクションにあります。
minio: true
default secret では、Minio はポート 9600 で利用可能です。Minio のコントロールパネルにアクセスするには、http://localhost:9600
を訪れてください。 default のアクセス key はhomestead
で、 default のシークレット key はsecretkey
です。Minio にアクセスする際は、常にリージョンus-east-1
を使用するべきです。
Minio を使用するためには、あなたの.env
ファイルに以下の options があることを確認してください:
AWS_USE_PATH_STYLE_ENDPOINT=true
AWS_ENDPOINT=http://localhost:9600
AWS_ACCESS_KEY_ID=homestead
AWS_SECRET_ACCESS_KEY=secretkey
AWS_DEFAULT_REGION=us-east-1
S3 バケットを Minio でプロビジョニングするために、Homestead.yaml
ファイルにbuckets
ディレクティブを追加してください。バケットを定義した後、ターミナルでvagrant reload --provision
command を実行する必要があります。
buckets:
- name: your-bucket
policy: public
- name: your-private-bucket
policy: none
対応するpolicy
の values には、none
、download
、upload
、public
が含まれます。
Laravel Dusk
Homestead 内でLaravel Duskテストを実行するためには、 Homestead の設定でwebdriver
featureを有効にすべきです:
features:
- webdriver: true
webdriver
の feature を有効にした後、ターミナルでvagrant reload --provision
の command を実行する必要があります。
あなたの Environment の共有
時には、現在作業しているものを同僚や client と共有したいと思うことがあるかもしれません。Vagrant はこれをvagrant share
コマンドを介して組み込みでサポートしています。ただし、Homestead.yaml
ファイルに複数のサイトが設定されている場合、これは機能しません。
この問題を解決するために、 Homestead は独自の share
command を含んでいます。始めるために、あなたの Homestead 仮想マシンへ SSH 接続して vagrant ssh
を使用し、 share homestead.test
command を実行します。この command は Homestead.yaml
設定ファイルから homestead.test
サイトを共有します。あなたは任意の他の設定済みサイトを homestead.test
と置き換えることができます。
share homestead.test
command を実行した後、アクティビティ log と共有サイトの公開アクセス可能な URL を含む Ngrok 画面が表示されます。 custom のリージョン、サブドメイン、またはその他の Ngrok runtime オプションを指定したい場合は、それらをshare
command `に追加することができます。
share homestead.test -region=eu -subdomain=laravel
もし HTTP S で content を共有する必要がある場合は、share
の代わりにsshare
command を使用することでそれが可能になります。
WARNING
share
command を実行してインターネットに仮想マシンを公開するとき、Vagrant は本質的に不安全であることを忘れないでください。
Debugging and Profiling
Xdebug を使用した Debugging Web リクエスト
Homestead は、Xdebug を使ったステップ debugging をサポートしています。例えば、ブラウザでページにアクセスし、PHP があなたの IDE に接続して、実行中の code の検査と修正を許可します。
default として、Xdebug はすでに実行され、接続を受け入れる準備ができています。 CLI 上で Xdebug を有効にする必要がある場合は、sudo phpenmod xdebug
command を Homestead 仮想マシン内で実行してください。次に、IDE の説明に従って debugging を有効にします。最後に、拡張機能かブックマークレット を使用して、ブラウザが Xdebug をトリガーするように設定します。
WARNING
Xdebug は PHP の実行速度を大幅に低下させます。Xdebug を無効にするには、 Homestead 仮想マシン内で
sudo phpdismod xdebug
を実行し、FPM service を再起動してください。
Xdebug の自動起動
web サーバーにリクエストを送る機能テストを debugging する際、 custom header や cookie を通じて debugging をトリガーするためにテストを修正するよりも、 debugging を自動起動する方が簡単です。Xdebug を自動的に起動するように強制するには、 Homestead 仮想マシン内の/etc/php/7.x/fpm/conf.d/20-xdebug.ini
ファイルを修正し、以下の設定を追加します:
; If Homestead.yaml contains a different subnet for the IP address, this address may be different...
xdebug.client_host = 192.168.10.1
xdebug.mode = debug
xdebug.start_with_request = yes
Debugging CLI アプリケーション
PHP CLI application を debug するには、xphp
シェル alias をあなたの Homestead 仮想マシン内で使用してください:
xphp /path/to/script
Blackfire を用いたアプリケーションのプロファイリング
Blackfire は、 web リクエストと CLI アプリケーションのプロファイリング用の service です。それは呼び出しグラフとタイムラインにプロファイル data を表示するインタラクティブな user インターフェースを提供します。開発、ステージング、そして production での使用を目指して構築されており、エンド users にとってのオーバーヘッドはありません。さらに、Blackfire は code とphp.ini
設定のパフォーマンス、品質、セキュリティチェックを提供します。
Blackfire Player はオープンソースの Web クローリング、Web テスト、そして Web スクレイピングの application で、Blackfire と共に働き、プロファイリングシナリオを script 化することが可能です。
Blackfire を有効にするには、 Homestead 設定ファイルの"features"設定を使用してください:
features:
- blackfire:
server_id: "server_id"
server_token: "server_value"
client_id: "client_id"
client_token: "client_value"
Blackfire サーバーの資格情報と client の資格情報は、Blackfire のアカウントが必要です 。Blackfire は、CLI ツールやブラウザ拡張機能を含む、 application のプロファイルを作成するためのさまざまな options を提供しています。詳細については、Blackfire のドキュメンテーションをご覧ください 。
Network Interfaces
Homestead.yaml
ファイルのnetworks
プロパティは、 Homestead 仮想マシンのネットワークインターフェイスを設定します。必要なだけインターフェースを設定することができます:
networks:
- type: "private_network"
ip: "192.168.10.20"
ブリッジド インターフェースを有効にするには、ネットワークの bridge
設定を行い、ネットワークの type を public_network
に変更します:
networks:
- type: "public_network"
ip: "192.168.10.20"
bridge: "en1: Wi-Fi (AirPort)"
DHCP を有効にするには、設定から ip
オプションを削除するだけです:
networks:
- type: "public_network"
bridge: "en1: Wi-Fi (AirPort)"
ネットワークが使用しているデバイスを update するためには、ネットワークの設定にdev
オプションを追加することができます。 default のdev
value は eth0
です:
networks:
- type: "public_network"
ip: "192.168.10.20"
bridge: "en1: Wi-Fi (AirPort)"
dev: "enp2s0"
Extending Homestead
あなたはafter.sh
スクリプトを使用して、 Homestead を拡張することができます。これはあなたの Homestead ディレクトリの root にあります。このファイル内で、あなたは仮想マシンを適切に設定しカスタマイズするために必要なシェルコマンドを追加することができます。
Homestead をカスタマイズする際、Ubuntu はパッケージのオリジナルの設定を保持するか、新しい設定ファイルで上書きするかを問うかもしれません。これを避けるためには、 Homestead によって以前に記述された設定を上書きしないように、パッケージのインストール時に以下の command を使用するべきです:
sudo apt-get -y \
-o Dpkg::Options::="--force-confdef" \
-o Dpkg::Options::="--force-confold" \
install package-name
User カスタマイズ
チームで Homestead を使用する際には、 Homestead をあなたの個人的な開発スタイルにより適合するように調整したいかもしれません。これを達成するためには、Homestead.yaml
ファイルが含まれているのと同じ Homestead ディレクトリの root に user-customizations.sh
ファイルを作成することができます。このファイル内では、任意のカスタマイゼーションを行うことができます。ただし、user-customizations.sh
はバージョン管理すべきではありません。
Provider Specific Settings
VirtualBox
natdnshostresolver
default で、 Homestead はnatdnshostresolver
設定をon
に設定します。これにより Homestead は、ホストオペレーティングシステムの DNS 設定を使用できます。この動作を上書きしたい場合は、以下の設定 options をHomestead.yaml
ファイルに追加してください:
provider: virtualbox
natdnshostresolver: "off"