How to Setup Apache with Python WSGI on Ubuntu

设置一个 web 服务器来运行 Python 应用程序似乎有些麻烦,尤其是对初学者来说。

本指南将引导您在 Ubuntu 24.04 和 22.04 上使用 Python 的 Mod_WSGI 设置 Apache ,Mod_WSGI 是一个 Apache 模块,允许你运行 Python web 应用程序。

必备条件

  • A server running Ubuntu 24.04 or 22.04
  • A non-root user with sudo privileges
  • Basic knowledge of the command line

Step 1: Update Your Server

首先,更新服务器的包索引。

sudo apt update
sudo apt upgrade -y

Step 2: Install Apache

接下来,安装 Apache。Apache 是一个可靠且易于使用的 web 服务器。

sudo apt install apache2 -y

安装完成后,启动 Apache 并使其能够在引导时运行。

sudo systemctl start apache2
sudo systemctl enable apache2

在浏览器中访问服务器的 IP 地址,检查 Apache 是否正在运行。

Step 3: Install Mod_WSGI and Python

安装 Mod_WSGI 和 Python 包

sudo apt install libapache2-mod-wsgi-py3 python3 -y

Step 4: Create a Python Application

创建一个简单的 Python web 应用程序来测试设置。首先为你的应用创建一个目录。

mkdir ~/myapp && cd ~/myapp

在这个目录中,创建一个名为 myapp.py 的文件,包含以下内容:

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

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

    return [output]

确保文件和目录属于正确的用户和组。以 Apache 用户“www-data”为例,用户的归属设置如下:

sudo chown -R www-data:www-data ~/myapp
sudo chmod o+x ~/myapp/myapp.py

Step 5: Configure Apache to Serve Your Python App

为 Python WSGI 应用程序创建一个 Apache 配置文件

sudo nano /etc/apache2/sites-available/myapp.conf

添加以下内容:

<VirtualHost *:80>
    ServerName myapp.local

    WSGIDaemonProcess myapp threads=5
    WSGIScriptAlias / /home/yourusername/myapp/myapp.py

    <Directory /home/yourusername/myapp>
        Require all granted
    </Directory>

    Alias /static /home/yourusername/myapp/static
    <Directory /home/yourusername/myapp/static/>
        Require all granted
    </Directory>
</VirtualHost>

注意:将 yourusername 替换为您的实际用户名。

启用新站点,禁用默认站点。

sudo a2ensite myapp
sudo a2dissite 000-default

启用 WSGI 模块并重启 Apache

sudo a2enmod wsgi
sudo systemctl restart apache2

Step 6: Test Your Application

编辑 /etc /hosts 文件,把 myApp.local 指向到服务器的 IP 地址,添加以下内容:

your_server_ip     myapp.local

your_server_ip 替换为服务器的 IP 地址,打开浏览器并访问:http://myapp.local

Displaying Page Content

我的开源项目

酷瓜云课堂-在线教育解决方案


鸠摩智首席音效师
472 声望9 粉丝

身强体健,龙精虎猛的活着。