目次
- Homebrewのインストール
- Apacheのインストール
- PHPの複数バージョンをインストール
- Apacheの各種設定
- PHP-FPMのバージョン別ポート設定と起動
- バーチャルホストごとの設定例
- hostsファイルの設定
- まとめ
docker使うスペックがない開発環境で、公開サーバーのPHPのバージョンに合わせて開発が必要な人にオススメ
1. Homebrewのインストール
macOSでパッケージ管理をするためにHomebrewを使います。
インストールしていない場合は、ターミナルで以下を実行。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2. Apacheのインストール
Homebrew経由でApacheをインストールします。
brew install httpd
brew services start httpd
3. PHPの複数バージョンをインストール
任意のバージョンをインストールします(例:7.4, 8.2)。
brew install php@7.4
brew install php@8.2
4. Apacheの各種設定
必要なモジュールの有効化(mod_proxy, mod_proxy_fcgi)
/usr/local/etc/httpd/httpd.conf
を編集し、以下がコメントアウトされていれば外します(なければ追加)。
LoadModule proxy_module lib/httpd/modules/mod_proxy.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so
LoadModule unixd_module lib/httpd/modules/mod_unixd.so
プロキシ設定の追加
<IfModule proxy_module>
ProxyRequests Off
<Proxy *>
Require all granted
</Proxy>
</IfModule>
複数ポートでのリッスン設定
httpd.confで複数ポートをリッスンするようにします(例:8080, 8081)。
hostsでドメイン.local使うなら※80番だけでも可能
Listen 8081
Listen 8082
vhosts(バーチャルホスト)設定の有効化
httpd.conf内で下記行のコメントを外す。
Include /usr/local/etc/httpd/extra/httpd-vhosts.conf
5. PHP-FPMのバージョン別ポート設定と起動
各バージョンの www.conf
を編集し、それぞれ異なるポートで待ち受けるようにします。
-
/usr/local/etc/php/7.4/php-fpm.d/www.conf
listen = 127.0.0.1:9074
-
/usr/local/etc/php/8.2/php-fpm.d/www.conf
listen = 127.0.0.1:9082
各バージョンのPHP-FPMを起動。
brew services start php@7.4
brew services start php@8.2
6. バーチャルホストごとの設定例
/usr/local/etc/httpd/extra/httpd-vhosts.conf
を編集。
hostsでドメイン.local使うなら※80番だけでも可能
<VirtualHost *:8081>
DocumentRoot "/Users/youruser/Sites/php74"
ServerName php74.local
ErrorLog "/usr/local/var/log/httpd/php74-error_log"
CustomLog "/usr/local/var/log/httpd/php74-access_log" common
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9074"
</FilesMatch>
</VirtualHost>
<VirtualHost *:8082>
DocumentRoot "/Users/youruser/Sites/php82"
ServerName php82.local
ErrorLog "/usr/local/var/log/httpd/php82-error_log"
CustomLog "/usr/local/var/log/httpd/php82-access_log" common
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9082"
</FilesMatch>
</VirtualHost>
7. hostsファイルの設定
/etc/hosts
に下記を追記。
127.0.0.1 php74.local
127.0.0.1 php82.local
8. まとめ
これでvhostごとに異なるPHPバージョンで動作させる環境が構築できます。
設定変更後はApacheを再起動してください。
brew services restart httpd
本記事の手順で、プロジェクトごとにPHPのバージョンを切り替えたい場合に便利です!