Я пытаюсь развернуть свой Django
проект на Apache
, но это очень сложно для меня. Я собираюсь объяснить, что я сделал в эти дни, и, возможно, вы увидите ошибку.
1. Аннотации:
Мой проект находится в james / DjangoRFV, и у меня нет виртуальной среды.
Я не уверен, важно ли это, но это django Проект находится на удаленном сервере, к которому я подключаюсь, используя s sh, в частности порт 2222. У меня есть IP-направление, например 172.33.52.8 (не реально).
2. Развертывание на apache:
Сначала я создаю файл виртуального хоста следующим образом:
<VirtualHost *:80>
ServerAdmin admin@DjangoRFV.localhost
ServerName DjangoRFV.localhost
ServerAlias www.DjangoRFV.localhost
DocumentRoot /home/james/DjangoRFV
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /static /home/james/DjangoRFV/static
<Directory /home/james/DjangoRFV/static>
Require all granted
</Directory>
Alias /static /home/james/DjangoRFV/media
<Directory /home/james/DjangoRFV/media>
Require all granted
</Directory>
<Directory /home/james/DjangoRFV/DjangoRFV>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess DjangoRFV python-path=/home/james/DjangoRFV python-home=/home/james/DjangoRFV/env
WSGIProcessGroup DjangoRFV
WSGIScriptAlias / /home/james/DjangoRFV/DjangoRFV/wsgi.py
</VirtualHost>
Теперь я включаю файл виртуального хоста.
cd /etc/apache2/sites-available
sudo a2ensite djangoRFV.conf
Некоторые разрешения
sudo ufw allow 'Apache Full'
Проверка синтаксических ошибок:
sudo apache2ctl configtest
3. Изменить wsgi.py:
import os, sys
#path a donde esta el manage.py de nuestro proyecto Django
sys.path.append(‘/home/james/DjangoRFV/’)
#referencia (en python) desde el path anterior al fichero settings.py
#Importante hacerlo así, si hay varias instancias coriendo (en lugar de setdefault)
os.environ[‘DJANGO_SETTINGS_MODULE’] = “DjangoRFV.settings”
#os.environ.setdefault(“DJANGO_SETTINGS_MODULE”, “DjangoRFV.settings”)
#prevenimos UnicodeEncodeError
os.environ.setdefault(“LANG”, “en_US.UTF-8”)
os.environ.setdefault(“LC_ALL”, “en_US.UTF-8”)
#activamos nuestro virtualenv
activate_this = ‘pathToVirtualenv/bin/activate_this.py’
execfile(activate_this, dict(__file__=activate_this))
#obtenemos la aplicación
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Если я напишу в своем домашнем компьютере направление 172.33.52.8:80
, появится следующее:
Таким образом, порт 80 правильно открыт. Но если я хочу получить доступ к проекту django, например, 172.33.52.8:80/admin
выглядит так:
Пожалуйста, мне нужна помощь, я полагаю, Я делаю много ошибок, но я действительно потерян. Кто-нибудь может мне помочь ??