ShowNote:PHPerのための「Laravel/PHP8/Dockerで開発環境作りを語り合う」TechCafe
イベント
https://rakus.connpass.com/event/195001/
Laravel/PHP8/Docker関連のキーワードを主催サイドで集めました。この中から気になるテーマを拾ってワイワイできればと。
PHP開発環境
- PHP8
- 正式リリースされました!
- Mac
- Homebrewは公式リポジトリがすでに対応済み
- そもそも個人的にあまり母艦にインストールしないので・・・
- Windows
- Microsoft公式サポートではなくなったがWindowsバイナリも有志が開発
- Linux
- ソースからビルド
- リポジトリから
- CentOS
- 公式リポジトリは未対応だが、EPEL/Remiは対応済み
- RedHat?知らん
- Ubuntu
- こちらも公式リポジトリは未対応だが、PPAで対応しているものあり
- オールインワン
- XAMPP
- https://www.apachefriends.org/jp/index.html
- Apache + MariaDB + PHP + Perlのオールインワン環境。面倒な人はとりあえずXAMPP入れとけばいいんじゃないでしょうか。
- Mac版、Windows版、Linux版それぞれあります
- 12/4にXAMPPもPHP8に対応版がリリースされました。
- 手軽な反面、複数バージョンのPHPやApacheなどを使いにくい、という面もあるが、本格的な開発ならXAMPPよりも他の手段を用いたほうが良いのでは。
- Laragon ※Windowsのみ
- https://laragon.org/
- Windowsの場合は、XAMPPより軽量なLaragonの選択肢もあり。
- 軽量:実行時に必要なメモリは4MB未満
- ポータブル:(VisualStudioのランタイム等のぞき)OSへのインストールが不要
- 異なるバージョンのPHPやApacheを切り替えられる設計
- 最新版リリースは2019年が最後。開発自体は継続しているようだが…?
- 仮想化ぎじゅつ
- virtualbox
- 1台のPC(ホストOS)の中に仮想的なPC(ゲストOS)を構築するためのツール
- 例)Windows PC 上に Linux PC を作成
- このLinux PC 上にPHPやMySQLをインストールしてPHPの開発環境を構築していく
- vmware
- 仮想環境の管理ツール
- 高可用性実現のための仕組みを提供
- サーバ停止時に他のサーバにVMを移動させ再起動
- ダウンタイム無し運用
- ホストOSの負荷状況を考慮したVMの管理
- 事例
- コンテナ
- Docker導入方法
- docker-composeもお忘れなく
- Docker PHP
- https://hub.docker.com/_/php
php:<version>-cli
php:<version>-apache
- Apache+mod_phpがセットになったイメージ
php:<version>-fpm
php:<version>-alpine
- 軽量ベースイメージAlpineで動作。イメージを軽く保ちたいならこれを使えばいいがカスタマイズしようと思うと大変。
- Windows勢
- WSL2
- 基本的にMicrosoftの公式手順通りに進めばよろし
- https://docs.microsoft.com/ja-jp/windows/wsl/install-win10
- かつてはVirtualBoxやVMWareという選択肢しかなく、VM用に多くのマシンリソースを割く必要があった
- WSL2では割り当てるリソースをWindowsが調整してくれるので必要なリソースしか割かれない
- Linux互換性100%ということもあり、Linux向けに開発されているツール・ライブラリも問題なく動作
- VSCode+RemoteDevelopment(Microsoft公式のプラグイン)との親和性も高い
- MicrosoftがPHPについてWindows向けのサポートをやめたが、WSL2あるから大丈夫ということか?
- プロダクション環境がLinuxで開発がWindowsなら問題なさそうだが、IISなど、MS製品でプロダクション運用してる場合はどうなるのか…
- WSL2 + Docker
- 宗教上の理由や、Office製品などの兼ね合いでWindowsで開発をする必要があるならおすすめしたい構成
Laravel
-
ローカルマシン系
- Composerで自分でいれる
- Valet
- こちらも Laravel 公式の開発環境
- Mac でのみサポートされているが、Homestead よりも軽量
- PHP と MySQL のみが利用される
- 完全な仮想環境が不要な場合はよい選択肢になりえる
- Homebrew を利用
- Valet 環境でのエラーログなどは決まった箇所に配置されるため慣れが必要
-
仮想環境系
- Homestead
- Laravel 公式の開発環境
- Vagrant が仮想環境(VirtualBox)の管理と事前設定をすべてやってくれる
- Windows, Mac, Linux いずれの環境でも利用可能
- 実態としては仮想環境上の Ubuntu 上で Laravel の実行環境ができあがる
- 実は PHP8 も対応済み
-
docker系
-
おまけ
参加者からのしつもんコーナー
参加時のアンケートの中からいくつかピックアップしました。今回拾えなかったものも別の機会に拾えればとおもいます!
- PHP8についてMicrosoftでサポートしないという記事があったが、その点も踏まえて今後のPHPについての展望について
- docker セッティングについての選択肢。vesselなど。
- 俺の鉄板の開発環境を聞いてくれ!