php 更新sphinx,sphinx(五)php执行sphinx更新索引rotate命令

我将sphinx全文检索应用到我的博客中。

我这里使用thinkphp5.0框架,其实这玩意跟我用啥框架还真没有啥关系。

将sphinxapi.php文件放到你能引用到的地方就好。参照前几篇中的php的demo代码就可以了。

当然,上边说的只是PHP中sphinx的使用。

执行到这里,我发现了一个小问题:

我该如何维护sphinx的索引,说实话,我博客中的数据不多,说维护,其实就是每次生成全部索引就可以了。

这样的话,我就可以在更新博客文章的时候,使用PHP执行更新索引的命令就可以了。

但是,在使用PHP执行更新索引的命令的时候遇到了几个小问题,这里记录一下:

1:确定服务器中web用户

我的服务器中web用户是apache

exec(“whoami”,$res,$return);

var_dump( $return);

2:确定sphinx安装目录下的文件apache用户有执行权限

567dbfc012e6

1.png

567dbfc012e6

2.png

上图中的文件需要有执行权限。

3:执行更新索引命令

exec('sudo -s /usr/local/sphinxforchinese/bin/indexer -c /usr/local/sphinxforchinese/etc/sphinx.conf --all --rotate ', $res, $return_val);

var_dump($res);

var_dump($return_val);

(1):报错:

sudo: no tty present and no askpass program specified

解决方法:

编辑sudoers文件

vim /etc/sudoers

添加免密码:

用户名 ALL = NOPASSWD: ALL

如:jenkins ALL = NOPASSWD: ALL

(2):再次执行报错:

This account is currently not available # 该账户不可用

解决方法:

vim /etc/passwd

apache:x:48:48:Apache:/usr/share/httpd:/ sbin /nologin

改成

apache:x:48:48:Apache:/usr/share/httpd:/bin/bash

保存退出。

再次执行,索引生成成功。

有好的建议,请在下方输入你的评论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值