2012-07-09 155 views
0

任何人都可以帮我吗?我使用狮身人面像搜索器,但我有很多数据库。我动态地控制它们(更改sphinx配置文件),但是在向配置文件添加索引后,需要重新启动sphinx。我已经创建了一个bash脚本来做到这一点(停止shpinx,启动它,索引器 - 旋转 - 所有),当我从终端运行脚本它是好的,但是当我从Apache服务器运行它不工作。我怎样才能做到这一点,而不用改变apache服务器的所有者为root(这会降低我的服务器的安全性)?从php重新启动Sphinx

+0

1)的setuid 2)由cron脚本,并检查(如:数据库/ FS),有重启BTW需要你为什么改变配置文件? – 2012-07-09 09:44:19

+0

,因为对于每个数据库,我添加到配置文件与db,db_user,db_pass,db_name的ip源并为此源添加索引器。 当我尝试在php中使用添加的索引器它不认识新的索引器没有重新启动狮身人面像 – 2012-07-09 10:09:13

回答

1

我怎么能做到这一点没有changenig Apache服务器的所有者根

如何须藤?把这样的事情在你的sudoers ...

apache ALL= NOPASSWD: /path/to/script command 

美中不足的是,以确保该脚本不能被利用......因为它是作为root运行...即是只读的Apache + EXEC ,确保发送给脚本的命令/开关已经过检查。

我希望帮助,
亲切的问候,
尼克

+0

我试图sudo没有添加 'apache ALL = NOPASSWD:/ path/to/script command' 脚本,它不是加工。 现在没问题。 Thnx的帮助... – 2012-07-09 12:59:19

+0

嗨丹尼斯,你能告诉我你使用了哪个命令,因为我在cron作业中运行索引器的难度相同。 – HKumar 2015-09-17 09:52:04