Laravel Homestead¶
はじめに¶
Laravelは、ローカル開発環境を含む、PHP開発全体の経験を楽しくすることを目指しています。Laravel Homesteadは、公式の事前パッケージ化されたVagrant Boxで、PHPやWebサーバー、その他のサーバーソフトウェアをローカルマシンにインストールすることなく、素晴らしい開発環境を提供します。
Vagrantは、仮想マシンの管理とプロビジョニングを簡単かつエレガントに行う方法を提供します。Vagrant Boxは完全に使い捨て可能です。何か問題が発生した場合、数分でBoxを破棄して再作成できます。
Homesteadは、Windows、macOS、Linuxのいずれのシステムでも動作し、Nginx、PHP、MySQL、PostgreSQL、Redis、Memcached、Nodeなど、素晴らしいLaravelアプリケーションを開発するために必要なすべてのソフトウェアが含まれています。
Warning
Windowsを使用している場合、ハードウェア仮想化(VT-x)を有効にする必要があるかもしれません。通常、BIOSから有効にできます。UEFIシステムでHyper-Vを使用している場合、VT-xにアクセスするためにHyper-Vを無効にする必要があるかもしれません。
含まれるソフトウェア¶
- Ubuntu 22.04
- Git
- PHP 8.3
- PHP 8.2
- PHP 8.1
- PHP 8.0
- PHP 7.4
- PHP 7.3
- PHP 7.2
- PHP 7.1
- PHP 7.0
- PHP 5.6
- Nginx
- MySQL 8.0
- lmm
- Sqlite3
- PostgreSQL 15
- Composer
- Docker
- Node(Yarn、Bower、Grunt、Gulpを含む)
- Redis
- Memcached
- Beanstalkd
- Mailpit
- avahi
- ngrok
- Xdebug
- XHProf / Tideways / XHGui
- wp-cli
オプションのソフトウェア¶
- Apache
- Blackfire
- Cassandra
- Chronograf
- CouchDB
- Crystal & Lucky Framework
- Elasticsearch
- EventStoreDB
- Flyway
- Gearman
- Go
- Grafana
- InfluxDB
- Logstash
- MariaDB
- Meilisearch
- MinIO
- MongoDB
- Neo4j
- Oh My Zsh
- Open Resty
- PM2
- Python
- R
- RabbitMQ
- Rust
- RVM (Ruby Version Manager)
- Solr
- TimescaleDB
- Trader(PHP拡張)
- Webdriver & Laravel Dusk Utilities
インストールとセットアップ¶
最初のステップ¶
Homestead環境を起動する前に、Vagrantと、以下のサポートされているプロバイダのいずれかをインストールする必要があります:
これらのソフトウェアパッケージは、すべての主要なオペレーティングシステムに対応した簡単なインストーラを提供します。
Parallelsプロバイダを使用するには、Parallels Vagrantプラグインをインストールする必要があります。これは無料です。
Homesteadのインストール¶
Homesteadをインストールするには、Homesteadリポジトリをホストマシンにクローンします。リポジトリを「ホーム」ディレクトリ内のHomestead
フォルダにクローンすることを検討してください。Homestead仮想マシンは、すべてのLaravelアプリケーションのホストとして機能します。このドキュメント全体で、このディレクトリを「Homesteadディレクトリ」と呼びます:
Laravel Homesteadリポジトリをクローンした後、release
ブランチをチェックアウトする必要があります。このブランチには、常にHomesteadの最新の安定リリースが含まれています:
次に、Homesteadディレクトリからbash init.sh
コマンドを実行して、Homestead.yaml
設定ファイルを作成します。Homestead.yaml
ファイルは、Homesteadインストールのすべての設定を行う場所です。このファイルはHomesteadディレクトリに配置されます:
Homesteadの設定¶
プロバイダの設定¶
Homestead.yaml
ファイルのprovider
キーは、使用するVagrantプロバイダを示します:virtualbox
またはparallels
:
provider: virtualbox
Warning
Apple Siliconを使用している場合、Parallelsプロバイダが必要です。
共有フォルダの設定¶
Homestead.yaml
ファイルのfolders
プロパティは、Homestead環境と共有したいすべてのフォルダをリストアップします。これらのフォルダ内のファイルが変更されると、ローカルマシンとHomestead仮想環境の間で同期されます。必要に応じて、任意の数の共有フォルダを設定できます:
Warning
Windowsユーザーは~/
パス構文を使用せず、代わりにC:\Users\user\Code\project1
のようなプロジェクトへの完全なパスを使用するべきです。
個々のアプリケーションをそれぞれのフォルダマッピングにマップすることを常に検討してください。フォルダをマップすると、仮想マシンはフォルダ内のすべてのファイルのディスクIOを追跡する必要があります。フォルダ内に多数のファイルがある場合、パフォーマンスが低下する可能性があります:
folders:
- map: ~/code/project1
to: /home/vagrant/project1
- map: ~/code/project2
to: /home/vagrant/project2
Warning
Homesteadを使用する際には、.
(現在のディレクトリ)をマウントしないでください。これにより、Vagrantが現在のフォルダを/vagrant
にマップできなくなり、オプション機能が壊れたり、プロビジョニング中に予期しない結果が発生する可能性があります。
NFSを有効にするには、フォルダマッピングにtype
オプションを追加できます:
Warning
WindowsでNFSを使用する場合、vagrant-winnfsdプラグインのインストールを検討してください。このプラグインは、Homestead仮想マシン内のファイルとディレクトリの正しいユーザー/グループの権限を維持します。
Vagrantの同期フォルダでサポートされている任意のオプションを、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
プロパティを使用すると、「ドメイン」をHomestead環境内のフォルダに簡単にマップできます。Homestead.yaml
ファイルには、サンプルのサイト設定が含まれています。繰り返しますが、Homestead環境に必要な数のサイトを追加できます。Homesteadは、作業中のすべてのLaravelアプリケーションに対して便利な仮想化環境として機能できます:
Homestead仮想マシンのプロビジョニング後にsites
プロパティを変更した場合、ターミナルでvagrant reload --provision
コマンドを実行して、仮想マシン上のNginx設定を更新する必要があります。
Warning
Homesteadスクリプトは、可能な限り冪等性を持つように構築されています。しかし、プロビジョニング中に問題が発生した場合、vagrant destroy && vagrant up
コマンドを実行してマシンを破棄して再構築する必要があります。
ホスト名の解決¶
Homestead は、ホスト名を mDNS
を使用して自動的にホスト解決用に公開します。Homestead.yaml
ファイルで hostname: homestead
を設定した場合、ホストは homestead.local
で利用可能になります。macOS、iOS、および Linux のデスクトップディストリビューションには、デフォルトで mDNS
がサポートされています。Windows を使用している場合は、Bonjour Print Services for Windows をインストールする必要があります。
自動ホスト名は、Homestead のプロジェクトごとのインストールに最適です。単一の Homestead インスタンスで複数のサイトをホストしている場合は、Web サイトの "ドメイン" をマシンの hosts
ファイルに追加することができます。hosts
ファイルは、Homestead サイトへのリクエストを Homestead 仮想マシンにリダイレクトします。macOS と Linux では、このファイルは /etc/hosts
にあります。Windows では、C:\Windows\System32\drivers\etc\hosts
にあります。このファイルに追加する行は次のようになります:
192.168.56.56 homestead.test
リストされている IP アドレスが Homestead.yaml
ファイルで設定されているものであることを確認してください。ドメインを hosts
ファイルに追加し、Vagrant ボックスを起動すると、Web ブラウザからサイトにアクセスできるようになります:
サービスの設定¶
Homestead はデフォルトでいくつかのサービスを起動しますが、プロビジョニング中に有効または無効にするサービスをカスタマイズすることができます。たとえば、PostgreSQL を有効にし、MySQL を無効にするには、Homestead.yaml
ファイル内の services
オプションを変更します:
指定されたサービスは、enabled
および disabled
ディレクティブの順序に基づいて起動または停止されます。
Vagrant Box の起動¶
Homestead.yaml
を編集したら、Homestead ディレクトリから vagrant up
コマンドを実行します。Vagrant は仮想マシンを起動し、共有フォルダと Nginx サイトを自動的に設定します。
マシンを破棄するには、vagrant destroy
コマンドを使用できます。
プロジェクトごとのインストール¶
Homestead をグローバルにインストールし、すべてのプロジェクトで同じ Homestead 仮想マシンを共有する代わりに、管理する各プロジェクトに対して Homestead インスタンスを設定することができます。プロジェクトに Vagrantfile
を同梱し、プロジェクトのリポジトリをクローンした後に他の人がすぐに vagrant up
できるようにする場合、プロジェクトごとに Homestead をインストールすることが有益です。
Composer パッケージマネージャを使用して Homestead をプロジェクトにインストールできます:
Homestead がインストールされたら、Homestead の make
コマンドを呼び出してプロジェクトの Vagrantfile
と Homestead.yaml
ファイルを生成します。これらのファイルはプロジェクトのルートに配置されます。make
コマンドは、Homestead.yaml
ファイル内の sites
および folders
ディレクティブを自動的に設定します:
次に、ターミナルで vagrant up
コマンドを実行し、ブラウザで http://homestead.test
にアクセスしてプロジェクトにアクセスします。自動ホスト名解決を使用していない場合は、/etc/hosts
ファイルに homestead.test
または選択したドメインのエントリを追加する必要があることを忘れないでください。
オプション機能のインストール¶
オプションのソフトウェアは、Homestead.yaml
ファイル内の features
オプションを使用してインストールされます。ほとんどの機能はブール値で有効または無効にできますが、一部の機能は複数の設定オプションを許可します:
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 を指定できます。これは、正確なバージョン番号(major.minor.patch)である必要があります。デフォルトのインストールでは、'homestead' という名前のクラスタが作成されます。Elasticsearch には、オペレーティングシステムのメモリの半分以上を割り当てないでください。したがって、Homestead 仮想マシンには、Elasticsearch の割り当て量の少なくとも2倍のメモリが必要です。
Note
Elasticsearch ドキュメントを参照して、設定をカスタマイズする方法を学んでください。
MariaDB¶
MariaDB を有効にすると、MySQL が削除され、MariaDB がインストールされます。MariaDB は通常、MySQL のドロップイン代替品として機能するため、アプリケーションのデータベース設定で mysql
データベースドライバを引き続き使用する必要があります。
MongoDB¶
デフォルトの MongoDB インストールでは、データベースのユーザー名が homestead
に設定され、対応するパスワードが secret
に設定されます。
Neo4j¶
デフォルトの Neo4j インストールでは、データベースのユーザー名が homestead
に設定され、対応するパスワードが secret
に設定されます。Neo4j ブラウザにアクセスするには、Web ブラウザで http://homestead.test:7474
にアクセスします。ポート 7687
(Bolt)、7474
(HTTP)、および 7473
(HTTPS)は、Neo4j クライアントからのリクエストを処理する準備ができています。
エイリアス¶
Bash エイリアスを Homestead 仮想マシンに追加するには、Homestead ディレクトリ内の aliases
ファイルを変更します:
aliases
ファイルを更新した後、Homestead 仮想マシンを vagrant reload --provision
コマンドを使用して再プロビジョニングする必要があります。これにより、新しいエイリアスがマシンで利用可能になります。
Homestead の更新¶
Homestead の更新を開始する前に、Homestead ディレクトリで次のコマンドを実行して、現在の仮想マシンを削除する必要があります:
次に、Homestead のソースコードを更新する必要があります。リポジトリをクローンした場合、最初にリポジトリをクローンした場所で次のコマンドを実行できます:
これらのコマンドは、GitHub リポジトリから最新の Homestead コードをプルし、最新のタグを取得し、最新のタグ付きリリースをチェックアウトします。Homestead の最新の安定リリースバージョンは、Homestead の GitHub リリースページで見つけることができます。
プロジェクトの composer.json
ファイルを介して Homestead をインストールした場合、composer.json
ファイルに "laravel/homestead": "^12"
が含まれていることを確認し、依存関係を更新する必要があります:
次に、vagrant box update
コマンドを使用して Vagrant ボックスを更新する必要があります:
Vagrant ボックスを更新した後、Homestead ディレクトリから bash init.sh
コマンドを実行して、Homestead の追加設定ファイルを更新する必要があります。既存の Homestead.yaml
、after.sh
、および aliases
ファイルを上書きするかどうかを尋ねられます:
最後に、最新の Vagrant インストールを利用するために Homestead 仮想マシンを再生成する必要があります:
日常的な使用¶
SSH 経由での接続¶
Homestead ディレクトリから vagrant ssh
ターミナルコマンドを実行することで、仮想マシンに SSH 接続できます。
追加サイトの追加¶
Homestead 環境がプロビジョニングされて実行されたら、他の Laravel プロジェクト用に追加の Nginx サイトを追加することができます。単一の Homestead 環境で必要な数の Laravel プロジェクトを実行できます。追加サイトを追加するには、サイトを 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
サイトを追加したら、Homestead ディレクトリから vagrant reload --provision
ターミナルコマンドを実行します。
サイトタイプ¶
Homestead は、Laravel 以外のプロジェクトを簡単に実行できるように、いくつかの「タイプ」のサイトをサポートしています。たとえば、statamic
サイトタイプを使用して、Homestead に Statamic アプリケーションを簡単に追加できます:
利用可能なサイトタイプは、apache
、apache-proxy
、apigility
、expressive
、laravel
(デフォルト)、proxy
(nginx 用)、silverstripe
、statamic
、symfony2
、symfony4
、および zf
です。
サイトパラメータ¶
追加の Nginx fastcgi_param
値をサイトに追加するには、params
サイトディレクティブを使用します:
環境変数¶
Homestead.yaml
ファイルに追加することで、グローバル環境変数を定義できます。
Homestead.yaml
ファイルを更新した後、vagrant reload --provision
コマンドを実行してマシンを再プロビジョニングすることを忘れないでください。これにより、インストールされているすべての PHP バージョンの PHP-FPM 設定が更新され、vagrant
ユーザーの環境も更新されます。
ポート¶
デフォルトでは、以下のポートが Homestead 環境に転送されます。
- HTTP: 8000 → 80 に転送
- HTTPS: 44300 → 443 に転送
追加のポートを転送する¶
必要に応じて、Homestead.yaml
ファイル内に ports
設定エントリを定義することで、追加のポートを Vagrant ボックスに転送できます。Homestead.yaml
ファイルを更新した後、vagrant reload --provision
コマンドを実行してマシンを再プロビジョニングすることを忘れないでください。
以下は、ホストマシンから Vagrant ボックスにマッピングすることができる追加の Homestead サービスポートのリストです。
- 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" です(デフォルト)。
Homestead 仮想マシン内で、CLI を介してサポートされている PHP バージョンのいずれかを使用できます。
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 のデフォルトバージョンを変更するには、Homestead 仮想マシン内で以下のコマンドを実行します。
データベースへの接続¶
MySQL と PostgreSQL の両方に対して homestead
データベースがデフォルトで設定されています。ホストマシンのデータベースクライアントから MySQL または PostgreSQL データベースに接続するには、127.0.0.1
のポート 33060
(MySQL)または 54320
(PostgreSQL)に接続します。両方のデータベースのユーザー名とパスワードは homestead
/ secret
です。
Warning
ホストマシンからデータベースに接続する場合にのみ、これらの非標準ポートを使用する必要があります。Laravel アプリケーションの database
設定ファイルでは、Laravel が仮想マシン内で実行されているため、デフォルトの 3306 および 5432 ポートを使用します。
データベースのバックアップ¶
Homestead は、Homestead 仮想マシンが破棄されたときにデータベースを自動的にバックアップできます。この機能を利用するには、Vagrant 2.1.0 以降を使用する必要があります。または、Vagrant の古いバージョンを使用している場合は、vagrant-triggers
プラグインをインストールする必要があります。自動データベースバックアップを有効にするには、Homestead.yaml
ファイルに以下の行を追加します。
backup: true
設定が完了すると、Homestead は vagrant destroy
コマンドが実行されたときにデータベースを .backup/mysql_backup
および .backup/postgres_backup
ディレクトリにエクスポートします。これらのディレクトリは、Homestead をインストールしたフォルダ内、または プロジェクトごとのインストール 方法を使用している場合はプロジェクトのルートにあります。
Cron スケジュールの設定¶
Laravel は、1 分ごとに実行される schedule:run
Artisan コマンドをスケジュールすることで、cron ジョブをスケジュールする 便利な方法を提供します。schedule:run
コマンドは、routes/console.php
ファイルで定義されたジョブスケジュールを調べて、どのスケジュールされたタスクを実行するかを決定します。
Homestead サイトの schedule:run
コマンドを実行したい場合は、サイトを定義するときに schedule
オプションを true
に設定できます。
サイトの cron ジョブは、Homestead 仮想マシンの /etc/cron.d
ディレクトリに定義されます。
Mailpit の設定¶
Mailpit を使用すると、送信メールを傍受して調査し、実際にメールを受信者に送信することなく確認できます。開始するには、アプリケーションの .env
ファイルを以下のメール設定を使用するように更新します。
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 を持つオープンソースのオブジェクトストレージサーバーです。Minio をインストールするには、Homestead.yaml
ファイルを以下の設定オプションで更新します。
minio: true
デフォルトでは、Minio はポート 9600 で利用可能です。Minio コントロールパネルには、http://localhost:9600
にアクセスしてアクセスできます。デフォルトのアクセスキーは homestead
で、デフォルトのシークレットキーは secretkey
です。Minio にアクセスする場合は、常にリージョン us-east-1
を使用する必要があります。
Minio を使用するには、.env
ファイルに以下のオプションがあることを確認してください。
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
Minio を使用した "S3" バケットをプロビジョニングするには、Homestead.yaml
ファイルに buckets
ディレクティブを追加します。バケットを定義した後、ターミナルで vagrant reload --provision
コマンドを実行する必要があります。
サポートされている policy
値には、none
、download
、upload
、および public
が含まれます。
Laravel Dusk¶
Homestead 内で Laravel Dusk テストを実行するには、Homestead 設定で webdriver
機能 を有効にする必要があります。
webdriver
機能を有効にした後、ターミナルで vagrant reload --provision
コマンドを実行する必要があります。
環境の共有¶
現在作業中の内容を同僚やクライアントと共有したい場合があります。Vagrant には、vagrant share
コマンドを介してこれをサポートする組み込み機能があります。ただし、Homestead.yaml
ファイルに複数のサイトが設定されている場合、これは機能しません。
この問題を解決するために、Homestead には独自の share
コマンドが含まれています。開始するには、vagrant ssh
を介して Homestead 仮想マシンに SSH 接続 し、share homestead.test
コマンドを実行します。これにより、Homestead.yaml
設定ファイルから homestead.test
サイトが共有されます。homestead.test
の代わりに他の設定済みサイトを指定できます。
コマンドを実行すると、アクティビティログと共有サイトの公開 URL を含む Ngrok 画面が表示されます。カスタムリージョン、サブドメイン、またはその他の Ngrok ランタイムオプションを指定する場合は、share
コマンドに追加できます。
HTTPS ではなく HTTP でコンテンツを共有する必要がある場合は、share
の代わりに sshare
コマンドを使用します。
Warning
覚えておいてください。Vagrant は本質的に安全ではなく、share
コマンドを実行すると仮想マシンがインターネットに公開されます。
デバッグとプロファイリング¶
Xdebug を使用した Web リクエストのデバッグ¶
Homestead は、Xdebug を使用したステップデバッグをサポートしています。例えば、ブラウザでページにアクセスし、PHP が IDE に接続して実行中のコードの検査と変更を可能にします。
デフォルトでは、Xdebug はすでに実行されており、接続を受け入れる準備ができています。CLI で Xdebug を有効にする必要がある場合は、Homestead 仮想マシン内で sudo phpenmod xdebug
コマンドを実行します。次に、IDE の指示に従ってデバッグを有効にします。最後に、ブラウザ拡張機能または ブックマークレット を使用して Xdebug をトリガーするようにブラウザを設定します。
Warning
Xdebug は PHP の実行速度を大幅に低下させます。Xdebug を無効にするには、Homestead 仮想マシン内で sudo phpdismod xdebug
を実行し、FPM サービスを再起動します。
Xdebug の自動起動¶
Web サーバーへのリクエストを行う機能テストをデバッグする場合、デバッグを自動的に開始する方が簡単です。テストにカスタムヘッダーやクッキーを渡してデバッグをトリガーするよりも簡単です。Xdebug を強制的に自動的に開始するには、Homestead 仮想マシン内の /etc/php/7.x/fpm/conf.d/20-xdebug.ini
ファイルを変更し、以下の設定を追加します。
; Homestead.yaml に IP アドレスのための異なるサブネットが含まれている場合、このアドレスは異なる可能性があります...
xdebug.client_host = 192.168.10.1
xdebug.mode = debug
xdebug.start_with_request = yes
CLI アプリケーションのデバッグ¶
PHP CLI アプリケーションをデバッグするには、Homestead 仮想マシン内で xphp
シェルエイリアスを使用します:
xphp /path/to/script
Blackfire によるアプリケーションのプロファイリング¶
Blackfire は、Web リクエストと CLI アプリケーションをプロファイリングするためのサービスです。プロファイルデータをコールグラフとタイムラインで表示するインタラクティブなユーザーインターフェースを提供します。開発、ステージング、本番環境で使用でき、エンドユーザーにオーバーヘッドをかけることなく動作します。さらに、Blackfire はコードと php.ini
設定のパフォーマンス、品質、セキュリティチェックを提供します。
Blackfire Player は、Web クローリング、Web テスト、Web スクレイピングを行うオープンソースのアプリケーションで、Blackfire と連携してプロファイリングシナリオをスクリプト化することができます。
Blackfire を有効にするには、Homestead 設定ファイルで "features" 設定を使用します:
features:
- blackfire:
server_id: "server_id"
server_token: "server_value"
client_id: "client_id"
client_token: "client_value"
Blackfire のサーバー資格情報とクライアント資格情報は Blackfire アカウント が必要です。Blackfire は、CLI ツールやブラウザ拡張機能を含むアプリケーションをプロファイリングするためのさまざまなオプションを提供します。詳細については Blackfire のドキュメントを確認してください。
ネットワークインターフェース¶
Homestead.yaml
ファイルの networks
プロパティは、Homestead 仮想マシンのネットワークインターフェースを設定します。必要に応じて、インターフェースをいくつでも設定できます:
ブリッジ インターフェースを有効にするには、ネットワークの bridge
設定を構成し、ネットワークタイプを public_network
に変更します:
DHCP を有効にするには、設定から ip
オプションを削除します:
ネットワークが使用するデバイスを更新するには、ネットワークの設定に dev
オプションを追加できます。デフォルトの dev
値は eth0
です:
Homestead の拡張¶
Homestead ディレクトリのルートにある after.sh
スクリプトを使用して、Homestead を拡張できます。このファイル内に、仮想マシンを適切に設定およびカスタマイズするために必要なすべてのシェルコマンドを追加できます。
Homestead をカスタマイズする際、Ubuntu はパッケージの元の設定を保持するか、新しい設定ファイルで上書きするかを尋ねる場合があります。これを避けるために、Homestead によって以前に書き込まれた設定を上書きしないように、パッケージをインストールする際に次のコマンドを使用する必要があります:
sudo apt-get -y \
-o Dpkg::Options::="--force-confdef" \
-o Dpkg::Options::="--force-confold" \
install package-name
ユーザーカスタマイズ¶
チームで Homestead を使用する場合、個人的な開発スタイルに合わせて Homestead を調整したい場合があります。これを実現するには、Homestead ディレクトリのルートに user-customizations.sh
ファイルを作成します(Homestead.yaml
ファイルを含む同じディレクトリ)。このファイル内で、好きなカスタマイズを行うことができますが、user-customizations.sh
はバージョン管理されるべきではありません。
プロバイダ固有の設定¶
VirtualBox¶
natdnshostresolver
¶
デフォルトでは、Homestead は natdnshostresolver
設定を on
にします。これにより、Homestead はホストオペレーティングシステムの DNS 設定を使用できます。この動作をオーバーライドしたい場合は、Homestead.yaml
ファイルに次の設定オプションを追加します: