WSL2+PHP+VSCodeで開発環境構築(その2)
その1で WSL2 の Ubuntu 22.04 上に、phpenv から PHP 8.2.13 をインストールしたあとの話です。Laravel のプロジェクトを作成し、DBとメールの設定をします。
composer のインストールと Laravel プロジェクト作成
PHPの依存関係管理ツール composer をインストールします。
https://getcomposer.org/download/ のとおりにインストールすればOKです。
$ cd ~/.phpenv/bin
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
$ ls -F
composer.phar* phpenv@ phpenv-install-all-darwin*
$ ln -s composer.phar composer
$ type -r
$ type composer
composer is /home/mit/.phpenv/bin/composer
$
composer で Laravel のプロジェクトを作成します。
$ cd ~/dev
$ mkdir rsv
$ cd rsv
$ composer create-project laravel/laravel rsv-prj
スケルトンプロジェクトを動かしてみます。
$ cd rsv-prj
$ ./artisan serv
INFO Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the server
Windows のブラウザから http://127.0.0.1:8000 にアクセスすると Laravel のデモページが表示されました。
PHP Debug
VSCode でデバッグできるようにするためには、「PHP Debug」拡張機能を入れます。
- 「実行とデバッグ(Ctrl+Shift+D)」をクリック
- 「launch.json ファイルを作成します」をクリック
- 「PHP」をクリック
- launch.json の「Launch Built-in web server」の「cwd」を「 “cwd”: “${workspaceRoot}/public”,」に変更(「/public」追加)
- launch.json を保存
この状態で、
- 「実行とデバッグ(Ctrl+Shift+D)」をクリック
- ドロップダウンから「Launch Built-in web server」を選択し、「デバッグの開始(F5)」ボタンクリック
すると、http://localhost:39523/ のようなURLでブラウザが開き、VSCode でデバッグが開始されました。
DB接続
MySQL のインストールと WSL2 からのアクセス許可は、別記事にしました。
Laravel のDB設定を変更します。
.env ファイルで設定します。
DB_CONNECTION=mysql
DB_HOST=mypc.local
DB_PORT=3306
DB_DATABASE=rsv
DB_USERNAME=rsv
DB_PASSWORD=**********
接続確認します。
$ ./artisan db
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 11.3.1-MariaDB mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [rsv]>
無事接続できました。
メール設定
Laravel のメール機能は、デバッグ用に log ドライバなども用意されていますが、私は Windows に smtp4dev を常駐させているので、 smtp4dev に送信するように設定します。
メールの設定については、config/mail.php の ‘mailers’ リストを確認します。
'mailers' => [
'smtp' => [
'transport' => 'smtp',
'url' => env('MAIL_URL'),
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'timeout' => null,
'local_domain' => env('MAIL_EHLO_DOMAIN'),
],
smtp ドライバに設定するものはすべて環境変数から取得しているので、.env ファイルに記載します。
MAIL_MAILER=smtp
MAIL_HOST=mypc.local
MAIL_PORT=25
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="mtystg@tyd4.com"
MAIL_FROM_NAME="${APP_NAME}"
確認は簡単ではなさそうなので、とりあえず設定だけして終了。