Почему при попытке запустить Django на plesk появляется ошибка 403

#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 запущен и работает.