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

Posted

技术标签:

【中文标题】通过 ebextentions 设置 laravel 存储目录权限【英文标题】:Setting a laravel storage directory permission by ebextentions 【发布时间】:2020-11-18 20:11:30 【问题描述】:

我正在开发弹性豆茎扩展。每次部署都会发生存储权限被拒绝错误,我必须输入命令来解决该问题。下面的代码(.extensions/chmod.config)是否防止错误发生?

container_commands:
  01addpermission:
    command: "chmod -R 755 /var/app/current/storage"
  01clearcache:
    command: "php /var/app/current config:cache"

【问题讨论】:

谢谢马尔辛。你节省了我的时间。一个部署后平台挂钩在这种情况下工作。 (.ebextensions/chmod.config) container_commands: 01addpermission: command: "chmod +x .platform/hooks/postdeploy/artisan.sh" (.platform/hooks/postdeploy/artisan.sh) #!/bin/bash chmod -R 775 /var/www/html/storage php /var/www/html/artisan config:cache 【参考方案1】:

遗憾的是,该代码无法正常工作。原因是当你的应用在staging文件夹中时container commands运行,notcurrent文件夹中:

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

您可以尝试使用相对路径

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

替代方法是使用postdeploy平台钩子,它会在你的应用部署后运行命令:

此处的文件 Elastic Beanstalk 平台引擎部署应用程序和代理服务器

之后运行

【讨论】:

以上是关于通过 ebextentions 设置 laravel 存储目录权限的主要内容,如果未能解决你的问题,请参考以下文章

手把手教你跑 Larave 框架实战笔记系列之一

laraver6-数据填充

laraval join 的理解

Laraver 框架资料

Laraval环境搭建

larave学习笔记1-安装配置