0

Web インターフェイス経由で Tor を開始および停止する機能を使用する必要があります。何らかの理由で、次の命令は機能しません (Tor プロセスが生成されませんでした):

if ($_GET['tor'] == 'start') {
    shell_exec('/usr/bin/tor > /dev/null 2>&1 &');
...

しかし、シェル経由でまったく同じ文字列を実行すると機能します。

$ php -r "shell_exec('killall tor > /dev/null 2>&1 &');"

問題を解決するには?

前もって感謝します。K


この問題は、/var/tor ディレクトリのアクセス許可に関連していました。home/.tor を持たない apache ユーザーによって生成されたので、彼は var/tor を作成しようとします。python (os.system("tor")) を使用して tor を起動したときにのみ、tor の出力を取得できました。

4

3 に答える 3

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ではないことを確認してください。

于 2012-05-04T17:17:29.340 に答える
0

php コマンドを root として実行していますか? TOR を実行するには root 権限が必要になる場合があるためです。shell_exec はどのような出力を返しますか?

もう 1 つのことは、php と ssh を使用することをお勧めします。これにより、機能を維持しながら別のサーバーにスクリプトをインストールできるようになります。

このチュートリアルはうまくいくはずです: http://kevin.vanzonneveld.net/techblog/article/make_ssh_connections_with_php/

于 2012-05-04T16:42:10.320 に答える
0

許可の問題のように聞こえますが、

chmod 777 /usr/bin/tor

しかし、これが一般に公開されている場合、これは優れた解決策ではない可能性があります。

于 2012-05-04T16:43:22.847 に答える