使用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]