披露:我搜索了很多,我认为我的问题(针对我的配置)在这里没有得到解答。例如作为 cgi apache 服务器运行 python 脚本 https://stackoverflow.com/questions/15878010/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
and
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 三月 25 日星期一 21:42:18 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
服务器版本:Apache/2.2.22 (Ubuntu)
Python 2.7.3