Webサーバーでシェルを実行できません

Webサーバーでシェルを実行できません

WebサーバーでPHPスクリプトを実行しようとすると失敗します。

ここに画像の説明を入力してください。

cat test.sh
echo "Hello World"
[root@yumserver ~]#

Webページにスクリプトをバックグラウンドでプッシュできるボタンを作成しようとしています。

nohup test.sh &

以下でライセンス/所有権の詳細を確認してください。

-rwxrwxrwx 1 apache apache 62 Mar 28 04:14 run.php 
-rwxrwxrwx 1 root root 62 Mar 27 06:33 sync.php 

CGI-binを試しましたが、特定のスクリプトが実行されませんでした。

#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "<html><head><title>Bash as CGI"
echo "</title></head><body>"
echo "<h1>General system information for host $(hostname -s)</h1>"
echo ""
echo "<h1>Memory Info</h1>"
echo "<pre> $(free -m) </pre>"
echo "<h1>Disk Info:</h1>"
echo "<pre> $(df -h) </pre>"
echo "<h1>Logged in user</h1>"
echo "<pre> $(w) </pre>"
echo "<h1>test</h1>"
echo "<pre> $(sh /var/www/cgi-bin/yumsync.sh) </pre>"  <<<<<
echo "<pre> $(nohup uln-yum-mirror &) </pre>"  <<<<<
echo "<center>Information generated on $(date)</center>"
echo "</body></html>"

yumsyncまたはuln-yum-mirrorはバックグラウンドにプッシュしようとしているスクリプトですが、起動しません。原因が何かを提案してもらえますか?

答え1

サーバーエラーログを見ると、その理由をほぼ確実に知ることができます。ディストリビューションに基づいてApache Webサーバーであると仮定すると、

/var/log/httpd/error_log

または

/var/log/apache2/error.log

tailまたはを使って簡単に確認できます。less

関連情報