允许 apache 运行 sphinx 命令

允许 apache 运行 sphinx 命令

我需要 apache 能够运行 sphinx 索引工具,因为我正在构建一个基于 Web 的界面来重新索引和检查各种 sphinx 配置。

目前我已将以下内容添加到visudo

Defaults:%apache !requiretty
Defaults:apache !requiretty
apache ALL=(sphinx) NOPASSWD: /usr/bin/indexer, /usr/bin/indexer

我正在运行的命令是:

exec sudo -u sphinx indextool --checkconfig --config /path/to/sphinx.conf

这是用 PHP 运行的proc_open

array(
    'stdin' => array('pipe', 'r'),
    'stdout' => array('pipe', 'w'),
    'stderr' => array('pipe', 'w'),
)

错误:

sudo: no tty present and no askpass program specified

答案1

事实证明我需要使用该命令的完整路径

 exec sudo -u sphinx /usr/bin/indextool --checkconfig --config /path/to/sphinx.conf

现在一切都很好

相关内容