【发布时间】:2013-11-03 21:04:32
【问题描述】:
披露:我搜索了很多,但我认为我的问题(对于我的配置)在这里没有得到解答。例如 run python script as cgi apache server 没有回答。
所以: 我有一个最简单的脚本:
#!/usr/bin/env python
print "Content-type: text/html"
print ""
print "<h1>Hello from Python!</h1>"
当我在浏览器中运行它时,它实际上会显示自己而不是预期 来自 Python 的您好!
我做了以下让它运行:
a) 每个人都可以执行;它完美地在 shell 中运行。
b) 它位于具有以下配置的虚拟目录中(在/etc/apache2/sites-available/my_cgi_dir 中):
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/my_cgi_dir/> Options Indexes +ExecCGI FollowSymLinks MultiViews AddHandler cgi-script .cgi .py AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
如你所见
Options Indexes +ExecCGI FollowSymLinks MultiViews
和
AddHandler cgi-script .cgi .py
c) 我通过运行确保 apache 支持 python sudo apt-get install libapache2-mod-python
d) 是的,我确实重启了 apache。
不过,我只看到脚本的源代码而不是“Hello Python”。
我错过了什么?
请帮忙。
PS:如果这可能有帮助,这是我正在运行的:
Linux ip-172-31-37-178 3.2.0-40-virtual #64-Ubuntu SMP Mon Mar 25 21:42:18 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
服务器版本:Apache/2.2.22 (Ubuntu)
Python 2.7.3
【问题讨论】:
-
只是为了确定:你把脚本放在哪里了?您是否启用了 Apache 站点 (
a2ensite my_cgi_dir)? -
chmod +x? www-data 可读吗? mod_python 在这里完全无关紧要,顺便说一句。
-
@Robin Krahl:不知道 a2ensite 是什么意思。我把脚本放到/var/www/my_cgi_dir/。它(站点)正在工作,除了它不作为 python 运行它,只是显示它的文本。我还把一些 index.html 放到这个目录中:工作得很好。
-
@jhermann:请参阅我的 OP 中的 a)。