我的主目录中有 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 配置文件中以“/”结尾的项目文件夹路径,并解决了这个问题。