Lang x Lang

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ファイル内のservicesoption を変更します。

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 のためのVagrantfileHomestead.yamlファイルを生成します。これらのファイルはあなたの project の root に配置されます。make command は自動的にHomestead.yamlファイル内のsitesfoldersのディレクティブを設定します:

# 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.yamlafter.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"

利用可能なサイトの種類は次のとおりです: apacheapache-proxyapigilityexpressivelaravel (これが default です)、proxy (nginx 用)、silverstripestatamicsymfony2symfony4、そして 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 には、nonedownloaduploadpublicが含まれます。

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"

当社サイトでは、Cookie を使用しています。各規約をご確認の上ご利用ください:
Cookie Policy, Privacy Policy および Terms of Use