我正在学习Django,并一直在努力遵循这里的教程:https://www.youtube.com/watch?v=Sa_kQheCnds&list=PL-osiE80TeToQCKZ03TU5fNfx2UY6U4p&索引=14这是一个PythonDjango应用程序,应该在Linode服务器上的Ubuntu上的Apache引擎上运行。
然而,我无法让生产工作。当我在Django服务器上通过0.0.0.0:8000端口运行应用程序时,它工作了,当我到达根据视频一切都应该工作的地步时,通过HTTP80端口,它给了我403个错误,说";您没有访问此资源的权限">
我看过一些类似的帖子,但它们并没有帮助解决我的问题,或者我不明白我应该如何应用解决方案。
如何检查导致此问题的原因?我可以提供代码的哪些部分来帮助解决它?
我解决了它:
这是Apache 2的错误:
[Sun Sep 11 06:50:44.649753 2022] [wsgi:warn] [pid 76958:tid 139964959332224] (13)Permission de>
Python path configuration:
PYTHONHOME = '/home/<user>/<project name>/venv'
PYTHONPATH = (not set)
program name = 'python3'
isolated = 0
environment = 1
user site = 1
import site = 1
sys._base_executable = '/usr/bin/python3'
sys.base_prefix = '/home/<user>/<project name>/venv'
sys.base_exec_prefix = '/home/<user>/<project name>/venv'
sys.platlibdir = 'lib'
sys.executable = '/usr/bin/python3'
sys.prefix = '/home/<user>/<project name>/venv'
sys.exec_prefix = '/home/<user>/<project name>/venv'
sys.path = [
'/home/<user>/<project name>/venv/lib/python310.zip',
'/home/<user>/<project name>/venv/lib/python3.10',
'/home/<user>/<project name>/venv/lib/python3.10/lib-dynload',
]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'
Current thread 0x00007f4c21ae9780 (most recent call first):
<no Python frame>
根据该帖子,在错误消息之后:https://www.linode.com/community/questions/22951/no-python-frame-error-while-trying-to-connect-to-apache-on-mod_wsgi-in-ubuntu
我已经在我的项目文件夹上设置了755个权限:
sudo chmod 755 /home/<user>
现在我又遇到了一个错误,但至少我在这里发布的403初始错误已经解决了。