如何在 Ubuntu 20.04 上使用 Apache 和 mod_wsgi 运行 Python 脚本
本教程适用于这些操作系统版本
- Ubuntu 22.04(Jammy Jellyfish)
- Ubuntu 20.04(Focal Fossa)
在此页
- 先决条件
- 开始
- 安装Python
- 安装 Apache 和 mod_wsgi
- 为 mod_wsgi 配置 Apache
- 测试 mod-wsgi
- 结论
mod_wsgi 是一个 Apache 模块,它提供了一个接口,用于在 Apache 下托管基于 Python 的 Web 应用程序。它适用于托管高性能生产网站,以及在网络托管服务上运行的普通自我管理个人网站。您可以使用 mod_wsgi 轻松部署使用 Django、Web.py、Werkzug、Chery.py、TurboGears 和 Flask 等框架和工具编写的应用程序。
在本教程中,我们将学习如何在 Ubuntu 20.04 服务器上使用 Apache 服务器安装和设置 mod_wsgi。
先决条件
- 一台运行 Ubuntu 20.04 的服务器。
- 为服务器配置了根密码。
入门
在开始之前,最好使用最新版本更新您的系统。您可以使用以下命令更新您的系统:
apt-get update -y
apt-get upgrade -y
更新系统后,重新启动它以实施更改。
安装 Python
默认情况下,Python 预装在 Ubuntu 20.04 服务器中。如果没有安装,可以使用以下命令安装:
apt-get install python3 libexpat1 -y
安装完成后,您可以继续下一步。
安装 Apache 和 mod_wsgi
接下来,您需要在您的系统上安装 Apache Web 服务器和 mod_wsgi Python 模块。您可以通过运行以下命令来安装它们:
apt-get install apache2 apache2-utils ssl-cert libapache2-mod-wsgi -y
安装所有软件包后,您可以继续下一步。
为 mod_wsgi 配置 Apache
接下来,您需要在 Apache 默认 Web 根目录中创建一个新的 Python 脚本,并通过 mod_wsgi Apache 模块提供它。
您可以使用以下命令创建它:
nano /var/www/html/wsgy.py
添加以下行:
def application(environ,start_response):
status = '200 OK'
html = 'html>\n' \
'<body>\n' \
'<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">\n' \
'Welcome to mod_wsgi Test Page\n' \
'</div>\n' \
'</body>\n' \
'</html>\n'
response_header = [('Content-type','text/html')]
start_response(status,response_header)
return [html]
保存并关闭文件。然后,使用以下命令将文件的所有权更改为 www-data:
chown www-data:www-data /var/www/html/wsgy.py
接下来,创建一个 Apache 虚拟主机配置文件以通过 HTTP 协议提供该文件。
nano /etc/apache2/conf-available/wsgi.conf
添加以下行:
WSGIScriptAlias /wsgi /var/www/html/wsgy.py
保存并关闭文件。然后,使用以下命令启用 mod-wsgi 配置并重启 Apache 服务:
a2enconf wsgi
systemctl restart apache2
测试mod-wsgi
此时,Apache Web 服务器已配置为通过 HTTP 协议为您的 Python 文件提供服务。
要对其进行测试,请打开您的 Web 浏览器并输入 URL http://your-server-ip/wsgi。您应该在以下屏幕中看到 mod-wsgi 测试页面:

结论
恭喜!您已经在 Ubuntu 20.04 服务器上使用 mod_wsgi 模块在 Apache Web 服务器上成功部署了 Python 脚本。我希望您现在可以在生产环境中使用 Apache 和 mod_wsgi 轻松部署任何 Python 应用程序。