SPHINX似乎沒有跟上PHP7的更新腳步,還好有大陸的朋友提供了解決方法[1][2],到目前為止很有效。
OS
CentOS Linux release 7.3.1611 (Core)
PHP 7.0.18 (cli) (built: Apr 15 2017 07:09:11) ( NTS )
mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1 (Mysql客戶端)
安裝 SPHINX
# wget http://sphinxsearch.com/files/sphinx-2.3.1-1.rhel7.x86_64.rpm
# yum install sphinx-2.3.1-1.rhel7.x86_64.rpm
安裝 PHP library
PHP 5.X請下載這個
http://git.php.net/?p=pecl/search_engine/sphinx.git;a=snapshot;h=7d9b13f64621bb0011743110b77e9f30c2f43b9b;sf=tgz
# tar zxvf sphinx-339e123.tar.gz
# cd sphinx-339e123
# phpize
# ./configure
# make
# make install
安裝完後自動會產生
/etc/php.d/sphinx.ini
如果沒有自動產生,就手動新增,裡面只有一行
extension=sphinx.so
/usr/lib64/php/modules/sphinx.so
# systemctl restart httpd
檢查是否有啟動
# php -m | grep 'sphinx'
sphinx
SPHINX設定
設定開機啟動
# systemctl enable searchd
啟動SPHINX
# systemctl start searchd
關閉SPHINX
# systemctl stop searchd
SPHINX狀態
# systemctl status searchd
錯誤排除
1. 程序起動如果失敗,請檢查 /var/run 中有沒有 sphinx的目錄,權限皆為 sphinx:sphinx
-rw-------. 1 sphinx sphinx 5 11月 2 10:42 searchd.pid
延伸閱讀
參考資料
[1] https://www.ddhigh.com/php/2017/02/28/php7-compile-sphinx-extension.html