先日参加した とある勉強会(ハンズオン) で手順として使うこととなり、 Visual Studio Code のポート転送機能か dev tunnels が手順にあったのですが Win と Mac の環境の違いかそのままの手順では動かず、その後も小さい(その内容としては本質的でない)設定不足や手順違いなどがポロポロ発生してその場では完走できなかったので、ソースたどりながら仮想サーバー環境で動かしてみたメモ。
※詳細調査しきっていない(1度動作してしまうと問題が発生しなくなる)のでよくわかっていないですが、Windows環境だと VSCode のシェルモード( terminal.integrated.defaultProfile.windows )によって話が違くなるという問題もありそう。
目次
仮想サーバーのセットアップ
Almalinux 9 の環境に構築した。
- httpd
- remi-php83
で、ハンズオンで提供されていたコードが最低限動く設定レベル。
必要なパッケージインストール
dnf install httpd mod_ssl epel-release
dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
dnf module reset php
dnf module install php:remi-8.3
dnf install php-pdo php-pecl-zip
curl -sS https://getcomposer.org/installer | sudo php
httpd 設定
- Let's Encrypt を使った証明書設定等(割愛)
- この後落としてくるハンズオンのソースコード(Laravelベース)の公開ディレクトリ public/ をドキュメントルートとしてアクセスできるようにする
- public/ ディレクトリに対し .htaccess を有効にする(AllowOverride の設定): Laravel のルーティングに必要
ソースコード操作
ハンズオンにある .env に関する設定は割愛(関係各サービスのAPIキー等の設定が必要になる)
- git clone
- ソースディレクトリのルートで、 .env 追加(上記のもの)
composer install
php artisan migrate
php artisan key:generate
- httpd + php-fpm での動作に支障が出るので、ソースコードディレクトリ全体のオーナーを httpd の実行ユーザー(正確には php-fpm の実行ユーザー)にする
サービス起動
Laravel の PHPサーバーには頼らないので以下だけでOK。
systemctl start php-fpm
、systemctl start httpd
この後、WebHookの設定など開発者アカウント側で必要な設定をする程度で動いたので、ソースコードの動作自体は全く問題ない良いソースの模様。
※まだ中身ちゃんと読めていないですが、 Claude さんの識字能力(OCR)のテストはすでにできていて相当良いのはわかっています。
ということで、Docker等で「開発環境の構築を容易に」といいつつも、デバイスレベル(OSレベル)での差分を吸収して進めるのは環境準備側の負荷がまだまだ高そうだなあと感じたハンズオンでした(本筋はそこじゃなく、内容は興味深かったです)。