我想從網頁調用Python腳本,而且apache2沒有對腳本進行操作。這些文件是:用Apache2服務python CGI腳本
test.py
#!/usr/bin/env python
print "Content-type: text/html\n\n"
print "<h1>Hello World</h1>"
的index.html
<form action="./test.py" method="POST">
<input type="text" size="70" name="data" value=""><br>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</form>
我已經啓用a2enmod cgi
和編輯apache的設置如下:
/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
...
<directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
AddHandler cgi-script .py
Require all granted
</directory>
</VirtualHost>
頁面文件所有權是:
# ls -lh /var/www/html/
total 16K
-rw-r--r-- 1 root root 342 May 30 13:34 index.html
-rwxr-xr-x 1 root root 88 May 30 14:11 test.py
運行apachectl -M
帶來了線cgid_module (shared)
列表。
當我打開頁面時,我可以看到表格,但是當我點擊'提交'時,瀏覽器會提示下載test.py
(FF)或查看它(Chrome)。任何想法我在這裏發生錯誤?
檢查元信息標籤是否有效的一個好方法是使用Ctrl + Shift + J並檢查網絡標籤和py腳本的返回內容類型。 Chrome會說什麼,文本/純文件?我猜你已經重新加載了服務器配置? – Torxed
你在Chrome和FF中提出的屏幕截圖 - http://imgur.com/a/lGkN5 – geotheory
我正在通話,所以無法寫出正確的答案。你的mime信息是錯誤的,你的py文件的內容類型是「document」,py腳本沒有註冊爲處理程序。現在看看https://httpd.apache.org/docs/2.4/mod/mod_mime.html – Torxed