FreeBSD PHPインストール
既にインストールされているPHPに対して、
まず、portで探す。
例えば、GDを追加したかったら、
$locate gd
でも、こうすると、わさわさと結果が出てくるので、portとかphpとかすると、見やすいかもしれない。
$locate gd | grep port | grep php
すると、これまでずらずら出てくるが、
/usr/ports/graphics/php5-gd/work/php-5.4.17/ext/gd/tests/imagewbmp.phpt /usr/ports/graphics/php5-gd/work/php-5.4.17/ext/gd/tests/jpeg2png.phpt /usr/ports/graphics/php5-gd/work/php-5.4.17/ext/gd/tests/jpeg2wbmp_error1.phpt /usr/ports/graphics/php5-gd/work/php-5.4.17/ext/gd/tests/jpeg2wbmp_error2.phpt /usr/ports/graphics/php5-gd/work/php-5.4.17/ext/gd/tests/jpeg2wbmp_error3.phpt /usr/ports/graphics/php5-gd/work/php-5.4.17/ext/gd/tests/jpg2gd.phpt /usr/ports/graphics/php5-gd/work/php-5.4.17/ext/gd/tests/libgd00086.phpt
こういう感じの項目があるので、 graphics/php5-gdと狙いを定める。
$cd /usr/port/graphics/php5-gd
もしかすると、すでにインストールされているかもしれないので、一応念のために、makeのoptionsをクリアする。
$make rmconfig
インストールする。
$make config-recursive $make install clean
既に、インストールしてしまっている場合は、ここでエラーが出るが、
よく読めばreinstallしろと言われているので、
make reinstall
これで、最終的にインストールに成功し、 gd.soファイルが生成される。
gd.soファイルがどこにあるのかわからないので、
$locate gd.so
とでもすると、結果が出力される。
locateの前に、updatedbしておかないと、発見できないかもしれない。
私の場合は、updatedb.shをルートディレクトリに作っている。
#!/bin/sh echo /usr/libexec/locate.updatedb |su -fm nobody
こんな感じ。初めて作る場合は、chmod 755するのを忘れないこと。
/usr/local/lib/libgd.so /usr/local/lib/libgd.so.5 /usr/local/lib/php/20100525/gd.so /usr/local/lib/php/20100525-zts/gd.so /usr/ports/graphics/php5-gd/work/php-5.4.17/ext/gd/.libs/gd.so /usr/ports/graphics/php5-gd/work/php-5.4.17/ext/gd/modules/gd.so
gd.soファイルがいることがわかったので、
cp /usr/ports/graphics/php5-gd/work/php-5.4.17/ext/gd/modules/gd.so /usr/local/lib/php/20100525
とすると、コピーされる。
コピー先である、/usr/local/lib/php/20100525の場所は、php.iniの中にある、[extension_dir]で定義している場所である。
最後に、extensions.ini に追加されていることを確認し[make reinstall 時に追加したと書かれる。]、apache 再起動
※ただし、同じことを2回以上繰り返しても、ひたすらextensions.iniに追記していくことにより、CUIでphpを起動すると、
warningが表示されてしまう。
extension=zip.so extension=zlib.so extension=curl.so extension=dom.so extension=dom.so ←こんな感じで同じのが2個ある。
この場合は、削除してやればよい。