无法使用Apache加载tor

时间:2012-05-04 16:36:33

标签: php apache tor

我需要使用一个函数来通过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的输出。

3 个答案:

答案 0 :(得分:1)

Tor需要对运行用户的主目录的写入权限。运行PHP脚本的用户通常不会这样做。

尝试echo $输出;上面提到的方法。你可能会看到这一行:

[warn] Failed to parse/validate config: Couldn't access/create private data directory "/var/www/.tor"

还要确保系统上Tor的路径确实是 / usr / bin / tor ,而不是 / usr / sbin / tor

答案 1 :(得分:0)

您是否以root身份运行php命令?因为TOR可能需要具有root权限才能运行。 shell_exec返回什么输出?

另一件事是我建议使用php和ssh,这样你就可以在保持功能的同时在另一台服务器上安装脚本。

本教程可以很好地帮助您:http://kevin.vanzonneveld.net/techblog/article/make_ssh_connections_with_php/

答案 2 :(得分:0)

听起来像是一个权限问题,

chmod 777 /usr/bin/tor

但如果这对公众开放,这可能不是一个很好的解决方案。