披露:我搜索了很多,我认为我的问题(对于我的配置)在这里没有得到回答。例如 运行 python 脚本,因为 cgi apache 服务器 不回答它。
所以:我有一个最简单的脚本:
#!/usr/bin/env python
print "Content-type: text/html"
print ""
print "<h1>Hello from Python!</h1>"
当我在浏览器中运行它时,它实际上会显示自己而不是 Python 中预期的 Hello!
我做了以下操作以使其运行:
a) 每个人都可以执行;它完美地在外壳中运行。
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) 我通过运行 sudo apt-get install libapache2-mod-python 确保 apache 支持 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