You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

远程Ubuntu服务器Gunicorn找不到工作目录的解决求助(Django+Nginx)

修复Gunicorn工作目录找不到的问题

以下是针对性的排查和修复步骤:

1. 确认工作目录真实存在

首先用命令彻底验证路径是否正确,避免复制时的隐藏字符或拼写错误:

ls -ld /home/ubuntu/project

如果输出提示No such file or directory,说明目录不存在,需创建该目录或修正配置中的路径。

2. 验证root用户对目录的访问权限

虽然root是超级用户,但仍可能因父目录权限或ACLs限制无法访问:

sudo -u root cd /home/ubuntu/project && echo "目录访问正常"

如果报错,调整目录及父目录的权限:

sudo chmod 755 /home/ubuntu
sudo chmod 755 /home/ubuntu/project

若存在ACL限制,可查看并清除异常规则:

getfacl /home/ubuntu/project
sudo setfacl -b /home/ubuntu/project

3. 排查配置文件中的隐藏字符

复制粘贴的配置可能包含不可见的特殊字符(如Windows换行符^M),导致路径识别错误:

cat -A /etc/systemd/system/gunicorn.service

检查WorkingDirectory行末尾,若有^M或其他异常字符,手动编辑配置文件删除这些字符,重新输入路径。

4. 修正Gunicorn启动命令(可选)

若工作目录问题仍无法解决,可在ExecStart中直接指定工作目录和WSGI文件的绝对路径,绕过WorkingDirectory配置:
修改gunicorn.service的[Service]段:

[Service]
User=root
Group=www-data
ExecStart=/home/ubuntu/project/env/bin/gunicorn --workers 3 --bind unix:/run/gunicorn.sock --chdir /home/ubuntu/project project.wsgi:application

或者直接使用WSGI文件的绝对路径:

ExecStart=/home/ubuntu/project/env/bin/gunicorn --workers 3 --bind unix:/run/gunicorn.sock /home/ubuntu/project/project/wsgi.py:application

5. 重新加载配置并重启服务

每次修改配置后必须重新加载systemd配置,再重启服务:

sudo systemctl daemon-reload
sudo systemctl restart gunicorn.service

随后用实时日志验证是否修复:

sudo journalctl -u gunicorn.service -f

内容的提问来源于stack exchange,提问作者Khqy Op

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 13:31:23