tanaka's Programming Memo

プログラミングについてのメモ。

Valet を使って mac に Laravel5.4 の環境をインストール

laravel.com

公式ドキュメントを参考に、mac で簡単に Laravel の動作環境を構築できる Valet をインストールします。Laravel 5.4 を対象にしています。

前提条件

  • macOS であること
  • Homebrew が事前にインストールされていること
  • Apache や Nginx などがポート 80 を利用していないこと

ポート80 が大丈夫か確認

Web ブラウザー127.0.0.1:80 にアクセスして、以下のようにアクセスできなければ大丈夫です。 f:id:am1tanaka:20170323231227p:plain

何かページが表示されていたら、一時的に停止するか、起動を停止してください。

一時的に停止する(Apache の場合)

sudo apachectl stop

自動起動を停止する

インストール

準備が整ったら、必要なものをインストールします。

以下で、Homebrew を更新します

brew update

PHP7.1以上をインストールします。まず php -v で、インストールされているかと、バージョンを確認します。以下のようであれば 7.1.2 で条件を満たしているのでインストールは不要です。 f:id:am1tanaka:20170323232305p:plain

ものが見つからなかったり、バージョンが古い場合は、以下で単純にインストールするか、こちらの記事を参考にバージョンを選べるようなインストールをしてください。

brew install homebrew/php/php71

Valet を以下でグローバルにインストールします。

composer global require laravel/valet

~/.composer/vendor/bin ディレクトリーに PATH を通す必要があります。以下で確認してください。

echo $PATH

以下のように、/User/ユーザー名/.composer/vendor/bin というパスが含まれていれば valet のインストールに進んでください。

f:id:am1tanaka:20170323233556p:plain

見当たらない場合は、以下で起動テキストエディターで開きます。

open -e ~/.bash_profile

開いたファイルの最後に以下の1行を追加します。

export PATH=$PATH:$HOME/.composer/vendor/bin

[Ctrl]+[S]キーを押して保存したら、開いたエディターは閉じます。

Valetのインストール

以下で、Valet と DnsMasq をインストールして、 Valet の daemon自動起動に設定します。

valet install

パスワードを要求されたら、ユーザーのパスワードを入力してください。

インストールが完了したら、自動的にサービスが起動します。以下をターミナルで実行してください。インストールが成功していたら、 127.0.0.1 が返答をします。

ping foobar.dev

f:id:am1tanaka:20170323235249p:plain

確認できたら、[control]+[C]キーを押して ping を停止してください。

Valetの自動起動の停止

Valet は一度インストールすれば、mac を起動した時に自動的に起動するので、 valet startvalet install は不要です。

他の HTTPサーバーをデフォルトで使いたいなどで、Valet の自動起動を停止したい場合は、以下を実行してください。

valet uninstall

なお、一時的に valet を開始したい場合は、 valet start 、停止したい時は valet stop を実行します。

ドメインを変更するには

インストールしたまま利用すると、Valet はローカル環境で .dev ドメインでプロジェクトにアクセスできるようにします。これを変更するには valet domain tld-name コマンドを使います。

例えば valet domain app を実行すると、*.dev ではなく、 *.app でアクセスできるようになります。

データベース

MySQL などのデータベースを起動したら、 mysql -u 127.0.0.1 とすれば root として接続できます。既存のデータベースにも、既存のユーザー名とパスワードを使えばログインできます。

サイトを提供する

Valet のインストールが完了したら、 Laravel サイトを動かす parklink の2つのコマンドが提供されます。

parkコマンド

Valet でサイトを管理したい場合は、そのためのディレクトリーを作成して、 Laravel のプロジェクトをそのディレクトリー内で作成します。

  • Valet 用のディレクトリーを作成していなければ、作成して、その中に移動します
mkdir ~/Sites && cd ~/Sites
  • このディレクトリーを Valet で管理するために以下を実行します
valet park
  • Laravel のプロジェトを作成します
laravel new blog

以上で、Laravel のプロジェクトの作成が完了したら、Web ブラウザーhttp://blog.dev を開くと、作成した Laravel プロジェクトを表示できます

これ以降、 Laravel のプロジェクトを "parked" したディレクトリー(今回の例では ~/Sites ディレクトリー)に作成すれば、 http://プロジェクトディレクトリー名.dev でアクセスできます。

おまけ

ここまでで問題なければ Laravel の開発に進めます。最後に、単一のプロジェクトのホスト方法、プロジェクトを共有する方法、その他の Valet のコマンドについて、公式サイトに書いてあった内容をまとめておきます。

linkコマンド

link コマンドも Laravel サイトを表示できるようにするものです。このコマンドは、ディレクトリー全体をサービスするのではなく、一つのサイトをサービスしたい時に使います。

  • ターミナルでプロジェクトフォルダーに cd コマンドで移動したら、 valet link app-name を実行します。Valet は ~/.valet/Sites にシンボリックリンクを作成して、現在の作業用ディレクトリーとして記録します
  • link コマンドを実行したら、 http://app-name.dev でプロジェクトページを表示できます

リンクされた全てのディレクトリーを確認したい場合は、 valet links を実行します。valet unlink app-name を実行すれば、リンクを解除できます。

valet link を使うと、同じプロジェクトを別のサブドメインで提供することができます。サブドメインや別のドメインをプロジェクトに設定したい場合は、プロジェクトフォルダーから valet link subdomain.app-name を実行します。

TLS によるサイトの安全化

デフォルトでは、 Valet は HTTP でサイトを表示します。これを TLS で暗号化された HTTP/2 で表示したい場合は、 secure コマンドを使います。例えば、 laravel.dev ドメインであれば以下のようにします。

valet secure laravel

元の HTTP による安全ではないサイトに戻したい場合は、 unsecure コマンドを使います。例示したものを戻すには以下を実行します。

valet unsecure laravel

サイトの共有

Valet をインストールすれば、追加のインストールなどを必要とせず、ローカルのサイトを外部に公開することができます。

サイトを共有するには、ターミナルでサイトのディレクトリーに移動して、 valet share コマンドを実行します。アクセスするための URL がクリップボードに設定されるので、 Web ブラウザーのアドレスバーにペーストすれば、公開された状態を確認できます。

公開を停止するには、[control]+[C]キーを押します。

valet share は現在、 valet secure コマンドを使った安全設定に対応していません。

その他の Valet コマンド

コマンド 説明
valet forget "park"されたディレクトリーでこのコマンドを実行すると、そのディレクトリーを"park"されたディレクトリーから外します
valet paths "park"された全てのパスを表示します
valet restart Valet daemon を再起動します
valet start Valet daemon を開始します
valet stop Valet daemon を停止します
valet uninstall Valet daemon の登録をアンインストールします