【发布时间】:2012-05-04 16:36:33
【问题描述】:
我需要使用一个函数来通过 Web 界面启动和停止 Tor。由于某种原因,以下指令不起作用(没有生成 Tor 进程):
if ($_GET['tor'] == 'start') {
shell_exec('/usr/bin/tor > /dev/null 2>&1 &');
...
但是当我通过 shell 运行完全相同的字符串时它可以工作:
$ php -r "shell_exec('killall tor > /dev/null 2>&1 &');"
如何解决问题?
提前致谢。 克
问题与 /var/tor 目录权限有关。由于它是由没有任何 home/.tor 的 apache 用户生成的,因此他尝试创建 var/tor。 我只能在使用 python (os.system("tor")) 启动 tor 时获得 tor 的输出。
【问题讨论】:
-
您是否有足够的权限使用这个 PHP 脚本运行 tor?
-
tor的权限是755 (-rwxr-xr-x)
-
当我尝试通过 shell 执行 php 脚本时,我没有使用 root 帐户。如果问题是权限,我不应该在 error_log 中收到拒绝访问错误吗?
-
否,因为 tor 可以被 OTH (-....-..-x) 执行,这个脚本应该可以正常工作。
-
将 shell_exec 行编辑为
$output = shell_exec('/usr/bin/tor > /dev/null 2>&1 &');然后echo $output;它显示了什么?