[PYTHON] apache2 CGI运行python脚本


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)

运行结果如下:


发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注