如果想要Apache可以执行python之类的网页程序,那么就得安装一些额外的模块,python程序安装的模块为mod_python install -y mod_python进行安装
第一步,配置apache
在httpd.conf中,找到:
AddHandler cgi-script .cgi
把它改为:
AddHandler cgi-script .cgi .py
其他设置:
<Directory "/var/www/cgi-bin"> AllowOverride ALL Options +ExecCGI Order allow,deny Allow from all </Directory>
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
“/var/www/cgi-bin”是你放置python程序的地方,可以改成你自己的目录,重要的是那个“+ExeCGI”,它的意思让此目录具有执行CGI的权限
第二步,配置mod_python
mod_python安装好后,默认有个配置文件:/etc/httpd/conf.d/python.conf,这个文件在apache重启时会自动读入
要注意的是:
LoadModule python_module modules/mod_python.so
看是否有这句,并且去掉注释。其他要更改的地方:
<Location /var/www/cgi-bin>
SetHandler python-program
PythonPath "sys.path+ [‘/var/www/cgi-bin‘]"
PythonHandler hellox
</Location>
<Directory /var/www/cgi-bin> AddHandler mod_python .py PythonHandler hellox PythonDebug On </Directory>
把“/var/www/cgi-bin"/ 改为你自己房子python程序的目录。其中,第一条指令是将所有URL末尾为.py的请求转发给mod_python处理程序,mod_python接收到请求之后再寻找适当的PythonHandler处理程序,这里是python文件的名字。第二条指令只定义了一个hellox处理程序,注意这个程序名不要跟系统已有的程序名字一样。最后一条是启用Python代码调试功能,以便在代码运行出错时输出Python解释器返回的错误。
第三部,编写python文件进行测试
我编写的hellox.py:
#!/usr/bin/python2 from mod_python import apache def handler(req): req.content_type = ‘text/plain‘ req.write("Hello World!") return apache.OK
测试文件一定要按照下面的格式才行:
def handler(req): ..... return apache,OK
更改权限:chmod a+x /var/www/cgi-bin/hellox.py
最后,在浏览器输入 http://192.168.111.50/cgi-bin/hellox.py,屏幕上出现“hello,world”。