linux安装sphinx
生活随笔
收集整理的這篇文章主要介紹了
linux安装sphinx
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
從sphnix網(wǎng)站下載sphinx源碼包,當(dāng)前最新版本是:
http://sphinxsearch.com/files/sphinx-0.9.9.tar.gz。當(dāng)然,還需要保證你的系統(tǒng)已經(jīng)安裝了mysql。
????? 其次,就是依照官方的安裝指導(dǎo)進(jìn)行安裝了,基本步驟如下:
????????? 在這個(gè)步驟,可能遇到一個(gè)問(wèn)題,就是報(bào) sphinx undefined reference to 'libiconv' 的錯(cuò)誤,解決辦法是修改 /src/MakeFile(注意是src下的Makefile不是csft下的Makefile),編輯LIBS = -lm -lexpat 后面添加-liconv,即將該行該為:
????????? LIBS = -lm -lexpat -liconv -L/usr/local/lib
???? 4. 安裝
??
????????? $ make install
????????? 如果編譯中沒(méi)有產(chǎn)生錯(cuò)誤,這個(gè)步驟應(yīng)該不會(huì)遇到問(wèn)題。如果完成后未正確安裝,就要回去找make過(guò)程中遇到的錯(cuò)誤了。
???? 5. 運(yùn)行測(cè)試
?????????
????????? $ cd /usr/local/sphinx/etc
????????? $ cp sphinx.conf.dist sphinx.conf
????????? $ vi sphinx.conf
????????? 這里,sphinx提供了一個(gè)簡(jiǎn)單的例子,基本步驟是先將 /sphinx/etc下面的sphinx.conf.dist重命名為sphinx.conf,然后修改 sphinx.conf其中的配置,主要是修改你服務(wù)器上面的mysql的用戶(hù)名、密碼、使用的數(shù)據(jù)庫(kù)等。修改的位置是sphinx.conf的source src1下面幾行。
????????? $ mysql -u test < /usr/local/sphinx/etc/example.sql
????????? 這里是導(dǎo)入sphinx準(zhǔn)備的測(cè)試數(shù)據(jù),我們把數(shù)據(jù)導(dǎo)入到mysql的test數(shù)據(jù)庫(kù)中。當(dāng)然,這里的數(shù)據(jù)庫(kù)要和你上面的配置文件(sphinx.conf)中指定的sql_db值相同。注意,運(yùn)行 這個(gè)命令 的話(huà),如果你的mysql命令沒(méi)有加入到環(huán)境變量中,就需要用完整路徑,同時(shí)可能需要輸入密碼。比如你的mysql安裝在 /usr/local/mysql 目錄中,root賬戶(hù)的密碼是 xxxxxx ,那么命令應(yīng)該調(diào)整為:
????????? $ /usr/local/mysql/bin/mysql -uroot -pxxxxxx test < /usr/local/sphinx/etc/example.sql
????????? $ cd /usr/local/sphinx/etc
????????? $ /usr/local/sphinx/bin/indexer --all
????????? 這個(gè)命令是建立索引,當(dāng)然數(shù)據(jù)基礎(chǔ)是剛剛導(dǎo)入的example.sql的數(shù)據(jù),如果這里出錯(cuò),最大的可能是你的sphinx.conf中的數(shù)據(jù)庫(kù)配置錯(cuò)了,你需要回去檢查并修正。但是,還有可能出現(xiàn)sphinx必須的庫(kù)文件無(wú)法找到,例如出現(xiàn)以下兩種錯(cuò)誤:
????????? /usr/local/sphinx/bin/indexer: error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory
????????? /usr/local/sphinx/bin/indexer: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
????????? 這主要是因?yàn)槟惆惭b了一些庫(kù)后,沒(méi)有能夠配置相應(yīng)的環(huán)境變量。你可以通過(guò)建立連接的方式修正這個(gè)問(wèn)題,運(yùn)行如下命令:
????????? ln -s /usr/local/mysql/lib/libmysqlclient.so.15 /usr/lib/libmysqlclient.so.15
????????? ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
????????? 這里我假設(shè)你相應(yīng)的軟件包安裝在/usr/local/xxx 目錄下,如果你不是安裝在相應(yīng)目錄下,你就需要使用你自己的路徑。如果你沒(méi)有安裝libiconv軟件包,則需要安裝下,這個(gè)安裝比較簡(jiǎn)單,就不多說(shuō)了。
????????? 如果還出現(xiàn)類(lèi)似錯(cuò)誤,照上面的方法修正。
????????? $ cd /usr/local/sphinx/etc
????????? $ /usr/local/sphinx/bin/search test
????????? 上面的命令是搜索測(cè)試,測(cè)試的關(guān)鍵詞就是 test 了,如果成功的話(huà),你應(yīng)該看到搜到的結(jié)果,出現(xiàn)字串“index 'test1': query 'test ': returned 3 matches of 3 total in 0.000 sec”,后面跟的是結(jié)果表示成功了。
????????? $ cd /usr/local/sphinx/etc
????????? $ /usr/local/sphinx/bin/searchd
????????? 運(yùn)行上面的命令,你就啟動(dòng)了sphinx進(jìn)程了,如果沒(méi)什么錯(cuò)誤,可以通過(guò)ps -aux|grep '3312' 找到sphinx進(jìn)程了。
????? 其次,就是依照官方的安裝指導(dǎo)進(jìn)行安裝了,基本步驟如下:
-
解壓
sphinx源碼包:$ tar xzvf sphinx-0.9.9.tar.gz
$ cd sphinx -
運(yùn)行configure配置程序:
$ ./configure [options]
有一些參數(shù)可以在配置的時(shí)候指定,主要如下:
--prefix, 指定sphinx安裝到系統(tǒng)的那個(gè)位置; 例如--prefix=/usr/local/sphinx--with-mysql, mysql的安裝目錄,指定如果自動(dòng)偵查mysql的相關(guān)庫(kù)文件失敗后到哪個(gè)目錄查找--with-pgsql, 同上,只是用于pgsql的
- 編譯:
????????? 在這個(gè)步驟,可能遇到一個(gè)問(wèn)題,就是報(bào) sphinx undefined reference to 'libiconv' 的錯(cuò)誤,解決辦法是修改 /src/MakeFile(注意是src下的Makefile不是csft下的Makefile),編輯LIBS = -lm -lexpat 后面添加-liconv,即將該行該為:
????????? LIBS = -lm -lexpat -liconv -L/usr/local/lib
???? 4. 安裝
??
????????? $ make install
????????? 如果編譯中沒(méi)有產(chǎn)生錯(cuò)誤,這個(gè)步驟應(yīng)該不會(huì)遇到問(wèn)題。如果完成后未正確安裝,就要回去找make過(guò)程中遇到的錯(cuò)誤了。
???? 5. 運(yùn)行測(cè)試
?????????
????????? $ cd /usr/local/sphinx/etc
????????? $ cp sphinx.conf.dist sphinx.conf
????????? $ vi sphinx.conf
????????? 這里,sphinx提供了一個(gè)簡(jiǎn)單的例子,基本步驟是先將 /sphinx/etc下面的sphinx.conf.dist重命名為sphinx.conf,然后修改 sphinx.conf其中的配置,主要是修改你服務(wù)器上面的mysql的用戶(hù)名、密碼、使用的數(shù)據(jù)庫(kù)等。修改的位置是sphinx.conf的source src1下面幾行。
????????? $ mysql -u test < /usr/local/sphinx/etc/example.sql
????????? 這里是導(dǎo)入sphinx準(zhǔn)備的測(cè)試數(shù)據(jù),我們把數(shù)據(jù)導(dǎo)入到mysql的test數(shù)據(jù)庫(kù)中。當(dāng)然,這里的數(shù)據(jù)庫(kù)要和你上面的配置文件(sphinx.conf)中指定的sql_db值相同。注意,運(yùn)行 這個(gè)命令 的話(huà),如果你的mysql命令沒(méi)有加入到環(huán)境變量中,就需要用完整路徑,同時(shí)可能需要輸入密碼。比如你的mysql安裝在 /usr/local/mysql 目錄中,root賬戶(hù)的密碼是 xxxxxx ,那么命令應(yīng)該調(diào)整為:
????????? $ /usr/local/mysql/bin/mysql -uroot -pxxxxxx test < /usr/local/sphinx/etc/example.sql
????????? $ cd /usr/local/sphinx/etc
????????? $ /usr/local/sphinx/bin/indexer --all
????????? 這個(gè)命令是建立索引,當(dāng)然數(shù)據(jù)基礎(chǔ)是剛剛導(dǎo)入的example.sql的數(shù)據(jù),如果這里出錯(cuò),最大的可能是你的sphinx.conf中的數(shù)據(jù)庫(kù)配置錯(cuò)了,你需要回去檢查并修正。但是,還有可能出現(xiàn)sphinx必須的庫(kù)文件無(wú)法找到,例如出現(xiàn)以下兩種錯(cuò)誤:
????????? /usr/local/sphinx/bin/indexer: error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory
????????? /usr/local/sphinx/bin/indexer: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
????????? 這主要是因?yàn)槟惆惭b了一些庫(kù)后,沒(méi)有能夠配置相應(yīng)的環(huán)境變量。你可以通過(guò)建立連接的方式修正這個(gè)問(wèn)題,運(yùn)行如下命令:
????????? ln -s /usr/local/mysql/lib/libmysqlclient.so.15 /usr/lib/libmysqlclient.so.15
????????? ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
????????? 這里我假設(shè)你相應(yīng)的軟件包安裝在/usr/local/xxx 目錄下,如果你不是安裝在相應(yīng)目錄下,你就需要使用你自己的路徑。如果你沒(méi)有安裝libiconv軟件包,則需要安裝下,這個(gè)安裝比較簡(jiǎn)單,就不多說(shuō)了。
????????? 如果還出現(xiàn)類(lèi)似錯(cuò)誤,照上面的方法修正。
????????? $ cd /usr/local/sphinx/etc
????????? $ /usr/local/sphinx/bin/search test
????????? 上面的命令是搜索測(cè)試,測(cè)試的關(guān)鍵詞就是 test 了,如果成功的話(huà),你應(yīng)該看到搜到的結(jié)果,出現(xiàn)字串“index 'test1': query 'test ': returned 3 matches of 3 total in 0.000 sec”,后面跟的是結(jié)果表示成功了。
????????? $ cd /usr/local/sphinx/etc
????????? $ /usr/local/sphinx/bin/searchd
????????? 運(yùn)行上面的命令,你就啟動(dòng)了sphinx進(jìn)程了,如果沒(méi)什么錯(cuò)誤,可以通過(guò)ps -aux|grep '3312' 找到sphinx進(jìn)程了。
總結(jié)
以上是生活随笔為你收集整理的linux安装sphinx的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 是你就是你是什么歌?
- 下一篇: Xapian安装