ホームステッド
- インストールとセットアップ
- 最初のステップ
- Homestead のインストール
- Homestead の構成
- Nginx サイトの構成
- Hosts ファイル
- Vagrant Box の開始
- プロジェクトに従ってインストール
- MariaDBのインストール
- MongoDBのインストール
- Elasticsearchのインストール
- Neo4j のインストール
- エイリアス
- 日常使用
- 世界中で利用可能 Homestead
- Mac/Linux
- Windows
- SSH 接続経由
- #スケジュールされたスケジュールの構成
- Mailhog の構成
- Minio の構成
- ポート
- 追加のポートを転送する
- 複数のバージョンの PHP
- ##Web サーバー
- メール
- ネットワーク インターフェイス
- Homestead を拡張する #Homestead を更新する
- #特別な設定を提供する
- ##VirtualBox
- #natdnshostresolver
- #Windows 上のシンボリック リンク
- ## ##################################
Laravel Homestead
- はじめに
- インストールとセットアップ
- 最初のステップ
- #Homestead の設定 #Vagrant Box の開始
- #プロジェクトに従ってインストール
- #MariaDB のインストール
- MongoDB のインストール
- #Elasticsearch のインストール Neo4j のインストール
- 別名
- 日常使用
世界中で入手可能なHomestead -
- SSH 経由で接続
- #データベースに接続
- ##データベースのバックアップ
- ##他のサイトの追加
- 環境変数
- Cron スケジューラの構成
- Mailhog の構成 #Minio の構成
- #ポート
- ##環境を共有 #複数の PHP バージョン
- Web サーバー
- メール
- ネットワーク インターフェイス
- Homestead の拡張
- Homestead の更新
プロバイダー固有の設定 - VirtualBox
- ##
はじめに
Laravel は、ローカル開発環境を含む PHP 開発体験全体をより楽しいものにすることに尽力しています。 Vagrant は、仮想ホストを管理および構成するためのシンプルかつ洗練された方法を提供します。
Laravel Homestead は、完璧な開発環境を提供する、パッケージ化された公式の Vagrant ボックスであり、PHP、Web サーバー、その他のサーバー ソフトウェアをローカル マシンにインストールする必要はありません。オペレーティング システムが台無しになることを心配する必要はもうありません。 Vagrant ボックスは使い捨てです。何か問題が発生した場合は、数分でボックスを破棄して再作成できます!
Homestead は Windows、Mac、または Linux システムで実行でき、Nginx Web サーバー、PHP 7.3、PHP 7.2、PHP 7.1、MySQL が含まれています。 、PostgreSQL、Redis、Memcached、Node など、Laravel での開発に必要なものがすべて含まれています。
{注} Windows を使用している場合は、BIOS を通じてハードウェア仮想化 (VT-x) を有効にする必要がある場合があります。 Hyper-V システムで UEFI を使用している場合は、VT-x にアクセスするために Hyper-V を無効にする必要がある場合もあります。
# #組み込みソフトウェアGitPHP 7.3
PHP 7.2ステップ 1Homestead 環境を開始する前に、VirtualBox をインストールする必要があります、VMWare、Parallels または Hyper-V、Vagrant。上記のソフトウェアはすべて、さまざまなオペレーティング システム用の使いやすいビジュアル インストール パッケージを提供します。 Parallels プロバイダーを使用するには、Parallels Vagrant プラグインをインストールする必要があります。それは無料です。 Vagrant の制限により、Hyper-V プロバイダーはすべてのネットワーク設定を無視します。 Homestead Vagrant Box のインストールVirtualBox / VMware と Vagrant がインストールされたら、ターミナルで次のコマンドを実行して- PHP 7.1
- Nginx
- Apache (オプション)
- MySQL
- MariaDB (オプション)
- Sqlite3
- PostgreSQL
- Composer
- ノード (Yarn、Bower、Grunt、および Gulp を使用)
- Redis
- Memcached
- Beanstalkd
- Mailhog
- Neo4j (オプション)
- MongoDB (オプション)
- Elasticsearch (オプション)
- ngrok
- wp- cli
- Zend Z-Ray
- Go
- Minio
- #インストールとセットアップ
laravel/homestead
Vagrant インストールにボックスが追加されました。インターネット接続の速度に依存するため、ボックスのダウンロードには数分かかる場合があります:vagrant box add laravel/homestead
このコマンドが失敗した場合は、Vagrant の最新バージョンがインストールされていることを確認してください。Homestead のインストール
コードを複製することで Homestead をインストールできます。 Homestead ボックスがすべての Laravel プロジェクトのホストとして機能できるように、「ホーム」ディレクトリの
GitHub リリース ページHomestead
フォルダーにコードのクローンを作成することをお勧めします。 Homestead の master ブランチ 安定版ではないため、タグ付けされた安定版を使用する必要があります。最新の安定バージョンは、::
bash init.shgit clone https://github.com/laravel/homestead.git ~/Homestead
で見つけることができます。Homestead コードのクローン作成が完了したら、次のコマンドを使用します。 Homestead ディレクトリ
Homestead.yaml
構成ファイルを作成します。Homestead.yaml
ファイルは Homestead ディレクトリに配置されます:cd ~/Homestead// 克隆期望的发行版本...git checkout v8.0.1
Homestead の構成プロバイダーを設定しますHomestead.yamlファイル内の
provider
パラメーターにより、使用する Vagrant プロバイダーが決まります:virtualbox
、vmware_fusion
、vmware_workstation
、Parallels
、およびhyperv
。これらは好みに応じて設定できます。// Mac / Linux...bash init.sh// Windows...init.bat
共有フォルダーの構成Homestead.yaml ファイルのフォルダー属性には、Homestead 環境フォルダーを持つすべての共有フォルダーがリストされます。 。これらのフォルダー内のファイルが変更されても、ローカル マシンと Homestead 環境の間で同期が保たれます。共有フォルダーは必要なだけ構成できます。
provider: virtualbox
この一般的なマッピングは、Web サイトをいくつか作成するだけの場合には問題なく機能します。ただし、サイトの数が増え続けると、パフォーマンスの問題が発生し始める可能性があります。この問題は、低パフォーマンスのマシンまたは多数のファイルを含むプロジェクトで非常に顕著になる可能性があります。この問題が発生した場合は、各プロジェクトを独自の Vagrant フォルダーにマッピングしてみてください:
folders: - map: ~/code to: /home/vagrant/code
NFSを有効にするには、共有フォルダー構成に 1 つを追加するだけです。単純なフラグ:
{note} NFS を使用する場合は、folders: - map: ~/code/project1 to: /home/vagrant/code/project1 - map: ~/code/project2 to: /home/vagrant/code/project2
vagrant-winnfsd
Shared Folders拡張機能を使用することをお勧めします。このプラグインは、Homestead ボックス内のファイルまたはディレクトリの権限の問題を自動的に処理します。
Vagrant のでサポートされているオプションを
にリストすることでこれを行うこともできます。options
:folders: - map: ~/code to: /home/vagrant/code type: "nfs"
Nginx サイトの構成
Nginx についてよく知りませんか?それは問題ではありません。
sites
機能を使用すると、「ドメイン名」を Homestead 上のフォルダーに簡単にマッピングできます。簡単なサイト構成例は、Homestead.yaml
ファイルに含まれています。同様に、Homestead 環境に必要なだけサイトを追加できます。 Homestead は、開発中の Laravel プロジェクトごとに便利な仮想化環境を提供します。folders: - map: ~/code to: /home/vagrant/code type: "rsync" options: rsync__args: ["--verbose", "--archive", "--delete", "-zz"] rsync__exclude: ["node_modules"]
Homestead 仮想マシンの構成後に
sites
オプションを変更した場合は、再度実行する必要がありますvagrant reload --provision
仮想マシン上の Nginx 構成を更新するコマンド。Hosts ファイル
ドメイン名を Nginx サイトに追加する必要がありますこれをローカルの
hosts
ファイルに追加します。hosts
ファイルは、Homestead サイトへのリクエストを Homestead 仮想マシンにリダイレクトします。このファイルは、Mac および Linux では/etc/hosts
にあり、Windows ではC:\Windows\System32\drivers\etc\hosts
にあります。新しいサイトを追加するための形式は次のとおりです。sites: - map: homestead.test to: /home/vagrant/code/my-project/public
リスニング IP アドレスが
Homestead.yaml
ファイルで設定したものであることを確認してください。ドメイン名をhosts
ファイルに追加して Vagrant Box を起動すると、ブラウザを通じてサイトにアクセスできるようになります:192.168.10.10 homestead.test
##Vagrant Boxを起動します必要に応じてHomestead.yaml
仮想マシンを削除するには、を編集し、Homestead フォルダーで
vagrant upコマンドを実行します。 Vagrant は仮想マシンを起動し、共有フォルダーと Nginx サイトを自動的に構成します。
vagrant destroy --force
コマンドを実行するだけです。
プロジェクトごとのインストール
Homesteadをグローバルにインストールし、すべてのプロジェクトで同じHomesteadボックスを共有することに加えて、プロジェクトごとにHomesteadインスタンスを構成できます。プロジェクトの下に
Vagrantfile
を作成すると、他のプロジェクト メンバーはvagrant up
を実行するだけで同じ開発環境を利用できます。Homestead をプロジェクトに直接インストールするには、Composer コマンドを使用する必要があります。
http://homestead.test
Homestead をインストールした後、
make
コマンドを使用してプロジェクトのルート ディレクトリ
内の Vagrantfile およびHomestead.yaml
ファイル。make
コマンドは、Homestead.yaml
ファイル内のsites
およびfolders
ディレクティブを自動的に構成します。Mac/Linux:
composer require laravel/homestead --dev
Windows:
php vendor/bin/homestead make
次に、コマンドラインで
vagrant up
コマンドを実行し、ブラウザでアクセスしますhttp://homestead.test
。アクセスする前に、homestead.test
レコードまたは他のドメイン名を/etc/hosts
ファイルに追加する必要があることに注意してください。MariaDB のインストール
MySQL の代わりに MariaDB を使用したい場合は、
にインストールできます。 Homestead.yaml
mariadb
オプションをファイルに追加します。このオプションは MySQL を削除し、MariaDB をインストールします。 MariaDB は MySQL の単なる代替品であるため、アプリケーションのデータベース構成でmysql
データベース ドライバーを引き続き使用できます:vendor\bin\homestead make
Homestead.yaml
ファイルの構成を次のように変更できます:
box: laravel/homestead ip: "192.168.10.10"memory: 2048cpus: 4provider: virtualbox mariadb: true
MongoDB のデフォルトインストール方法では、データベースのユーザー名がhomestead
に、デフォルトのパスワードが
secretに設定されます。
Elasticsearch のインストールElasticsearch をインストールする場合は、
Homestead.yaml# で行うことができます。##elasticsearch
オプションをファイルに追加し、サポートされているバージョン番号を指定します。メジャー バージョンのみを含めることも、特定のバージョン番号 (major.minor.patch) を含めることもできます。デフォルトのインストールでは、「homestead」という名前のクラスターが作成されます。 Elasticsearch にオペレーティング システムのメモリの半分以上を割り当てないように注意してください。そのため、Homestead が Elasticsearch の少なくとも 2 倍のメモリを割り当てるようにしてください。
mongodb: true
{tip} Elasticsearch のドキュメントを参照してください。自分で行う方法を学ぶ 構成を定義します。
#
サイトの Cron ジョブは、仮想マシンのNeo4j のインストール
Neo4j はグラフ データベース管理システムです。 Neo4j Community Edition をインストールするには、
Homestead.yaml
構成項目を次のように更新する必要があります:box: laravel/homestead ip: "192.168.10.10"memory: 4096cpus: 4provider: virtualbox elasticsearch: 6
Neo4j のデフォルトのインストールでは、データベース ユーザー名が
homestead## に設定されます。 # と対応するパスワードを
secretに設定します。 Neo4j を表示するには、ブラウザで
http://homestead.test:7474にアクセスします。 Neo4j は、クライアントからのアクセス用に
7687(Bolt)、
7474(HTTP)、
7473(HTTPS) の 3 つの外部ポートを提供します。
##エイリアスHomestead の
aliasesファイルを編集することで、Homestead 仮想化を構成できます。 Bash エイリアスをマシンに追加します:
aliasesneo4j: true
ファイルを更新した後、
日常使用vagrant upvagrant reload --provision
コマンドを使用して Homestead 仮想マシンを再起動する必要があります新しいエイリアスがマシン上で利用可能であることを確認します。コマンドを実行して、ファイル システム内の任意のパスから Homestead 仮想マシンを起動したい場合があります。 Mac/Linux システムでは、Bash 構成ファイル (
~/.bash_profile) に Bash 関数を追加できます。 Windows では、「バッチ」ファイルを
PATH
に追加できます。これらのスクリプトを使用すると、システム上のどこからでも Vagrant コマンドを実行でき、コマンドが自動的に Homestead インストール パスを指すようになります:Mac / Linux
alias c='clear'alias ..='cd ..'
必ず次のことを行ってください。この関数を次の場所に含めます。~/Homesteadパスは、実際の Homestead インストール パスに合わせて調整されます。こうすることで、システム上のどこからでも
homestead upや
homestead ssh
などのコマンドを実行できます。Windows
次の内容を含むバッチ ファイルhomestead.batをシステム内の任意の場所に作成します:
function homestead() { ( cd ~/Homestead && vagrant $* ) }
Certain Toスクリプト内の
PATHC:\Homestead
パスを Homestead の実際のインストール パスに調整します。ファイルを作成したら、ファイル パスをに追加します。その後、システム内のどこでも
homestead up
やhomestead ssh
などのコマンドを実行できます。これを行うには、vagrant sshターミナルを実行します。 SSH 経由で仮想マシンに接続するための Homestead ディレクトリ コマンド。
ただし、Homestead 仮想マシンに頻繁に接続する必要がある場合があるため、Homestead 仮想マシンにすばやく SSH 接続できるように、上記の「機能」をホストに追加することを検討してください。
コマンドを実行します。
Homestead は多くのタイプのサイトをサポートしており、これに基づいていないプロジェクトを簡単に実行できます。ララベル。たとえば、symfony2サイト タイプを使用して、Symfony アプリケーションを Homestead に簡単に追加できます:
利用可能なサイト タイプは:192.168.10.10 homestead.test 192.168.10.10 another.test
apache
、、
apigility表現
、
laravel(デフォルト)、
プロキシ、
シルバーストライプ、
静的、
symfony2、
symfony4、および
zf。
サイト パラメーター
params
サイト ディレクティブを使用して、追加の Nginxfastcgi_param
値をサイトに追加できます。たとえば、Foo
パラメータをBAR
の値で追加します。sites: - map: symfony2.test to: /home/vagrant/code/my-symfony-project/web type: "symfony2"
環境変数
次の値を
Homestead.yaml
ファイルに追加することで、グローバル環境変数を設定できます。sites: - map: homestead.test to: /home/vagrant/code/my-project/public params: - key: FOO value: BAR
Homestead を更新した後。 yaml
ファイルを削除したら、vagrant reload --provision
コマンドを実行してマシンを再構成してください。これにより、インストールされているすべての PHP バージョンの PHP-FPM 構成が更新され、vagrant
ユーザーの環境が更新されます。スケジュールされたスケジュールの構成
Laravel では、単一の
スケジュールをスケジュールすることで、スケジュールされたジョブをスケジュールする方法が提供されます。 :run
毎分実行するアーティザン コマンド。schedule:run
コマンドは、App\Console\Kernel
クラスで定義したスケジュールを確認して、実行するジョブを決定します。Homestead サイトに対して
schedule:run
コマンドを実行する場合は、サイトを定義するときにschedule
オプションをtrue## に設定できます。 . #:
variables: - key: APP_ENV value: local - key: FOO value: bar
/etc/cron.d
Mailhog の構成Mailhog を使用すると、実際にメッセージが送信されることなく、送信メールを簡単にキャプチャして確認できます。受信者に。まず、ディレクトリで定義されます。
.env
ファイルを次のメール設定で更新します。
sites: - map: homestead.test to: /home/vagrant/code/my-project/public schedule: true
Mailhog を構成したら、http://localhost:8025## で構成できます。 # Mailhog コントロール パネルにアクセスします。
Minio の設定
Minio は、Amazon S3 と互換性のある API を備えたオープンソースのオブジェクト ストレージ サーバーです。 Minio をインストールするには、次の構成オプションを使用して
Homestead.yaml
ファイルを更新します。MAIL_DRIVER=smtp MAIL_HOST=localhost MAIL_PORT=1025 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null
デフォルトでは、Minio はポート
9600
で使用できます。 Minio コントロール パネルには、http://homestead:9600
にアクセスしてアクセスできます。デフォルトのアクセス キー名はhomestead
、デフォルトの秘密キーはsecretkey
です。 Minio にアクセスするときは、常にus-east-1
を使用する必要があります。Minio を使用するには、
config/filesystems.php
構成ファイルで S3 ディスク構成を調整する必要があります。use_path_style_endpoint
オプションをディスク構成に追加し、url
キーをendpoint
:minio: true
に変更する必要があります。最後に、
.env
ファイルには次のオプションがあります:'s3' => [ 'driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION'), 'bucket' => env('AWS_BUCKET'), 'endpoint' => env('AWS_URL'), 'use_path_style_endpoint' => true ]
バケットを構成するには、#buckets
ディレクティブを Homestead 構成ファイルに追加します:
AWS_ACCESS_KEY_ID=homestead AWS_SECRET_ACCESS_KEY=secretkey AWS_DEFAULT_REGION=us-east-1 AWS_URL=http://homestead:9600
Supportedpolicy
値には、
none、
download、
upload、および
publicが含まれます。
#ポートデフォルトでは、次のポートが Homestead 環境に転送されます。
- SSH
- : 2222 -> 22 ngrok UI
- に転送: 4040 -> 4040 に転送HTTP : 8000 -> 80
- HTTPS に転送: 44300 -> 443
- MySQL に転送: 33060 - > ; 3306
- PostgreSQL に転送: 54320 -> 5432
- MongoDB に転送: 27017 -> 27017
- に転送 Mailhog :8025 -> 8025
- Minio :9600 -> 9600
- # に転送##追加のポートを転送する
buckets: - name: your-bucket policy: public - name: your-private-bucket policy: none
環境を共有する
現在の仕事の内容を同僚や顧客と共有したい場合があります。 Vagrant には、
vagrant share
を介してこれをサポートする組み込みの方法がありますが、Homestead.yaml
ファイルに複数のサイト構成がある場合、これは機能しません。この問題を解決するために、Homestead には独自の
share
コマンドが含まれています。まず、vagrant ssh
経由で Homestead マシンに SSH 接続し、share homestead.test
を実行します。これにより、Homestead.yaml
構成ファイルのhomestead.test
サイトが共有されます。もちろん、他の構成済みサイトをhomestead.test
に置き換えることもできます。ports: - send: 50000 to: 5000 - send: 7777 to: 777 protocol: udp
このコマンドを実行すると、Ngrok 画面が表示され、アクティビティ ログと共有が表示されます。サイト。カスタム ゾーン、サブドメイン、またはその他の Ngrok ランタイム オプションを指定したい場合は、それらを
share
コマンドに追加できます:share homestead.test
{note} 注意: 現在、Vagrant は本質的に安全ではなく、
share
コマンドを実行すると VM がインターネットに公開されます。PHP の複数のバージョン
Homestead 6 では、同じ仮想マシン バージョンでの複数の PHP のサポートが導入されていますサポート。
Homestead.yaml
ファイルで、特定のサイトに使用する PHP バージョンを指定できます。利用可能な PHP バージョンは次のとおりです: 『7.1』、『7.2』、および『7.3』 (デフォルト):share homestead.test -region=eu -subdomain=laravel
また、CLI を通じてサポートされている PHP バージョンを使用することもできます:
sites: - map: homestead.test to: /home/vagrant/code/my-project/public php: "7.1"
Web サーバー
デフォルトでは、Homestead は Nginx Web サーバーを使用します。ただし、サイト タイプとして
apache
が指定されている場合は、Apache をインストールできます。 2 つの Web サーバーが同時にインストールされますが、同時に実行することはできません。flip
スクリプト コマンドを使用すると、Web サーバー間の切り替えを簡単に処理できます。flip
このコマンドは、実行中の Web サーバーを自動的に特定し、それをシャットダウンします。次に、他のサーバーを起動します。このコマンドを使用するには、Homestead マシンに SSH で接続し、ターミナルでコマンドphp7.1 artisan list php7.2 artisan list php7.3 artisan list
##mail Homestead を実行します。デフォルトでポート1025
をリッスンする Postfix メール転送エージェントが含まれています。したがって、
localhostポート
1025で
smtpメール ドライバーを使用するようにアプリケーションに指示できます。送信されたすべてのメールは Postfix によって処理され、Mailhog によってキャプチャされます。送信されたメッセージを表示するには、Web ブラウザで
http://localhost:8025を開きます。
ネットワーク インターフェイス
Homestead.yaml
のnetworks
プロパティは、Homestead 環境のネットワーク インターフェイスを構成します。必要に応じて複数のインターフェイスを設定できます:flip
ブリッジ インターフェイスを有効にするには、
bridge
を設定します。public_network
ネットワーク タイプを設定および変更します。networks: - type: "private_network" ip: "192.168.10.20"
DHCP を有効にするには、構成から
ip
オプションを削除するだけです:networks: - type: "public_network" ip: "192.168.10.20" bridge: "en1: Wi-Fi (AirPort)"
##Homestead の拡張Homestead ルート ディレクトリにあるafter.sh
Homestead をカスタマイズするとき、Ubuntu はパッケージの元の構成を保持するか、新しい構成ファイルで上書きするかを尋ねる場合があります。これを回避するには、パッケージのインストール時に次のコマンドを使用して、Homestead によって以前に書き込まれた構成が上書きされないようにする必要があります:スクリプトを使用して Homestead を拡張できます。このファイルには、仮想マシンを適切に構成およびカスタマイズするために必要なシェル コマンドを追加できます。
networks: - type: "public_network" bridge: "en1: Wi-Fi (AirPort)"
##Updating Homesteadいくつかの簡単な手順に従って Homestead を更新できます。まず、vagrant box update
コマンドを使用して Vagrant ボックスを更新する必要があります:
sudo apt-get -y \ -o Dpkg::Options::="--force-confdef" \ -o Dpkg::Options::="--force-confold" \ install your-package
次に、Homestead ソース コードを更新する必要があります。リポジトリのクローンを作成した場合は、最初にリポジトリのクローンを作成した場所から次のコマンドを実行できます。vagrant box update
これらのコマンドは、GitHub リポジトリから最新の Homestead コードを取得し、最新のタグを取得して、最新のタグ バージョンを出力します。最新の安定バージョンは、GitHub リリース ページで見つけることができます。
プロジェクトのcomposer.json
を介して Homestead をインストールした場合は、
composer.jsonに
"laravel/homestead": " ^8 が含まれていることを確認する必要があります。 "そして、依存関係を更新します:
git fetchgit checkout v8.0.1
最後に、最新の Vagrant インストールを利用するには、Homestead ボックスを破棄して再構築する必要があります。これを行うには、Homestead ディレクトリで次のコマンドを実行します。composer update
特別な設定を提供します #VirtualBoxnatdnshostresolver
構成はデフォルトでは、Homestead は
natdnshostresolveron
に設定されています。これにより、Homestead はホスト オペレーティング システムの DNS 設定を使用できるようになります。この動作をオーバーライドしたくない場合は、
Homestead.yamlファイルに次の行を追加します:
vagrant destroy vagrant up
Windows 上のシンボリック リンク
シンボリック リンクが Windows マシンで適切に機能しない場合は、
Vagrantfile
ファイルに次のブロックを追加する必要がある場合があります:provider: virtualbox natdnshostresolver: off
この記事は、LearnKu.com Web サイトで初めて公開されました。