homebrewで入れたphpがapacheで有効になってなかった

php.iniをいくら変更しても反映されないなぁと思ったら、そういうことでした。apacheはMac標準のやつです。

php.iniの場所の確認

php.iniの場所は以下のコマンドで確認できます。

php --ini

homebrewでインストールした場合は以下の様になると思います。

Configuration File (php.ini) Path: /usr/local/etc/php/5.5
Loaded Configuration File:         /usr/local/etc/php/5.5/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.5/conf.d
Additional .ini files parsed:      /usr/local/etc/php/5.5/conf.d/ext-opcache.ini

web画面よりphpinfo確認

phpinfo

なんでや。。。php.iniのパスが全然違う。

そもそもcliのphpとapacheのPHPが別物だった

・cliのphp

php -v
PHP 5.5.33 (cli) (built: Mar 14 2016 11:14:25)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

・apacheのphp

apacheのphp

やっぱり、、バージョンちゃうやんけ。

httpd.confでhomebrewでインストールしたphpのモジュールを指定して同じのにする

Mac標準のapacheのhttpd.confを編集するには以下の様にします。

sudo vi /private/etc/apache2/httpd.conf

既存のモジュールの指定をコメントアウトして、homebrewでインストールしたphpのモジュールを指定します。

#LoadModule php5_module libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/Cellar/php55/5.5.33/libexec/apache2/libphp5.so

homebrewでインストールしたphpのモジュールは”/usr/local/Cellar/php55/5.5.33/libexec/apache2/libphp5.so”になります。バージョン番号とかはインストールしたphpのバージョンに合わせて書き換えます。

apache再起動

sudo apachectl restart
phpinfo

apacheでも有効になりました!

まとめ

cliのphpとapacheのphpは揃えておくように今後気をつけていく。

普段はコマンドラインでしかphpの環境を確認してなかったので、php.iniの設定がapahceに反映されないのでちょっとハマってしまった。

・メモ

# homebrewのphpはここにリンクが貼られてる
which php

/usr/local/bin/php

# Mac標準のphpはこっち
/usr/bin/php -v

PHP 5.5.31 (cli) (built: Feb 20 2016 20:33:10)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies

コメントを残す