使用Apache来执行Python代码
概括
我会配置一个环境,可以在Apache上运行Python。
环境
-
- Arch Linux 5.0.6
-
- Apache 2.4
- Python 3.7
mod_wsgi是什么
WSGI是Web Server Gateway Interface的简写,mod_wsgi是由Graham Dumpleton开发的用于连接Web服务器和用Python编写的代码的接口。以前,mod_python是主流,但由于开发已经结束,现在使用的是mod_wsgi。
安装mod_wsgi
# pacman -S mod_wsgi
修改Apache的配置文件
请在/etc/httpd/conf/httpd.conf文件中添加以下行。
LoadModule wsgi_module modules/mod_wsgi.so
确认动作
创建一个测试文件并将以下内容添加到Apache配置文件中。
#-*- coding: utf-8 -*-
def wsgi_app(environ, start_response):
import sys
output = sys.version.encode('utf8')
status = '200 OK'
headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, headers)
yield output
application = wsgi_app
WSGIScriptAlias /wsgi_app /srv/http/wsgi_app.py
我会重新启动Apache。
# systemctl restart httpd
用curl命令进行确认。
$ curl http://localhost/wsgi_app
3.7.3 (default, Mar 26 2019, 21:43:19)
[GCC 8.2.1 20181127]