2011-05-19 6 views
0

私はAria2cと呼ばれるubuntuのマルチスレッドcliダウンローダーを持っています。ファイルをダウンロードするためにshell_execを取得できません

私はaria2cを実行し、shell_execを使用してファイルをダウンロードするためにPHPスクリプトを取得しようとしていましたが、うまく動作しないようです。最終的に、私はリンクを入力することができ、アリアはそれをダウンロードすることができるページに入力ボックスを持つ予定です。

ここで私は(のためには、今、リンクを手動で入力するIM)を作ってみたコードです:
<?php $dl = shell_exec('aria2c -d /home/user/ www.downloadlink.com'); ?>

注私は貝にも作品を指定aria2cコマンドという。私がダウンロードしようとしているディレクトリは '777'に設定されています。

私はなぜそれが動作していないのか、どんなアイデアに悩まされていますか?

PS:マルチスレッドでありクッキーをサポートしているため、代わりにアリアを使用することをお勧めします。

+2

:あなたがしてaria2cのフルパスを取得することができます

<?php exec('/path/to/aria2c -d /tmp www.downloadlink.com', $output, $return_var); var_dump($output, $return_var); ?> 

はこのような何かを試してみてください? $ dlには何がありますか? –

+0

なぜマルチ_カール?シェルコマンドの出力は何ですか? – Nemoden

+0

他のshell_execコマンドは実際に成功しますか? – Nanne

答えて

1

PHPがsafe_modeで動作しているかどうかを確認してください。 safe_modeがオンの場合、shell_execは機能しません。

EDIT:aria2cはフルパスで参照されていませんでした。このように参照してください:shell_exec('/path/to/aria2c -d /home/user/ www.downloadlink.com')作品。

+0

shell_execを使っていくつかのコマンドを実行しました。問題がある – lelouch

+0

Hmmm..thenあなたのパスのバイナリ/スクリプトaria2cですか?そうでない場合は、完全修飾パスで参照してください: 'shell_exec( '/ path/to/aria2c -d/home/user/www.downloadlink.com');' –

+0

ああ!素晴らしいですが、そのトリックを行っています。今私はそれが働いているのを見て、私は次の段階に進むことができます。ありがとう! – lelouch

0

私はあなたがウェブサーバーを通してPHPを実行していると仮定します。このような場合、Webサーバーにユーザーのホームディレクトリへの書き込み権限があることはほとんどありません。Apacheは、限られたユーザーの資格情報でデーモンとして実行されます。また、Apacheののenv変数は、必ずしもあなたのPATHと同じではありません。最後に、戻り値やスクリプトの出力をチェックしません。 WWW/apacheのユーザがアリアを実行する権限を持っている

which aria2c 
+0

ディレクトリを777に設定しても、アクセス権は問題ありません。問題は、aria2cへのパスを入力していなかったことです。 – lelouch

+0

ホームディレクトリを誰でも書き込み可能に設定しましたか?テストの目的でさえ恐ろしいようです。:-P –

+0

haha​​。特定のディレクトリのみ。とにかくそれはVPSにあるので、それほど恐ろしいものではありません:) – lelouch

関連する問題