Windows、Visual Studio Code、Laragon、MailHog、Xdebug で PHP による動的サイトの開発環境を構築した際のメモ。
今までは XAMPP を使用していましたが、32 bit 版しか提供されていなかったりするので、今後のことも考え、64 bit 版を提供しているものに変更しようと思いました。
そこで、WampServer にしようかと思いましたが、インストーラが 292.7 MB もあり、一度インストールしてしまえばファイルサイズの小さなアップデータも用意されているようですが、どうしようかなと迷っていると、インストーラが 83.9 MB の Laragon が見つかりました。
GitHub - leokhoa/laragon から Latest release の laragon-wamp.exe をダウンロードします。
インストーラを使用したくない場合は、laragon.7z をダウンロードしますが、Apache, memcached, ngrok, PuTTY, Redis, telnet, WinSCP, phpRedisAdmin 等が同梱されていないので、必要な物があれば別途ダウンロードすることになります。
ダウンロードした laragon-wamp.exe を実行します。
laragon.7z をダウンロードした場合は、インストール先フォルダに解凍します。
オプションの設定画面では、Windows の起動時に Laragon を実行したくないので、Run Laragon when Windows starts
のチェックを外します。
Pretty URLs の機能は便利なので、Auto Virtual hosts
のチェックは付けたままにします。
Notepad++ と Cmder は Scoop でインストール済みで、同梱の物はコンテキストメニューに登録したくないので、Quick ways to open Text Editor & Terminal to the Right-Click Menu
のチェックを外します。
laragon.exe を実行し、ダッシュボード右上の歯車アイコンをクリックして、設定画面を表示します。
ダッシュボードの Menu
をクリックするか、ダッシュボード内を右クリックするか、通知領域アイコンを右クリックしてメニューを出し、Preferences…
をクリックして設定画面を表示することも出来ます。
General
タブの Run minimized
にチェックを付けて Laragon の起動時にダッシュボードを最小化し、Start All automatically
にチェックを付けて Laragon の起動時にサーバーを実行し、Document Root:
に localhost のアドレスでアクセスするフォルダを設定します。
SSL を有効にする場合は、Services & Ports
の Enabled
にチェックを付けます。
Mail Catcher
タブと Mail Sender
タブの Enabled
は、代替を使用することにしたのでチェックを外します。
PHP から UTF-8 の日本語メールを送信してみたら文字化けし、色々試してみたものの改善しないので、sendmail.exe が怪しいと考えて差し替えてみました。
fake sendmail for windows からダウンロードした sendmail.zip を解凍し、sendmail.exe を Laragon をインストールしたフォルダ\bin\sendmail\sendmail.exe と差し替えます。
Mail Sender
タブで設定した Gmail Password:
は Laragon をインストールしたフォルダ\bin\sendmail\sendmail.ini に暗号化されて保存されますが、差し替えた sendmail.exe では復号出来ないようなので、auth_password
を平文に変更します。
; if your smtp server requires authentication, modify the following two lines
auth_username=Gmailのアドレス
auth_password=平文のパスワード
これで文字化けは解消しましたが、Mail Catcher は差し替えた sendmail.exe とは連携出来ないようで、Enabled
にしてもポップアップは表示されず、Laragon をインストールしたフォルダ\bin\sendmail\output 内にテキストファイルも保存されません。
そこで、Mail Catcher と Mail Sender は諦め、MailHog を使うことにしました。
GitHub - mailhog/MailHog から Latest release の MailHog_windows_amd64.exe をダウンロードします。
ダウンロードした MailHog_windows_amd64.exe を MailHog.exe にリネームし、Laragon をインストールしたフォルダ\usr\bin 内に配置します。
Laragon のメニューを出して Laragon
> Procfile
> Procfile
をクリックし、起動した Notepad++ で Procfile に追記します。
MailHog: MailHog.exe autorun
MailHog Admin: http://localhost:8025 autorun
MailHog: MailHog.exe autorun
で Laragon の起動時に MailHog を自動実行し、MailHog Admin: http://localhost:8025 autorun
で Laragon の起動時に MailHog の Web UI を表示します。
MailHog.exe が意図せず終了してしまった場合は Laragon
> MailHog – Autorun
をクリック、Web UI を閉じてしまって再表示したい場合は、Laragon
> MailHog Admin – Autorun
をクリックします。
Laragon のメニューを出して PHP
> php.ini
をクリックし、起動した Notepad++ で php.ini を編集します。
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Asia/Tokyo"
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 1025
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@example.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "Laragon をインストールしたフォルダ/usr/bin/MailHog.exe sendmail"
[mbstring]
; language for internal character representation.
; This affects mb_send_mail() and mbstring.detect_order.
; http://php.net/mbstring.language
mbstring.language = Japanese
date.timezone = "Asia/Tokyo"
でタイムゾーンを日本時間に、smtp_port = 1025
で SMTP ポート番号を 1025 に、sendmail_path = "Laragon をインストールしたフォルダ/usr/bin/MailHog.exe sendmail"
で MailHog.exe のパスを、mbstring.language = Japanese
のコメントアウトを外してマルチバイト文字列関数のデフォルト言語を日本語に設定しました。
PHP 等をパスの指定なしで実行出来るよう、Laragon のパスを登録します。
Laragon のメニューを出し、Tools
> Path
> Add Laragon to Path
をクリックします。
Tools
> Path
> Manage Path
をクリックし、パスが登録されていることを確認します。
右上の Menu
から Add Laragon to Path
と Remove Laragon from Path
を行うことも出来ます。
Apache VS16 binaries and modules download から使用したいバージョンのファイルをダウンロードします。
ダウンロードしたファイルを、Laragon をインストールしたフォルダ\bin\apache 内にバージョンが判別出来るように圧縮ファイル名(httpd-X.X.XX-winXX-VCXX)でフォルダを作成して解凍します。
Laragon のメニューを出し、Apache
> Version [現在のバージョン]
> 使用したいバージョン
をクリックします。
Laragon をインストールしたフォルダ\bin\apache 内から不要になったバージョンのフォルダを削除します。
Apache のパスが変わったので、Tools
> Path
> Remove Laragon from Path
をクリックして Laragon のパスを削除し、Tools
> Path
> Add Laragon to Path
をクリックして Laragon のパスを再登録します。
Tools
> Path
> Manage Path
をクリックし、パスの登録状態を確認しながら、右上の Menu
から行うことも出来ます。
MySQL は MySQL :: Download MySQL Community Server から、MariaDB は Downloads – MariaDB から、使用したいバージョンのファイルをダウンロードします。
ダウンロードしたファイルを、Laragon をインストールしたフォルダ\bin\mysql 内にバージョンが判別出来るように圧縮ファイル名(mysql-X.X.XX-winxXX / mariadb-XX.X.XX-winxXX)でフォルダを作成して解凍します。
MariaDB の解凍先も MySQL と同じ、Laragon をインストールしたフォルダ\bin\mysql 内です。
Laragon のメニューを出し、MySQL / MariaDB
> Version [現在のバージョン]
> 使用したいバージョン
をクリックします。
Laragon をインストールしたフォルダ\bin\mysql 内から不要になったバージョンのフォルダを削除します。
MySQL / MariaDB のパスが変わったので、Tools
> Path
> Remove Laragon from Path
をクリックして Laragon のパスを削除し、Tools
> Path
> Add Laragon to Path
をクリックして Laragon のパスを再登録します。
Tools
> Path
> Manage Path
をクリックし、パスの登録状態を確認しながら、右上の Menu
から行うことも出来ます。
Laragon のメニューを出し、MySQL / MariaDB
> Change root password
をクリックします。
New Password:
にパスワードを入力し、OK
をクリックします。
MySQL / MariaDB データの閲覧や編集には Laragon に同梱されている HeidiSQL が使えますが、phpMyAdmin も使えるようにインストールします。
phpMyAdmin – Downloads から使用したいバージョンのファイルをダウンロードします。
ダウンロードしたファイルを、Laragon をインストールしたフォルダ\etc\apps 内に phpMyAdmin という名前のフォルダを作成して解凍します。
ダッシュボード下の Database
をクリックするか、Laragon のメニューを出し、Laragon
> Database
をクリックするか、MySQL / MariaDB
> phpMyAdmin
をクリックするか、//localhost/phpmyadmin/ にアクセスしてログインすると、「設定ファイルの中に記述されているパスフレーズ(blowfish_secret)が短すぎます。」というエラーが出るので、Laragon をインストールしたフォルダ\etc\apps\phpMyAdmin\config.inc.php を編集します。
/**
* This is needed for cookie based authentication to encrypt password in
* cookie. Needs to be 32 chars long.
*/
$cfg['blowfish_secret'] = 'パスフレーズ'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
$cfg['blowfish_secret'] = 'パスフレーズ';
のパスフレーズを 32 文字以上に変更します。
phpMyAdmin からログアウトしてログインし直すと、「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。 代わりにデータベースの操作タブを使って設定することもできます。」と警告が出るので、こちら
をクリックします。
「Create a database named ‘phpmyadmin’ and setup the phpMyAdmin configuration storage there.」と出るので、Create
をクリックすると、phpmyadmin というデータベースが作成され、設定が行われます。
windows.php.net – /downloads/releases/ から使用したいバージョンのファイルをダウンロードします。
ダウンロードしたファイルを、Laragon をインストールしたフォルダ\bin\php 内にバージョンが判別出来るように圧縮ファイル名(php-X.X.XX-Win32-VCXX-xXX)でフォルダを作成して解凍します。
Laragon のメニューを出し、PHP
> Version [現在のバージョン]
> 使用したいバージョン
をクリックします。
PHP
> php.ini
をクリックし、起動した Notepad++ で php.ini を編集します。
MailHog のインストールで行った PHP の設定を再度行います。
Laragon をインストールしたフォルダ\bin\php 内から不要になったバージョンのフォルダを削除します。
PHP のパスが変わったので、Tools
> Path
> Remove Laragon from Path
をクリックして Laragon のパスを削除し、Tools
> Path
> Add Laragon to Path
をクリックして Laragon のパスを再登録します。
Tools
> Path
> Manage Path
をクリックし、パスの登録状態を確認しながら、右上の Menu
から行うことも出来ます。
Xdebug: Support — Tailored Installation Instructions のフォームに phpinfo()
の出力内容を貼り付け、Analyse my phpinfo() output
をクリックします。
環境にあった dll へのダウンロードリンクが表示されるので、リンクをクリックしてダウンロードします。
ダウンロードした dll ファイルを、Laragon をインストールしたフォルダ\bin\php\バージョン\ext 内に配置します。
Laragon のメニューを出し、PHP
> Extendions
> xdebug-バージョン
をクリックしてチェックを付けます。
PHP
> php.ini
をクリックし、起動した Notepad++ で php.ini に追記します。
[Xdebug]
xdebug.remote_enable = 1
xdebug.remote_enable = 1
でリモートデバッグを有効にしましたが、リモートデバッグ中は重くなってしまうので、リモートデバッグセッションを自動で開始する xdebug.remote_autostart = 1
は設定せずに、ブラウザの拡張機能で切り替えることにします。
Xdebug: Documentation » Step Debugging を参考にブラウザの拡張機能をインストールします。
Visual Studio Code に PHP Debug - Visual Studio Marketplace をインストールします。
GitHub - FriendsOfPHP/PHP-CS-Fixer から Latest release の php-cs-fixer.phar をダウンロードします。
ダウンロードした php-cs-fixer.phar を、Windows のユーザーフォルダ\.vscode 内に配置します。
Visual Studio Code に php cs fixer - Visual Studio Marketplace をインストールします。
メニューの ファイル
> 基本設定
> 設定
をクリックして Settings
を開き、右上の { } 設定(JSON)を開く
をクリックして User Settings
を開きます。
右側の ユーザー設定
に追記します。
{
// Points to the php-cs-fixer exectuable, eg: win: php-cs-fixer.bat, other: php-cs-fixer; or points to php-cs-fixer.phar path, eg: /full/path/of/php-cs-fixer.phar
"php-cs-fixer.executablePath": "~/.vscode/php-cs-fixer.phar",
// Execute PHP CS Fixer on save
"php-cs-fixer.onsave": true
}
"php-cs-fixer.executablePath": "~/.vscode/php-cs-fixer.phar"
で PHP-CS-Fixer のインストールパスを設定、"php-cs-fixer.onsave": true
で保存時の自動整形を有効にしました。