最近查看了以前的測試機器,發現原先用的 PHP 5.2.x 系列已經被更新成 5.3.x 系列,並且連執行個 php -v 會出現 Segmentation fault,上網隨意找到一些資訊,大概是 5.3.x 系列已經包括一些常用的 lib 進來,再次請教一下學弟,發現他已處理過這方面的問題,僅需在 php5-extension 去移除那些套件,另外則是 extensions.ini 須去除或註解一些套件,如此一來便可以處理完畢。雖然我修到 php -v 不會出現問題,但還是有些 lib 不能正常運行。甚至從編譯 php5-extension 仍會出錯,主要卡在 PCRE 的部分。
參考資料
最後解法
查看目前安裝的 PHP 相關套件
# pkg_info | grep php
使用 pkg_delete 把他們都移除掉
# pkg_info | grep php5 | awk '{system("pkg_delete " $1)}'
# pkgdb -Fu
移除備份舊 php5 資料
# mv /usr/local/etc/php /path/backup/php5/etc
# mv /usr/local/lib/php /path/backup/php5/lib
# mv /usr/local/include/php /path/backup/php5/include
編寫 /etc/make.conf
# for PHP 5.3.x
WITH_BUNDLED_PCRE="YES"
重新編譯 php5
# cd /usr/ports/lang/php5 && make deinstall clean && make rmconfig && make install
重新編譯 php5-extension
順便加上常用的套件
+CURL CURL support
+GD GD library support
+IMAP IMAP support
+MBSTRING multibyte string support
+MCRYPT Encryption support
+OPENSSL OpenSSL support
+PCNTL pcntl support (CLI only)
+PSPELL pspell support
+SOCKETS sockets support
# cd /usr/ports/lang/php5-extensions && make deinstall clean && make rmconfig && make config && make install
沒有留言:
張貼留言