uwsgi 无法打开 python 文件 /root/ ... /wsgi.py (DJANGO)

uwsgi failed to open python file /root/ ... /wsgi.py (DJANGO)

/var/log/uwsgi/myapp.log:

Tue Jan 11 15:27:45 2022 - *** Starting uWSGI 2.0.18-debian (64bit) on [Tue Jan 11 15:27:45 2022] ***

Tue Jan 11 15:27:45 2022 - compiled with version: 10.0.1 20200405 (experimental) [master revision 0be9efad938:fcb98e4978a:705510a708d3642c9c962beb663c476167e4e8a4] on 11 April 2020 11:15:55
Tue Jan 11 15:27:45 2022 - os: Linux-5.4.0-92-generic #103-Ubuntu SMP Fri Nov 26 16:13:00 UTC 2021
Tue Jan 11 15:27:45 2022 - nodename: 185-46-8-164.cloudvps.regruhosting.ru
Tue Jan 11 15:27:45 2022 - machine: x86_64
Tue Jan 11 15:27:45 2022 - clock source: unix
Tue Jan 11 15:27:45 2022 - pcre jit disabled
Tue Jan 11 15:27:45 2022 - detected number of CPU cores: 1
Tue Jan 11 15:27:45 2022 - current working directory: /
Tue Jan 11 15:27:45 2022 - detected binary path: /usr/bin/uwsgi-core
Tue Jan 11 15:27:45 2022 - chdir() to /root/eva/lawyer
Tue Jan 11 15:27:45 2022 - chdir(): Permission denied [core/uwsgi.c line 2623]
Tue Jan 11 15:27:45 2022 - VACUUM: pidfile removed.
Tue Jan 11 15:27:45 2022 - chdir(): Permission denied [core/uwsgi.c line 1647]
Tue Jan 11 15:27:45 2022 - *** Starting uWSGI 2.0.18-debian (64bit) on [Tue Jan 11 15:27:45 2022] ***
Tue Jan 11 15:27:45 2022 - compiled with version: 10.0.1 20200405 (experimental) [master revision 0be9efad938:fcb98e4978a:705510a708d3642c9c962beb663c476167e4e8a4] on 11 April 2020 11:15:55
Tue Jan 11 15:27:45 2022 - os: Linux-5.4.0-92-generic #103-Ubuntu SMP Fri Nov 26 16:13:00 UTC 2021
Tue Jan 11 15:27:45 2022 - nodename: 185-46-8-164.cloudvps.regruhosting.ru
Tue Jan 11 15:27:45 2022 - machine: x86_64
Tue Jan 11 15:27:45 2022 - clock source: unix
Tue Jan 11 15:27:45 2022 - pcre jit disabled
Tue Jan 11 15:27:45 2022 - detected number of CPU cores: 1
Tue Jan 11 15:27:45 2022 - current working directory: /
Tue Jan 11 15:27:45 2022 - writing pidfile to /run/uwsgi/app/myapp/pid
Tue Jan 11 15:27:45 2022 - detected binary path: /usr/bin/uwsgi-core
Tue Jan 11 15:27:45 2022 - chdir() to /root/eva/lawyer
Tue Jan 11 15:27:45 2022 - your processes number limit is 1831
Tue Jan 11 15:27:45 2022 - your memory page size is 4096 bytes
Tue Jan 11 15:27:45 2022 - detected max file descriptor number: 1024
Tue Jan 11 15:27:45 2022 - lock engine: pthread robust mutexes
Tue Jan 11 15:27:45 2022 - thunder lock: disabled (you can enable it with --thunder-lock)
Tue Jan 11 15:27:45 2022 - uwsgi socket 0 bound to UNIX address /run/uwsgi/app/myapp/socket fd 3
Tue Jan 11 15:27:45 2022 - setgid() to 33
Tue Jan 11 15:27:45 2022 - setuid() to 33
Tue Jan 11 15:27:45 2022 - Python version: 3.8.10 (default, Nov 26 2021, 20:14:08)  [GCC 9.3.0]
Tue Jan 11 15:27:45 2022 - Python main interpreter initialized at 0x55ae4c9e8c70
Tue Jan 11 15:27:45 2022 - python threads support enabled
Tue Jan 11 15:27:45 2022 - your server socket listen backlog is limited to 100 connections
Tue Jan 11 15:27:45 2022 - your mercy for graceful operations on workers is 60 seconds
Tue Jan 11 15:27:45 2022 - mapped 500256 bytes (488 KB) for 10 cores
Tue Jan 11 15:27:45 2022 - *** Operational MODE: preforking+threaded ***
Tue Jan 11 15:27:45 2022 - added /root/eva/venv/lib/python3.8/site-packages/ to pythonpath.
Tue Jan 11 15:27:45 2022 - failed to open python file /root/eva/lawyer/lawyer/wsgi.py

