Задать вопрос
@Dato38it

Можно ли по умолчанию настроить сервер так, чтоб домен запускал страницу django, а не страницу веб-сервера apache?

Привет.
У меня задача сделать так чтоб хост 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 и домен куплен там же.
  • Вопрос задан
  • 118 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@Dato38it Автор вопроса
<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=/var/www/thost/pyenv
    WSGIProcessGroup dato138it
    WSGIScriptAlias / /var/www/thost/dato138it/wsgi.py
</VirtualHost>


не знаю почему, но с такой конфигурацией заработал сайт dato138it.ru python-home поправил и перенес его в папку..... в этом ли было дело???
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Hivemaster
@Hivemaster
Админ, который хочет программировать
Это невозможно, Django же ни где ни у кого не работает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы