我该如何修复 nginx 上的 wsgi 中的“chdir():没有这样的文件或目录 [uwsgi.c 第 1723 行]”?

我该如何修复 nginx 上的 wsgi 中的“chdir():没有这样的文件或目录 [uwsgi.c 第 1723 行]”?

我的主目录中有 treeio 项目,现在我想在 nginx 服务器中运行该 treeio。treeio 已经可以在源代码附带的 Django 上独立运行。我不想在 Django 服务器上运行它,但我想在 nginx 服务器上运行它。我只是按照此处给出的步骤操作Karthik 的回答

但是,在执行或遵循该答案的第 4 步时,它会引发以下错误:

[uWSGI] getting INI configuration from uwsgi.ini
* Starting uWSGI 1.0.3-debian (32bit) on [Thu Jun 27 17:22:01 2013] *
compiled with version: 4.6.3 on 17 July 2012 02:24:04
current working directory: /home/rajesh/treeio
detected binary path: /usr/bin/uwsgi-core
chdir(): No such file or directory [uwsgi.c line 1723]

我的uwsgi.ini文件包含

[uwsgi] 
# set the http port
http = :8080

# change to django project directory
chdir = /home/treeio/

# add /var/www to the pythonpath, in this way we can use the project.app format
pythonpath = /var/www

# set the project settings name
env = DJANGO_SETTINGS_MODULE=treeio.settings

# load django
module = django.core.handlers.wsgi:WSGIHandler()

请帮助我在 nginx 服务器中部署 treeio。

答案1

chdir 错误消息表明它正在尝试获取一个不存在的目录。

从显示的输出可以看出,该目录要么是 ,/home/rajesh/treeio要么是/home/treeio/

鉴于该目录已配置为充当相关的 django 项目目录,它更有可能是;但该配置可能仅在您显示的/home/treeio/中指定。uwsgi.ini

因此,由于它/home/treeio/不必存在,因此很可能存在,从而存在权限问题。

答案2

一般提示

chdir(): No such file or directory

类型错误。

当错误消息显示“未找到文件”但没有告诉您其正在寻找什么文件时,这很烦人。 strace 可以提供帮助,它会打印所有系统调用。

尝试

strace uwsgi --ini uwsgi.ini

输出是神秘的,但在结尾的某处它应该告诉您缺少哪个目录。

在这种情况下可能是 /home/treeio/

答案3

我收到了相同的错误消息。我检查了 /var/log/uwsgi/app/ 中的错误日志文件 - django.log - 以及 /var/www/html/sites-enabled 配置文件中以“/”结尾的项目文件夹路径,并解决了这个问题。

相关内容