Привет.
У меня задача сделать так чтоб хост
dato138it.ru или
http://dato138it.ru:80 запускал страницу из django проекта.
Вопрос можно ли по умолчанию настроить сервер так, чтоб домен запускал страницу django, а не страницу веб-сервера apache?
Да. Я нашел статью для решения данной проблемы:
how-to-install-django-with-apache-on-ubuntu-22-04. но столкнулся с ошибкой 504. Вот как это получилось:
root@thost:# apt install libapache2-mod-wsgi-py3
root@thost:# systemctl restart apache2
root@thost:# systemctl status apache2
root@thost:# cp -r /home/dato/dato138it /var/www/thost/
root@thost:# cat /var/www/thost/dato138it/settings.py
...
from pathlib import Path
import os
...
ALLOWED_HOSTS = ['188.225.34.21', 'dato138it.ru']
...
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/5.0/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
...
MEDIA_URL = "/media/"
MEDIA_ROOT = BASE_DIR / "media/"
#MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
...
root@thost:# cat /etc/apache2/sites-available/thost.conf
<VirtualHost *:80>
ServerName thost
ServerAlias www.thost
ServerAdmin webmaster@localhost
DocumentRoot /var/www/thost
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
root@thost:# vim /etc/apache2/sites-available/thost.conf
root@thost:# cat /etc/apache2/sites-available/thost.conf
<VirtualHost *:80>
ServerAdmin admin@dato138it.ru
ServerName dato138it.ru
ServerAlias www.dato138it.ru
DocumentRoot /var/www/thost
ErrorLog ${APACHE_LOG_DIR}/dato138it.ru_error.log
CustomLog ${APACHE_LOG_DIR}/dato138it.ru_access.log combined
Alias /static /var/www/thost/static
<Directory /var/www/thost/static>
Require all granted
</Directory>
Alias /media /var/www/thost/media
<Directory /var/www/thost/media>
Require all granted
</Directory>
<Directory /var/www/thost/dato138it>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess dato138it python-path=/var/www/thost python-home=/home/dato/pyenv/
WSGIProcessGroup dato138it
WSGIScriptAlias / /var/www/thost/dato138it/wsgi.py
</VirtualHost>
root@thost:# a2ensite thost.conf
root@thost:# systemctl restart apache2
root@thost:# systemctl reload apache2
root@thost:# google-chrome http://dato138it.ru:80
504 Gateway Timeout
Gateway Timeout
The gateway did not receive a timely response from the upstream server or application.
Apache/2.4.52 (Ubuntu) Server at dato138it.ru Port 80
Что я сделал не так? и вообще возможно ли по умолчанию настроить сервер так, чтоб домен запускал страницу django, а не страницу веб-сервера apache? и даже если я настроил конфиг веб-сервера, надо ли запускать команду? Может я просто не правильно запускаю проект?
root@thost:# python3 /var/www/thost/manage.py runserver dato138it.ru:8000
Изначально
http://dato138it.ru:80 запускал страницу из проекта веб-сервера Lamp. также он открывает страницу
dato138it.ru/phpmyadmin без проблем. сейчас нету нужды в этом проекте, так как разработал проект на django и чтоб ее запустить на браузере приходилось писать так
root@thost:# python3 /var/www/thost/manage.py runserver dato138it.ru:8000
root@thost:# google-chrome http://dato138it.ru:8000
Веб-сервер развернут в облачном сервере Ubuntu 22/04 timeweb.cloud и домен куплен там же.