【问题标题】:Getting Permission denied when Running collectstatic in Django in ElasticBeanstalk在 ElasticBeanstalk 中的 Django 中运行 collectstatic 时获得权限被拒绝
【发布时间】:2020-11-03 17:57:56
【问题描述】:

运行以下命令时出现此错误:Permission denied: '/opt/python/bundle/4/app/staticfiles'

source /opt/python/current/env && python /opt/python/current/app/manage.py collectstatic --noinput

这是我的设置:

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'

【问题讨论】:

  • 您可以将其作为root 运行。 ssh 进入实例sudo su 时可以更改为root 用户吗?
  • 成功了!发生这种情况有什么原因吗?我记得之前将 django 应用程序部署到 EB 并且不需要以 root 身份运行命令
  • 您可以使用ls -la 检查文件夹权限。您想要的文件夹中的所有内容都将位于rootwsgi 下(至少在我的情况下)。如果您不介意我可以提供答案以供将来参考?
  • 是的,当然!

标签: django amazon-web-services amazon-elastic-beanstalk


【解决方案1】:

基于 cmets。

文件夹/opt/python/current 链接到/opt/python/bundle 中的文件夹之一。这些文件夹归root 拥有。

因此解决方案是使用 root 运行命令。

【讨论】:

  • 嗨@Marcin!我注意到,自从我在 collectstatic 命令之前开始使用sudo su 以来,每次部署都需要更长的时间。你知道会发生什么吗?
  • 我可能会将 staticfiles 文件夹权限更改为 wsgi,我认为这可以解决这个问题。您是否知道执行此操作的命令?
  • @Anatol chown -R wsgi.wsgi <folder> - 这会将 中每个文件和文件夹的所有者更改为用户 wsgi 和组 wsgi。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-03
  • 2018-07-10
  • 2018-07-28
  • 1970-01-01
  • 2021-01-21
  • 1970-01-01
相关资源
最近更新 更多