如何解决为什么在 plesk 尝试运行 Django 时出现 403 错误
一直在关注关于 udemy for python 的教程,我想在 atm 上部署一个 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,ApplicationDirectory,ApplicationName))
sys.path.insert(0,'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 Web 服务器”
在“网站与域>域>托管与DNS>Apache与nginx设置”中:
“HTTP 附加指令”和“HTTPS 附加指令”均包含:
PassengerEnabled On
PassengerAppType wsgi
PassengerStartupFile passenger_wsgi.py
和nginx代理模式标记
“反向代理服务器(nginx)”也在运行
不知道我还能提供什么来帮助获得解决方案,所以如果您愿意提供帮助并需要更多信息,请告诉我。
非常感谢提前
编辑:
在之前的尝试中,在子域上部署一个真正的应用程序,得到:
[Thu Apr 01 22:52:37.928495 2021] [autoindex:error] [pid 23614:tid 140423896925952] [客户端 xx:xx:xx:xx:0] AH01276:无法提供服务 目录/var/www/vhosts/baya.pt/leve/leve/:没有匹配 目录索引 (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm,index.shtml) 找到,并且选项禁止服务器生成的目录索引 指令
这次我没有记录任何错误
编辑 2:
@克里斯:
不确定您的意思,在日志文件夹 (ssh) 上没有发现错误,但在 Plesk 上我多次收到此信息:
2021-04-01 23:40:48 错误 94.61.142.214 403 GET / HTTP/1.0 https://baya.pt/ Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/89.0.4389.114 Safari/537.36 2.52 K Apache SSL/TLS 访问 2021-04-01 23:40:48 错误 94.61.142.214 AH01276:无法提供目录 /var/www/vhosts/baya.pt/httpdocs/djangoProject/:没有匹配项 目录索引 (index.html,index.shtml) 找到,并且选项禁止服务器生成的目录索引 指令,引用者:https://baya.pt/ Apache 错误
编辑 3:
删除 apache 指令并添加到 nginx 指令:
passenger_enabled on;
passenger_app_type wsgi;
passenger_startup_file passenger_wsgi.py;
现在给我一个Passenger错误页面,记录如下:
[ 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.
解决方法
认为我明白了:
向nginx添加指令,移除代理模式,并将passenger_wsgi.py添加到nginx
至少我现在得到了一个 django 页面 =)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。