弹性 beantalk 上的 wsgi 用户权限

Posted

技术标签:

【中文标题】弹性 beantalk 上的 wsgi 用户权限【英文标题】:wsgi user permissions on elastic beanstalk 【发布时间】:2017-08-21 16:55:00 【问题描述】:

我正在使用弹性 beanstalk 和 django。我的 requirements.txt 文件中的一个依赖项有一些设置,它在最初导入时执行。设置的一部分是检查目录是否存在,否则它会创建它。我收到权限错误,因为用户(我假设它是 wsgi)没有创建目录的权限。

OSError: [Errno 13] Permission denied: '/home/wsgi/.newspaper_scraper/memoized'

如何设置权限以允许以一种在我将来创建的实例中持久存在的方式创建这些目录?

【问题讨论】:

你能粘贴你的requirements.txt吗? 通过提到要求,我可能对这个问题的措辞有点奇怪。这是我提到的第 3 方包中的设置文件。 github.com/codelucas/newspaper/blob/master/newspaper/… 【参考方案1】:

发生这种情况是因为 uWSGI 工作器在具有有限权限的用户下运行。您需要先创建.newspaper_scraper/memoized 目录,并为其设置正确的权限(允许其他人读/写)。您可以在部署时执行此操作,方法是在 .ebextensions 中创建一个 EB 在部署时执行的脚本。

.ebextensions/setup_newspaper.config 中创建一个文件,并在其中添加以下内容:

.ebextensions/setup_newspaper.config

packages:
  yum:
    libxslt-devel: []
    libxml2-devel: []
    libjpeg-devel: []
    zlib1g-devel: []
    libpng12-devel: []

container_commands:
  01_setup_newspaper:
    command: mkdir -p /home/wsgi/.newspaper_scraper/memoized && chmod 644 /home/wsgi/.newspaper_scraper/memoized

PS:看起来newspaper 需要安装一些额外的包,所以我也添加了它们。


在此处阅读有关 .ebextensions 的更多信息:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-container.html#create-deploy-python-custom-container

【讨论】:

以上是关于弹性 beantalk 上的 wsgi 用户权限的主要内容,如果未能解决你的问题,请参考以下文章

弹性 beantalk 检索 S3 文件时权限被拒绝

aws弹性beantalk上的nginx扩展

AWS 弹性 beantalk 上的 postgraphile 出现 408 超时错误

弹性beantalk上的spring boot应用程序-健康检查失败

如何修复弹性beantalk实例上的“使用这些代码失败的健康检查:”?

AWS弹性beantalk上的预定http调用