Tue Jan 11 15:27:45 2022 - unable to load app 0 (mountpoint='') (callable not found or import error)
Tue Jan 11 15:27:45 2022 - *** no app loaded. going in full dynamic mode ***
Tue Jan 11 15:27:45 2022 - *** uWSGI is running in multiple interpreter mode ***
Tue Jan 11 15:27:45 2022 - spawned uWSGI master process (pid: 28754)
Tue Jan 11 15:27:45 2022 - spawned uWSGI worker 1 (pid: 28759, cores: 2)
Tue Jan 11 15:27:45 2022 - spawned uWSGI worker 2 (pid: 28760, cores: 2)
Tue Jan 11 15:27:45 2022 - spawned uWSGI worker 3 (pid: 28761, cores: 2)
Tue Jan 11 15:27:45 2022 - spawned uWSGI worker 4 (pid: 28762, cores: 2)
Tue Jan 11 15:27:45 2022 - spawned uWSGI worker 5 (pid: 28763, cores: 2)

我不明白错误的原因:Tue Jan 11 15:27:45 2022 - 无法打开 python 文件 /root/eva/lawyer/lawyer/wsgi.py 我不明白为什么 uwsgi 可以' 打开这个 python 文件。路径是对的

myapp.ini:

[uwsgi]
chdir = /root/eva/lawyer
env = DJANGO_SETTINGS_MODULE= lawyer.settings
wsgi-file = /root/eva/lawyer/lawyer/wsgi.py
#module = lawyer.uwsgi:application
workers = 1
max-requests = 5000
#plugins-dir=/usr/lib/uwsgi/plugins/
plugins = python3
#virtualenv = /root/eva/venv
pythonpath = /root/eva/venv/lib/python3.8/site-packages
processes = 5
threads = 2
master = true
die-on-term = true
socket = /run/uwsgi/app/myapp/socket
chmod-socket = 666
vacuum = true
uid = www-data
gui = www-data

请告诉我,错误的原因可能是什么以及如何解决? 这似乎是一个容易解决的问题。但是在网上找不到相关资料

检查 Django 的文件权限 project.You 将您的 WSGI worker 配置为使用帐户 'www-data'。要么将其更改为有权访问目录和文件的帐户,要么更改文件权限。

您可以在目录中通过运行 ls -la验证文件权限。第三列显示所有者,第四列显示组。

-rwxrwxrwx 1 lbird lbird      548 Nov  3 11:52  default-soapui-workspace.xml
-rwxrwxrwx 1 lbird lbird  2785280 Jun  5  2021  ntuser.dat.LOG1
-rwxrwxrwx 1 lbird lbird  3256320 Jun  5  2021  ntuser.dat.LOG2
-rwxrwxrwx 1 lbird lbird       20 Jun  5  2021  ntuser.ini
-rwxrwxrwx 1 lbird lbird     8677 Nov  3 11:52  soapui-settings.xml

您可以在项目目录中通过运行 chown www-data:www-data ./*更改文件和文件夹的权限。

我不建议将文件保留在您的根目录中,应该对其进行保护。而是考虑将它们移动到 /var/www/var/app.

要验证它是否是权限问题,您可以更改您的 uWSGI 配置以使 uid 和 gid 成为根目录,但不要在生产设置中使用它。