類似的問題在這裏,但沒有回答我的問題:PHP script not executing upon HTML Form 'Submission'麻煩從HTTP表單提交執行PHP文件
我主持的根Web文件夾網頁(index.html
)在Linux中。它是通過一個按鈕輸入一個簡單的頁面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<form action="cgi-bin/foo.php" method="post">
<input type="Submit" value="TEST">
</form>
</body>
</html>
我也有一個簡單的PHP文件(foo.php
),將創建在一個簡單的文檔運行。該文件保存在我的根目錄下的cgi-bin文件夾中。
<?php
$my_file = 'foo.xml';
$handle = fopen($my_file, 'w') or die('Cannot open file: '.$my_file);
$data = '<foo>OK</foo>';
fwrite($handle, $data);
fclose($handle);
echo "foo.xml file created";
?>
現在,網頁服務正常,我可以從命令提示符下運行PHP並正確執行。 .html和.php文件都已被授予CHMOD 777權限。
但是,試圖運行.PHP使用Web輸入按鈕提交給了這個錯誤:
403 Forbidden The requested URL '/index.html' resolves to a file which is marked executable but is not a CGI file; retrieving it is forbidden.
我一直在谷歌上搜索如何包裝一個PHP文件到cgi的包裝,但一切看起來雜亂無章。當然,我很想在這裏錯過一些東西嗎?
有關如何解決此錯誤的任何建議將不勝感激。謝謝,
php不應該作爲cgi運行,而.html文件不應該是可執行文件。 PHP代碼不會「執行」,所以您只需要「讀取」(也可能是「寫入」)權限。 –
Marc B,你是否建議額外的權限可能會妨礙PHP的執行?感謝您的評論。 – Nanomurf
它會解釋你的錯誤。但是因爲它提到了/index.html,除非你已經告訴你的服務器把.html文件當作PHP腳本來處理,不太可能與php相關。 –