2011-12-08 21 views
0

私はバックエンドのPythonスクリプトを呼び出すためにPHPスクリプトを使用しています。php shell_exec no permission

<?php 
    error_reporting(-1); 
    $output = shell_exec("sh run.sh 2>&1"); 
    echo "<pre>$output</pre>"; 
?> 

run.shスクリプトは次のとおりです。

#!/bin/bash 
wget http://markets.usatoday.com/custom/usatoday-com/html-mktscreener.asp 
python hw7-9.py index.html 
echo "done"; 

出力は

run.sh: wget: not found 
run.sh: python: not found 
done 

私はシェルから、通常はそれを実行した場合、それは完璧に動作しています。見つからなかった私は、「wgetのどの」と私は許可を得

/afs/cad/sw.common/bin/wget -O index.html http://markets.usatoday.com/custom/usatoday-com/html-mktscreener.asp 

完全なパスを交換しました試してみて、修正する はあなたのPHPとシェルスクリプトのパーミッションは何ですか?

+0

あなたのWebサーバーがそのフォルダへの書き込み権限を持っていることを確認してください。 – zneak

+1

出力ファイルへのフルパスも定義します... –

答えて

0

を否定しましたか

私はあなたが使っているのと同じ手法を使っています。以下に完全所有権と属性の詳細を示します。

# ls -l 
-rw-r--r-- 1 root root 2332 Jan 4 23:07 daily.php 
-rwxr-xr-x 1 root root 232 Oct 30 22:43 get_stuff.sh 

システム上のユーザー/グループの所有権は異なります。読み取り/書き込み/実行の権限は、私のものと厳密に一致する必要はありません。しかし参考のために私のセットアップは以下の方法で実現します:

chmod 644 daily.php 
chmod 755 get_stuff.sh 
chown root:root * 
関連する問題