#django #http-status-code-403 #plesk
Вопрос:
Я следил за учебником по udemy для python, и я предполагаю, что я разверну приложение django. Поскольку у меня уже был vps, я не использовал решение в учебнике с использованием google cloud, поэтому попытался настроить приложение на своем vps, которое также работает под управлением plesk.
Следовал учебнику по https://www.plesk.com/blog/tag/django-plesk/ в письме все, что я мог, но продолжаю получать ошибку 403.
httpdocs
-djangoProject
---djangoProject
------asgi.py
------__init__.py
------settings.py
------urls.py
------wsgi.py
---manage.py
-passenger_wsgi.py
-python-app-venv
-tmp
passenger_wsgi.py:
import sys, os
ApplicationDirectory = 'djangoProject'
ApplicationName = 'djangoProject'
VirtualEnvDirectory = 'python-app-venv'
VirtualEnv = os.path.join(os.getcwd(), VirtualEnvDirectory, 'bin', 'python')
if sys.executable != VirtualEnv: os.execl(VirtualEnv, VirtualEnv, *sys.argv)
sys.path.insert(0, os.path.join(os.getcwd(), ApplicationDirectory))
sys.path.insert(0, os.path.join(os.getcwd(), ApplicationDirectory, ApplicationName))
sys.path.insert(0, os.path.join(os.getcwd(), VirtualEnvDirectory, 'bin'))
os.chdir(os.path.join(os.getcwd(), ApplicationDirectory))
os.environ.setdefault('DJANGO_SETTINGS_MODULE', ApplicationName '.settings')
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
пассажир включен в
«Инструменты и настройки > Веб-сервер Apache»
в разделе «Веб-сайты и домены > Домен >> Хостинг и DNS >>> Настройки Apache и nginx» у меня есть:
«Дополнительные директивы для HTTP» и «Дополнительные директивы для HTTPS», как с:
PassengerEnabled On
PassengerAppType wsgi
PassengerStartupFile passenger_wsgi.py
и режим прокси-сервера nginx отмечен
«Обратный прокси-сервер (nginx)» также запущен
Понятия не имею, что еще я могу дать, чтобы помочь в поиске решения, поэтому, если вы готовы помочь и вам нужна дополнительная информация, пожалуйста, дайте мне знать.
Заранее очень благодарен
Редактировать:
при предыдущей попытке развертывания реального приложения на поддомене получалось:
[Чт 01 апреля 22:52:37.928495 2021] [автоиндекс:ошибка] [pid 23614:tid 140423896925952] [клиент xx:xx:xx:xx:0] AH01276: Не удается обслуживать каталог /var/www/vhosts/baya.pt/леве/леве/: Нет соответствующего DirectoryIndex (index.html,индекс.cgi,index.pl,index.php,индекс.xhtml,index.htm,index.shtml) найден, и созданный сервером индекс каталога запрещен директивой Options
На этот раз я не регистрирую ошибок
ПРАВКА2:
@Крис:
Не уверен, что вы имеете в виду, не находите ошибок в папках журналов (ssh), но на Plesk я получаю это несколько раз:
2021-04-01 23:40:48 ошибка 94.61.142.214 403 получать / НТТР/1.0 https://baya.pt/ ниже Mozilla/5.0 (X11 для; Linux на архитектуру x86_64) AppleWebKit/537.36 (от KHTML, как геккон) хромовое/89.0.4389.114 сафари/537.36 2.52 к Apache с поддержкой SSL/TLS доступа 2021-04-01 23:40:48 ошибка 94.61.142.214 AH01276: невозможно обслуживать каталог /var/www в папке/vhosts/бая.ст/httpdocs/djangoProject/: нет соответствующего DirectoryIndex (index.html индекс.компьютерная анимация index.pl,index.php индекс.в XHTML,index.htm индекс.штмл) нашли, и сервер автоматически каталогов Индекс запрещенных директивой варианты, реферер: https://baya.pt/ Апач об ошибке
ПРАВКА 3:
удаление директив apache и добавление в директивы nginx:
passenger_enabled on;
passenger_app_type wsgi;
passenger_startup_file passenger_wsgi.py;
Теперь выдает мне страницу с ошибкой пассажира, войдите в систему следующим образом:
[ N 2021-04-01 23:50:59.1819 908/T9 age/Cor/CoreMain.cpp:671 ]: Signal received. Gracefully shutting down... (send signal 2 more time(s) to force shutdown)
[ N 2021-04-01 23:50:59.1819 908/T1 age/Cor/CoreMain.cpp:1246 ]: Received command to shutdown gracefully. Waiting until all clients have disconnected...
[ N 2021-04-01 23:50:59.1820 908/Tb Ser/Server.h:902 ]: [ApiServer] Freed 0 spare client objects
[ N 2021-04-01 23:50:59.1820 908/Tb Ser/Server.h:558 ]: [ApiServer] Shutdown finished
[ N 2021-04-01 23:50:59.1820 908/T9 Ser/Server.h:902 ]: [ServerThr.1] Freed 0 spare client objects
[ N 2021-04-01 23:50:59.1820 908/T9 Ser/Server.h:558 ]: [ServerThr.1] Shutdown finished
[ N 2021-04-01 23:50:59.2765 30199/T1 age/Wat/WatchdogMain.cpp:1373 ]: Starting Passenger watchdog...
[ N 2021-04-01 23:50:59.2871 908/T1 age/Cor/CoreMain.cpp:1325 ]: Passenger core shutdown finished
[ N 2021-04-01 23:50:59.3329 30209/T1 age/Cor/CoreMain.cpp:1340 ]: Starting Passenger core...
[ N 2021-04-01 23:50:59.3330 30209/T1 age/Cor/CoreMain.cpp:256 ]: Passenger core running in multi-application mode.
[ N 2021-04-01 23:50:59.3472 30209/T1 age/Cor/CoreMain.cpp:1015 ]: Passenger core online, PID 30209
[ N 2021-04-01 23:51:01.4339 30209/T7 age/Cor/SecurityUpdateChecker.h:519 ]: Security update check: no update found (next check in 24 hours)
App 31762 output: Error: Directory '/var/www/vhosts/baya.pt' is inaccessible because of a filesystem permission error.
[ E 2021-04-01 23:51:02.9127 30209/Tc age/Cor/App/Implementation.cpp:221 ]: Could not spawn process for application /var/www/vhosts/baya.pt/httpdocs: Directory '/var/www/vhosts/baya.pt' is inaccessible because of a filesystem permission error.
Комментарии:
1. Можете ли вы опубликовать последнюю половину страницы stderr.log из папки приложения?
2. @Крис: 2-я правка в главном посте для вас, извините, не думаю, что я получил именно то, что вы хотели
3. @Крис: кажется, я добавил директивы в nginx, удалил режим прокси и чоун passenger_wsgi.py для nginx, по крайней мере, я получаю страницу django сейчас =)
Ответ №1:
Думаю, у меня все получилось:
Добавлены директивы в nginx, удален режим прокси и чаун passenger_wsgi.py в nginx
по крайней мере, теперь я получаю страницу django =)
Комментарии:
1. Вам, вероятно, следует попробовать nginx:nginx /var/www/vhosts/baya.pt
2. @Крис: спасибо тебе! Хотя ваш предыдущий комментарий не дал мне решения, он дал толчок моим рассуждениям. Никогда раньше не использовал nginx, поэтому даже не думал о поиске его журналов, так как я действительно даже не думал, что он используется. Будет общаться с ним от приложения к приложению. Спасибо, сэр!
Ответ №2:
Я потратил несколько дней на реализацию этого процесса и, наконец, нашел то, что нужно было изменить. Итак, я делюсь своими выводами и надеюсь, что это также поможет вам.
После пошагового завершения процесса я получил сообщение об ошибке:
Нет соответствующего директораиндекса (index.html,индекс.cgi,index.pl,index.php,индекс.xhtml,index.htm,index.shtml) найден, и созданный сервером индекс каталога запрещен директивой Options
Итак, я снял флажок с режима прокси, чтобы переключиться на nginx вместо apache. На этот раз пассажир Phusion загружал страницу, но он говорил, что что-то не так. Это не сказало мне, что было не так. Поэтому я сделал следующее:
cd /etc/nginx/conf.d/
директивы касания.conf
vi /etc/nginx/conf.d/директивы.conf
открылся текстовый редактор, и я набрал:
разработка passenger_app_env;
На этот раз, когда я попытался открыть свой веб-сайт, пассажир показал мне сведения об ошибке, из которых я понял, что было не так.
На шаге 6 вместо использования команды $ vi ~/httpdocs/passenger_wsgi.py, просто создайте файл на своем компьютере, скопируйте в него содержимое, сохраните его на локальном компьютере, а затем вручную загрузите его на сервер. Не используйте командную строку!!!
Это оно. теперь мой сайт Django запущен и работает.