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

VPS部署Django项目时SECRET_KEY加载失败该如何解决?

服务器端Django SECRET_KEY配置方案

1. 手动在VPS创建.env文件

  • 进入VPS中Django项目的根目录(和本地.env存放路径保持同级,一般是和manage.py同目录)
  • 新建.env文件,写入和本地格式完全一致的配置内容,示例:
SECRET_KEY=你本地使用的实际SECRET_KEY值
# 其他你存到.env的敏感配置,比如数据库密码、第三方API密钥也同步写在这里
  • 调整文件权限,避免泄露:执行chmod 600 .env,仅允许运行Django进程的系统用户读写该文件。

2. 修正settings.py的环境变量加载逻辑

很多时候找不到.env是因为相对路径适配问题,建议用绝对路径定位.env文件,如果你使用python-dotenv加载配置,参考写法:

import os
from pathlib import Path
from dotenv import load_dotenv

BASE_DIR = Path(__file__).resolve().parent.parent
# 明确指定加载根目录下的.env文件
load_dotenv(BASE_DIR / ".env")

SECRET_KEY = os.getenv("SECRET_KEY")

3. 替代方案:直接配置系统/进程环境变量

你也可以不用.env文件,直接把SECRET_KEY注入到Django运行进程的环境变量中,安全性更高:

  • 如果你用systemd管理Django服务,在.service配置文件的[Service]段添加配置:Environment="SECRET_KEY=你的实际密钥值"
  • 如果你用Gunicorn/uWSGI启动,可在启动命令前加环境变量:SECRET_KEY=你的实际密钥值 gunicorn 项目名.wsgi
  • 如果你用Docker部署,直接在docker-compose.yml的environment段配置SECRET_KEY即可

4. 验证配置是否生效

在项目根目录执行python manage.py shell,输入以下代码确认能正常读取到SECRET_KEY:

from django.conf import settings
print(settings.SECRET_KEY)

如果能正常输出你设置的密钥值,重启Django进程即可恢复正常运行。

内容的提问来源于stack exchange,提问作者Osama Radwan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:54:05