使用mod_wsgi在CentOS 7上将Python作为Web应用程序运行

2020年12月31日19:42:16 发表评论 74 次浏览

介绍

了解如何安装和使用Apache的mod_wsgi模块以在网页中运行Python脚本。该Apache模块可用于服务以Python编写的网页, 或使用嵌入式Python脚本渲染网页。

mod_wsgi对于习惯了Apache处理PHP方式的Web开发人员而言, 它是一个特别好的选择。如果你想要Python的强大功能和灵活性, 但又希望它像Web上的PHP一样工作, mod_wsgi是一个简单的答案。

<code> mod_wsgi </ code>与<code> mod_python </ code>

许多用户对两者之间的区别感到困惑mod_wsgi和mod_python。这两个Apache模块具有大致相同的效果:它们使你可以在网页中运行Python模块。

虽然mod_python具有更强大的功能集, mod_wsgi得到更加积极的支持和发展。因此, 我们建议mod_wsgi对于大多数用户。

要求

  • 运行Linux(CentOS 7)的云服务器。
  • Apache已安装并正在运行。
  • 对Python有基本的了解。

安装mod_wsgi

更新系统:

sudo yum update

安装mod_wsgi使用命令:

sudo yum install mod_wsgi

重新启动Apache:

sudo systemctl restart httpd

验证模块是否已加载:

sudo httpd -M | grep wsgi

服务器将响应:

[user@localhost ~]# sudo httpd -M | grep wsgi
wsgi_module (shared)

配置Apache

出于安全原因, Python脚本应存储在Web上不可用的目录中。创建此目录:

sudo mkdir /var/www/python

将Apache设置为该目录的所有者, 以便它可以访问文件:

sudo chown apache:apache /var/www/python

我们将使用WSGIScriptAlias为脚本配置别名。还需要将访问权限授予该脚本所在的目录。

为示例" Hello World"脚本创建一个Apache配置文件, 并打开它进行编辑:

sudo nano /etc/httpd/conf.d/helloworld.conf

将以下内容放入此文件:

WSGIScriptAlias /helloworld /var/www/python/helloworld.py

&lt;Directory /var/www/python/&gt;
Order allow, deny
Allow from all
&lt;/Directory&gt;

保存并退出文件。然后重新启动Apache:

sudo systemctl restart httpd

创建一个测试脚本

我们将使用官方推荐的mod_wsgi Hello World测试脚本对于这个例子。

创建文件并打开以进行编辑:

sudo nano /var/www/python/helloworld.py

将以下内容放入此文件:

def application(environ, start_response):
    status = '200 OK'
    output = b'Hello World!'

    response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

保存并退出文件。然后将Apache设置为该文件的所有者, 以便可以对其进行访问:

sudo chown apache:apache /var/www/python/helloworld.py

在浏览器中的URL上查看此文件http://example.com/helloworld。你将看到消息" Hello World!"。

一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: