This information is suitable for sphinx versions 2.0.9 and below (also sphinx 1.x).
If you need to install and configure version 2.2.x (2.2.11, for example), then see here >>
 How to install sphinx on centos 5
Where to search for information?
As always – first we look, that is in search on query “installation sphinx on centos”.
We open several tabs and work on it. And of course, we look at the official documentation (http://sphinxsearch.com/docs)
yum search sphinx
yum install sphinx
CentOS release 5.9 (Final)
yum --nogpgcheck localinstall sphinx-2.0.9-1.rhel5.i386.rpm
rpm -Uvh sphinx-2.0.9-1.rhel5.i386.rpm
error: Unsatisfied dependencies:
libmysqlclient.so.15 required for sphinx-2.0.9-1.rhel5.i386
libmysqlclient.so.15(libmysqlclient_15) required for sphinx-2.0.9-1.rhel5.i386
I go to http://sphinxsearch.com/docs/current.html#installing
libsphinx.a(sphinx.o): In function `xmlUnknownEncoding':
/root/install/sphinx-2.0.9-release/src/sphinx.cpp:22846: undefined reference to `libiconv_open'
/root/install/sphinx-2.0.9-release/src/sphinx.cpp:22864: undefined reference to `libiconv'
/root/install/sphinx-2.0.9-release/src/sphinx.cpp:22870: undefined reference to `libiconv_close'
collect2: ld completed with a return code 1
How to fix this error “collect2: ld completed with a return code 1” ?
LIBS = -lexpat -ldl -lm -lz -L/usr/local/lib -lrt -lpthread
LIBS = -lexpat -liconv -ldl -lm -lz -L/usr/local/lib -lrt -lpthread
 How to configure sphinx on centos 5
just in case, backup the original configs:
cp -i sphinx-min.conf.dist sphinx-min.conf.dist.copy
cp -i sphinx.conf sphinx.conf.copy
set the configuration for own database
We will create the folders listed in the config (otherwise we’ll get errors … 🙂 )
searchd --config /usr/local/etc/sphinx.conf
check that the service on the required ports is working
lsof -i tcp:9312
lsof -i tcp:9306
check that the log files have been created:
ls -lh /var/log/sphinx/
Useful commands for sphinx search service
indexer --config /usr/local/etc/sphinx.conf --all
indexer --config /usr/local/etc/sphinx.conf --rotate
search test in the console:
search -q --config /usr/local/etc/sphinx.conf -a 123
search -q 123
In order to use the search on the site, you need to use the Sphinx API for PHP.
This is the library that comes with the distribution. We find where it is:
// Plug sphinx-api
Add cron task to the rotation every 15 minutes (the indexer path is full, because the cron are usually do not know where to look for executable files):
*/15 * * * * /usr/local/bin/indexer --config /usr/local/etc/sphinx.conf --rotate > /dev/null 2>&1
 How to make searchd (sphinx) start on reboot?
1) Beautiful method – as described in this article.
2) A simple method is to check in the cron every minute whether searchd is started and run it, if necessary. Criterion – check the existence of a pid-file:
* * * * * if [ ! -f /var/log/sphinx/searchd.pid ]; then /usr/local/bin/searchd --config /usr/local/etc/sphinx.conf; fi > /dev/null 2>&1
Update, 21.12.2016: This settings for Sphinx 1.x и 2.0.x; to learn how to install and configure Sphinx versions 2.2.x read: Installing and Configuring Sphinx 2.2.11 (Yii with delta Indexes) on Ubuntu / Debian and RHEL / CentOS 7