簡體   English   中英

使用Apache2提供python CGI腳本

[英]Serving python CGI script with Apache2

我正在嘗試從網頁調用Python腳本,而apache2沒有執行該腳本。 這些文件是:

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)。 知道我在這里錯了嗎?

如評論中所討論。 此目錄配置看起來像是示例中的純副本,並且您的Web根目錄可能在其他位置。

<VirtualHost *:80>
    <directory "/var/www/htdocs">
        AllowOverride None Options
        +ExecCGI -MultiViews 
        +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all 
        AddHandler cgi-script .py
        Require all granted
    </directory>
</VirtualHost>

例如,目錄已更改。 通常,這是默認路徑,如果您的路徑是/var/www/html更改。

我早些時候對此表示懷疑,但是考慮到這與如何配置apache嚴格相關,這個問題在serverfault上也可能會更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM