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とcliでphpバージョンも設定も違って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も解決。