弹性 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 用户权限的主要内容,如果未能解决你的问题,请参考以下文章
AWS 弹性 beantalk 上的 postgraphile 出现 408 超时错误
弹性beantalk上的spring boot应用程序-健康检查失败