用Apache2在Django上运行

使用mod_wsgi守护模式。

    Ubuntu 19.04
sudo apt install apache2 libapache2-mod-wsgi-py3

端口设置

如果需要更改到80以外的端口,可以编辑/etc/apache2/ports.conf。

设置本地化参数

想要使用系统默认的UTF-8编码。

...
## Uncomment the following line to use the system default locale instead:
. /etc/default/locale # この行をコメント解除
...

编辑设置文件

假设您已将virtualenvwrapper的WORKON_HOME设置为~/venv/(在Ubuntu 19.04上安装Python的virtualenv和virtualenvwrapper)。

另外,假设Django项目文件夹位于~/PROJECT/。

<VirtualHost *:80>
    ServerName SERVERNAME

    Define user_name USERNAME
    Define project_name PROJECT
    Define venv_name VENV

    WSGIPassAuthorization On

    WSGIDaemonProcess ${project_name} python-home=/home/${user_name}/venv/${venv_name}/ python-path=/home/${user_name}/${project_name}/
    WSGIProcessGroup ${project_name}

    WSGIScriptAlias / /home/${user_name}/${project_name}/${project_name}/wsgi.py process-group=${project_name}

    <Directory /home/${user_name}/${project_name}/${project_name}/>
    <Files wsgi.py>
    Require all granted
    </Files>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

我将重新加载以使其生效。

sudo systemctl reload apache2
bannerAds