当我的服务器(运行 CENTOS)重新启动时,我必须手动为每个使用 Sphinx 的网站启动 searchd。
这并不难(只需在每个站点的终端中复制/粘贴一行),但如果我忘记这样做,或者不知道服务器已重新启动,那么我的网站上的搜索就会关闭。
我所指的启动 searchd 的命令是这样的:
/usr/local/bin/searchd --config /path/to/sphinx/etc/sphinx.conf
有没有办法让我的服务器重启时 searchd 自动启动?
答案1
要将 Sphinx 配置为自动启动,请先将searchd
启动命令添加到服务器rc.local
文件:
sudo vim /etc/rc.local
将以下代码粘贴到该exit 0
行上方:
/usr/bin/searchd --config /var/www/yoursitecom/sphinx/etc/sphinx.conf
现在一切都已设置并正在运行,为了确保索引与数据库保持最新,请每 6 小时运行 crontab 来轮换(重建)索引:
sudo crontab -e
将以下行添加到文档底部。
0 */6 * * * /usr/bin/indexer --rotate --config /var/www/yoursitecom/sphinx/etc/sphinx.conf --all
答案2
就我而言(Debian 8.9)
/usr/bin/searchd --config /etc/sphinxsearch/sphinx.conf
没有启动 sphinx,而是需要运行
sudo service sphinxsearch start
启动 Sphinx
harrymc 的回答为我指明了正确的解决方案,当我编辑
sudo nano /etc/rc.local
并包括
sudo service sphinxsearch start
就在 exit 0 行之前,它最终在重新启动时加载了 sphinx。
答案3
您也可以考虑使用类似导师。它不像使用那么简单/etc/rc.local
,而且需要一些配置,但它提供了更大的灵活性。
答案4
就我而言,这是有效的:
在/etc/rc.local
我添加了一行:service searchd start