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

通过eExtensions设置laravel存储目录权限,laravel,amazon-web-services,amazon-elastic-beanstalk,ebextensions,laravel-artisan,Laravel,Amazon Web Services,Amazon Elastic Beanstalk,Ebextensions,Laravel Artisan,我正在研究弹性豆茎的扩展。每次部署时都会发生存储权限被拒绝错误,我必须键入命令才能解决此问题。下面的代码(.extensions/chmod.config)是否阻止了错误的发生 container_commands: 01addpermission: command: "chmod -R 755 /var/app/current/storage" 01clearcache: command: "php /var/app/current con

我正在研究弹性豆茎的扩展。每次部署时都会发生存储权限被拒绝错误,我必须键入命令才能解决此问题。下面的代码(.extensions/chmod.config)是否阻止了错误的发生

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

可悲的是,该代码将不起作用。原因是,当您的应用程序位于
staging
文件夹中,而不在
current
文件夹中时运行:

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

您可以尝试使用相对路径

container_commands:
  01addpermission:
    command: "chmod -R 755 ./storage"
  02clearcache:
    command: "php . config:cache"
备选方案是使用平台挂钩,在部署应用程序后运行命令:

此处的文件在弹性Beanstalk平台引擎部署应用程序和代理服务器后运行


谢谢你,马辛。你节省了我的时间。postdeploy平台钩子解决了这个问题。(.ebextensions/chmod.config)容器_命令: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