ubuntu 1604 apache2默认并未开启CGI python支持,需要进行手动配置。
首先编辑/etc/apache2/apache2.conf,增加以下配置:
<Directory /var/www/html/>
Options +ExecCGI
PassEnv LANG
AddHandler cgi-script .py
</Directory>
AddHandler python-program .py
配置完成之后运行service apache2 restart重启服务。
测试:
在/var/www/html新建python文件
#!/usr/bin/python
print “Content-type: text/html\n”
print “Hello, world!”
保存之后更改文件权限,加入可执行权限。
此时,可以通过浏览器运行相应的文件。如果运行显示的是内容,而不是运行结果,原因可能是没有load cgi模块,则需要运行sudo a2enmod cgi,然后重启apache服务即可。若想要获取url传入参数,可以使用cgi库
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import cgi
print(“Content-Type: text/html\n”)
print(“Hello, world!”)
arguments = cgi.FieldStorage()
for i in arguments.keys():
print(i)
print(arguments[i].value)
运行结果如下: