Gunicorn 错误 14:来源:未找到 NGINX

Gunicorn Error 14: source: not found NGINX

我正在做一个电子商务项目,它运行良好,直到我删除了旧的 web-backend 文件夹并上传了一个新的(我知道这是不正确的,我的 Github 该文件夹的目录并犯了很多错误,所以我不得不清理整个东西。)对于那个项目,我使用了 Django Rest Framework 和 Vue.js。我正在使用 supervisor 来管理 gunicorn 并在后台 运行 它。我使用的设置与另一个构建完全相同但工作正常的项目完全相同,但是当我尝试测试 ./gunicorn_start bash 脚本时,那个给了我错误。

错误说第 14 行源../venv/bin/activate 未找到。这很奇怪,因为我使用相同的配置、结构、nginx 设置,一切都与我的其他工作项目相同。

这与权限有关吗?如果不是,那可能是什么问题?我不明白,因为我的其他项目一切都一样,但工作正常。希望您能提供帮助。谢谢!

这是我的 gunicorn_start 脚本:

#!/bin/sh

NAME='ecologic'
DJANGODIR=/webapps/ecologic/web-backend
SOCKFILE=/webapps/ecologic/venv/run/gunicorn.sock
USER=ecologic
GROUP=webapps
NUM_WORKERS=3
DJANGO_SETTINGS_MODULE=core.settings
DJANGO_WSGI_MODULE=core.wsgi
TIMEOUT=120

cd $DJANGODIR
source ../venv/bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH

RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR

exec ../venv/bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--timeout $TIMEOUT \
--user=$USER --group=$GROUP \
--bind=unix:$SOCKFILE \
--log-level=debug \
--log-file=-    

./gunicorn_start
./gunicorn_start: 14: source: not found
[2021-12-28 11:10:14 -0500] [730777] [DEBUG] Current configuration:
  config: ./gunicorn.conf.py
  wsgi_app: None
  bind: ['unix:/webapps/ecologic/venv/run/gunicorn.sock']
[2021-12-28 11:10:14 -0500] [730777] [WARNING] Worker with pid 730781 was terminated due to signal 15
[2021-12-28 11:10:14 -0500] [730777] [WARNING] Worker with pid 730782 was terminated due to signal 15
[2021-12-28 11:10:14 -0500] [730777] [INFO] Shutting down: Master
[2021-12-28 11:10:14 -0500] [730777] [INFO] Reason: Worker failed to boot.

我找到了答案。问题是权限。解决它购买回到主文件夹并将所有权授予用户。在我的例子中是 chown -R ecologic:webapps 。 (不要忘记末尾的点,这将使用户拥有当前目录中所有文件夹的所有权)。