如何使用mod_wsgi模块在Apache上运行Python应用

时间:2020-03-05 15:28:58  来源:igfitidea点击:

Mod_wsgi是Graham Dumpleton的Apache HTTP Server模块,提供了WSGI兼容接口,用于托管基于Python的Web应用程序。
它用C代码编写。
因此,与mod_python或者其他版本相比,它具有更好的性能和更低的内存开销。

本教程将教我们如何在Ubuntu和Centos上使用mod_wsgi模块在Apache上运行python脚本。

步骤1)安装Apache2,Python和mod_wsgi

首先让我们在Linux上安装apache,python和mod_wsgi软件包。

在Ubuntu上

Ubuntu的最新版本已安装python,如果要安装特定版本,请运行以下命令。

$sudo apt install python3.7 -y

在Ubuntu 18.04上安装apache2

$sudo apt install apache2 apache2-utils ssl-cert

使用以下命令安装mod_wsgi:

$sudo apt-get install libapache2-mod-wsgi

在CentOS上

在CentOS上,我们可以使用yum命令来安装软件包。

安装Apache

$sudo yum install httpd

以下命令将在CentOS上安装python 3.6.

$sudo yum install rh-python36

安装mod_wsgi

# yum install mod_wsgi

步骤2)使用mod_wsgi配置Apache

修改“ /etc/httpd/conf/httpd.conf”文件,并在“ LoadModule”部分中添加以下行:

LoadModule wsgi_module modules/mod_wsgi.so

更新配置文件后,请重新启动apache网络服务器。

如果存在/etc/httpd/conf.d/wsgi.conf,则可能不需要修改“ httpd.conf”文件。

步骤3)建立网页存取目录和python档案

例如,创建“/usr/local/wsgi/scripts”目录并其中添加“ wsgi-myapp.py”文件。

文件内容如下:

def application(environ,start_response):
status='200 OK'
output='Hello world'
response_headers=[('Content-type','text/plain'),
('Content-Length',str(len(output)))]
start_response(status,response_headers)
return [output]

步骤4)创建Apache conf文件

创建一个名为“ myapp.conf”的文件,并将其放在“ /etc/httpd/conf.d/”目录中。
文件内容为:

Alias /myapp “/usr/local/wsgi/scripts/wsgi-myapp.py”
Options ExecCGI
SetHandler wsgi-script
Order allow,deny
Allow from all

步骤5)检查结果

现在重新启动httpd服务。
然后打开Firefox并输入地址“ localhost/myapp”,我们将在网页中看到“ Hello world”。