phpbrewでPHPバージョンを変更しても、ローカル環境で反映されないとき


前提条件

  • macOS High Sierra(10.13.6)
  • 以下のようにコマンド上ではPHPバージョンがきちんと変更されている
  • でも http://localhost/ とかでアクセスしても切り替わっていない
phpbrew list

  php-7.1.12
* php-5.6.32
phpbrew switch php-7.1.12
phpbrew list
* php-7.1.12
  php-5.6.32
php -v
PHP 7.1.12 (cli) (built: Dec 18 2017 19:57:19) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
sudo apachectl restart

ここまでは大丈夫なのに http://localhost/ とかでphpinfo()を表示してみるとバージョンが変わっていない!

考えられる原因

1. Apacheの設定ファイルの場所が違う

環境によって設定ファイルの場所が異なるので、どれが使われているか確認する
自分はこれが原因で数時間悩みました・・・
(こんなことで・・・)

Mac標準のApacheの設定ファイルは以下

/etc/apache2/httpd.conf

HomebrewでApacheを別途インストールした場合は以下

/usr/local/etc/httpd/httpd.conf

2.Apache設定ファイルのLoadModuleを書き換えていない

上記設定ファイルの173行目あたり
PHP5ならphp5_moduleのコメントアウトを外す
PHP7ならphp7_moduleのコメントアウトを外す

#LoadModule php5_module        /usr/local/lib/httpd/modules/libphp5.6.32.so
#LoadModule php7_module        /usr/local/lib/httpd/modules/libphp7.1.12.so

上記2点確認後、Apacheを再起動

sudo apachectl restart