mazeltov7のweb断片

備忘録的なテキトーなことを書きます。(技術記事はQiitaに移行しました http://qiita.com/mazeltov7 )

apacheでwebとcliでphpのバージョンが違った件

これはなに

memcachedを使おうとしたら、コマンドラインでは動くのに、web(localhost)で動かなった話。なんかphpバージョンも違ってなんやこれと思った

どうやった

まず、memcachedを起動する部分と別にphpで使うライブラリを入れる。(この辺はメモ)

ちなみに、  
brewで入れたやつはここに入ってて、
/usr/local/Cellar/php56-memcached
pecl/手動makeしたのはこちらに入ってる
/usr/local/Cellar/php56/5.6.17/~~

で、/usr/local/optのが効いてるぽいけど、
/usr/local/opt/usr/local/Cellarからのリンクになってる。

php.iniについてだけど、web(apache)の方は/etc/php.iniを見てて、
cli/usr/local/etc/php/5.6/php.iniを見てる。

apacheのモジュールとルートについて、
/etc/httpd.confに設定書いてるけど、その中で、 apacheのルートが/usrな場合はhttpd.con内にLoadModule libexec/hogehogeとか書いてたら、/usr/libexec/hogehogeで読み込んでる。

ここで元の話に戻る。webとcliphpバージョンも設定も違ってwtfっとなってたところ、この記事を発見。
OSX Apache using wrong version of PHP - Stack Overflow
で、brew info php56すると、Caveats以下に入れたらこれやれよ、的な事が書いてあって、その中に、

To enable PHP in Apache add the following to httpd.conf and restart Apache:
    LoadModule php5_module    /usr/local/opt/php56/libexec/apache2/libphp5.so

とあり、httpd.confみにいくと、LoadModule php5_module libexec/apache2/libphp5.soとなってた。。。これやぁぁぁぁ、、、、ってことで、書き換えて、sudo apachectl restartするとバージョンもmemcachedも解決。