如何在Ubuntu 20.04上使用Apache和mod_wsgi运行Python脚本?
mod_wsgi是一个Apache模块,它为在Apache下托管基于Python的网络应用提供了一个接口。它适用于托管高性能的生产型网站,也适用于在虚拟主机服务上运行的普通自我管理的个人网站。您可以使用mod_wsgi轻松部署用Django、Web.py、Werkzug、Chery.py、TurboGears和Flask等框架和工具编写的应用程序。
在本文中,我们将学习如何在Ubuntu 20.04服务器上安装和设置Apache服务器的mod_wsgi。
先决条件
运行Ubuntu 20.04的服务器。
为服务器配置了root密码。
开始之前,最好将系统更新为最新版本。您可以使用以下命令更新系统:
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
此时,Apache Web服务器已配置为通过HTTP协议提供Python文件。
要对其进行测试,请打开Web浏览器,然后输入URL http://你的服务器IP/wsgi。您应该在以下屏幕上看到mod-wsgi测试页。
现在你已经在Ubuntu 20.04服务器上使用mod_wsgi模块成功地在Apache web服务器上部署了Python脚本。希望您现在可以轻松地在生产环境中使用Apache和mod_wsgi部署任何Python应用程序。