DjangoをApache2で動かす


Using mod_wsgi daemon mode

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

ポートの設定

80以外のポートへの変更が必要なら/etc/apache2/ports.confを編集します

ロケールの設定

システムデフォルトのUTF-8を使いたい

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

設定ファイルの編集

virtualenvwapperのWORKON_HOME~/venv/に設定しているとします(Ubuntu 19.04でPythonのvirtualenv、virtualenvwrapperのインストール

また、djangoのプロジェクトフォルダが~/PROJECT/であるとします

/etc/apache2/sites-available/000-default.conf
<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