0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

macでvhosts毎にPHPのVersionを変える

Last updated at Posted at 2025-07-13

目次

  1. Homebrewのインストール
  2. Apacheのインストール
  3. PHPの複数バージョンをインストール
  4. Apacheの各種設定
  5. PHP-FPMのバージョン別ポート設定と起動
  6. バーチャルホストごとの設定例
  7. hostsファイルの設定
  8. まとめ

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のバージョンを切り替えたい場合に便利です!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?