通过 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运行,not在current
文件夹中:
指定的命令以 root 用户身份运行,并按名称按字母顺序处理。容器命令从暂存目录运行,您的源代码在部署到应用程序服务器之前被提取出来。
您可以尝试使用相对路径:
container_commands:
01addpermission:
command: "chmod -R 755 ./storage"
02clearcache:
command: "php . config:cache"
替代方法是使用postdeploy平台钩子,它会在你的应用部署后运行命令:
此处的文件在 Elastic Beanstalk 平台引擎部署应用程序和代理服务器
之后运行
【讨论】:
以上是关于通过 ebextentions 设置 laravel 存储目录权限的主要内容,如果未能解决你的问题,请参考以下文章