====== PHPのエラー ====== portupgradeなどでアップデートを行った際に、以下のようなエラーが出るケースがあります。 ===== Unable to load dynamic library ===== Unable to load dynamic library '/usr/local/lib/php/20090626/pcre.so' Unable to load dynamic library '/usr/local/lib/php/20090626/spl.so' これは、pcreなどがPHPcoreに統合されたために、参照が必要なくなったにもかかわらず、参照しているために出ます。 対処としては、時間がかかりますが、PHP本体と依存パッケージの再ビルドが一番でしょう。 # portupgrade -rf php5 ===== 'PHP_FE_END' undeclared here ===== /usr/ports/security/php5-mcrypt/work/php-5.3.10/ext/mcrypt/mcrypt.c:283: error: 'PHP_FE_END' undeclared here (not in a function) 該当箇所の「PHP_FE_END」を「{NULL, NULL, NULL}」に書き換えるとコンパイルが無事にできます。 error: 'ZEND_MOD_END' undeclared here この場合も同様に「ZEND_MOD_END」を「{NULL, NULL, NULL}」に書き換えるとコンパイルが無事にできます。 ===== error: pcre.h: No such file or directory ===== phpMyAdminが依存している、security/php5-filterのインストール中に出ました。 cp /usr/local/include/pcre.h /usr/local/include/php/ext/pcre/ 他に直す方法があるのかもしれませんが、こんな感じで逃げました。 ===== Call to undefined function hash_mac() ===== 先日、こんなエラーが出ました。\\ 5.1.2からhash_mac関数は標準になってるはずなのになぜ? pkg_replace -N php5-hash 結局、Portsから php5-hash をインストールして解消しました。((なんか、釈然としない:-/))