【问题标题】:Unable to load tor with Apache无法使用 Apache 加载 Tor
【发布时间】: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; 它显示了什么?

标签: php apache tor


【解决方案1】:

Tor 需要对运行 Tor 的用户的主目录有写权限。运行 PHP 脚本的用户通常不是这种情况。

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

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

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

【讨论】:

    【解决方案2】:

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

    另一件事是我建议使用 php 和 ssh,这将允许您在保持功能的同时将脚本安装在另一台服务器上。

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

    【讨论】:

    • 关于 shell_exec 返回我没有得到。我正在使用 netstat 检查开放端口 9050。
    【解决方案3】:

    听起来像是权限问题,

    chmod 777 /usr/bin/tor
    

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

    【讨论】:

    • 那么 Tor 不能位于那里
    猜你喜欢
    • 2014-03-18
    • 2017-10-25
    • 1970-01-01
    • 2016-02-16
    • 2013-01-04
    • 2017-03-03
    • 2016-11-11
    • 2017-06-02
    • 2017-06-06
    相关资源
    最近更新 更多