웹 서버에서 쉘을 실행할 수 없습니다

웹 서버에서 쉘을 실행할 수 없습니다

웹 서버에서 PHP 스크립트를 실행하려고 하면 실패합니다.

여기에 이미지 설명을 입력하세요.

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

웹페이지에 스크립트를 백그라운드로 푸시할 수 있는 버튼을 만들려고 합니다.

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 웹 서버라고 가정하면

/var/log/httpd/error_log

또는

/var/log/apache2/error.log

tail또는 를 사용하여 쉽게 확인할 수 있습니다 .less

관련 정보