phpファイル上に埋め込まれたCGIが実行される時に、ブラウザ上にエラーが表示されCGIが動作しないので、なんとか動くようにしたい状況です。
以下、ブラウザ上に表示されたエラーメッセージです。
「Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.」
続いて、/var/log/httpd/error_logに記録された該当のエラーログは以下の通りです。
0. 「No such file or directory: exec of 'cgiファイルのパス' failed, referer: 'PHPのURL'」
0. 「Premature end of script headers: 'cgiファイル名', referer: 'PHPのURL'」
そのほかの情報は以下に追記します。
/etc/httpd/conf/httd.confの関連していそうな箇所
<Directory /> #Options FollowSymLinks Options FollowSymLinks ExecCGI AllowOverride None </Directory> <Directory /> Options +ExecCGI AddHandler cgi-script .cgi .pl </Directory> AddType applications/x-httpd-cgi .cgi
PHPファイルやCGIファイルはまとめて「html」という名前のディレクトリに入っています。
その「html」ディレクトリのパーミッションは、Filezillaで繋いで右クリック->
「パーミッションの変更(F)」->「属性値(N)」の項目を755にしています。
ブラウザのURLは、
http://192.168.0.5/html2/exp.php?expno=1-2-1
と指定して表示しています。
exp.phpの中身は↓です。
<?PHP include("./exp.inc"); if(!isset($_GET['expno'])){ $expno = ""; } else { $expno = $_GET['expno']; } ?> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=EUC-JP"> <TITLE><?PHP echo GetTitleByMenuArray($arr_menu,$expno); ?></TITLE> </HEAD> <FRAMESET> <FRAME SRC="./menu.html"> <FRAME SRC="./exp<?PHP echo $expno; ?>.php"> </FRAMESET> </HTML>
/etc/httpd/conf/httpd.confへ追記したところ、エラーが500から403へ変わりました。
<Directory "/var/www/html/html2/programs"> AllowOverride None Options None Order allow,deny Allow from All </Directory>
環境
・windows10 pro
・virtualBox6.1.4 r136177(Qt5.6.2)
・CentOS-6.8-x86_64-minimal.iso
・Server version: Apache/2.2.15
回答2件
あなたの回答
tips
プレビュー