通过ebextentions设置Laravel存储目录权限

3
我正在开发弹性 beanstalk 扩展。每次部署时都会出现存储权限被拒绝的错误,我必须输入命令来解决这个问题。下面的代码(.extensions/chmod.config)是否能防止该错误的发生?
container_commands:
  01addpermission:
    command: "chmod -R 755 /var/app/current/storage"
  01clearcache:
    command: "php /var/app/current config:cache"

谢谢Marcin。你节省了我的时间。一个postdeploy平台钩子解决了这个问题。 - user8716887
(.ebextensions/chmod.config) container_commands: 01addpermission: command: "chmod +x .platform/hooks/postdeploy/artisan.sh" - user8716887
(.platform/hooks/postdeploy/artisan.sh) #!/bin/bash chmod -R 775 /var/www/html/storage php /var/www/html/artisan config:cache - user8716887
1个回答

2

很遗憾,代码无法运行。原因是当您的应用程序在 staging 文件夹中时,容器命令 才会运行,而不是在 current 文件夹中:

指定的命令以 root 用户身份运行,并按名称的字母顺序进行处理。容器命令是从部署到应用程序服务器之前提取源代码的 暂存目录 中运行的。

您可以尝试使用相对路径

container_commands:
  01addpermission:
    command: "chmod -R 755 ./storage"
  02clearcache:
    command: "php . config:cache"

另一种选择是使用 postdeploy 平台钩子,在应用程序部署后运行命令:

这里的文件会在 Elastic Beanstalk 平台引擎部署应用程序和代理服务器之后运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接