Как установить файл apache2.conf для проекта django? - PullRequest
0 голосов
/ 21 декабря 2018

Сейчас я развертываю тестовый проект django на aws-ec2, а AMI - Ubuntu18.04 с Python 3.6, Django 2.1, Apache2.

Проект находится в / var / www / Project, и я пытаюсь добавить параметр в apache.conf.

Проект просто сгенерирован django-admin startproject Project, и я хочу сделатьубедитесь, что при попадании на общедоступный IP-адрес, предоставленный экземпляром, он должен отобразить страницу по умолчанию в django.

WSGIDaemonProcess ubuntu  processes=2 threads=12 python-path=/var/www/Project
WSGIProcessGroup ubuntu
WSGIRestrictEmbedded On
WSGILazyInitialization On
WSGIScriptAlias / /var/www/Project/Project/wsgi.py

<Directory /var/www/Project/Project>
    Require all granted
</Directory>

Теперь я получил внутреннюю ошибку сервера.

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at webmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Я пробовал это ранее.И похоже, что это работает только когда я использую python2.7 с django 1.11.

WSGIScriptAlias / /var/www/Project/Project/wsgi.py

WSGIPythonPath /var/www/Project

<Directory /var/www/Project/Project>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

что не так с моим файлом conf?

1 Ответ

0 голосов
/ 24 декабря 2018

Я наконец придумаю следующее решение.

Если вы используете Apache2, Python2 и Ubuntu18.04 LTS, вы можете изменить файл apache2.conf, добавив следующее:

WSGIScriptAlias / [path_to_wsgi.py]

WSGIPythonPath [path_to_project]

<Directory [path_to_project]>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

Если вы хотите использовать последнюю версию Django 2+ version, измените /etc/apache2/sites-available/000-default.conf, который является настройками для порта HTTP 80. (Файл 000-default.conf не может содержать WSGIPythonPath в virtualhost)

<VirtualHost *:80>
ServerAdmin webmaster@localhost
Alias /static [path_to_static_folder]

<Directory [path_to_static_folder]>
Require all granted
</Directory>

<Directory [path_to_project]>
<Files wsgi.py>
    Require all granted
</Files>
</Directory>

WSGIDaemonProcess [name] python-home=[path_to_virtualenv] python-path=[path_to_project]
WSGIProcessGroup [name]
WSGIScriptAlias / [path_to_project_wsgi.py]

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

</VirtualHost>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...