配置文件中的 Elastic Beanstalk 文件权限
Elastic Beanstalk file permissions inside the config file
我的 project.config 文件中有以下代码:
container_commands:
10_io_permissions:
command: |
cd /var/app/ondeck
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod -R g+w app/cache/
chmod -R g+w app/logs/
chmod -R g+w app/config/
chmod -R g+w media/files/
chmod -R g+w media/images/
chmod -R g+w translations/
chown -R webapp:webapp .
chmod -R 777 app/cache/
php app/console cache:clear --no-warmup -e prod
ignoreErrors: true
或在 files:
下定义的 post 部署脚本中的相同代码。现在,当我通过 ssh 进入服务器并查看文件权限和所有权时,一切正常,但问题是该应用程序无法运行,并出现以下错误:
Cache directory "/var/app/current/app/cache/prod" is not writable. - in file /var/app/current/vendor/symfony/class-loader/ClassCollectionLoader.php - at line 280
当我手动 运行 相同的命令时,我仍然注意到 ls -l
的权限和所有权与以前相同,相同的绿色 app/cache
目录和一切都相同,但我没有更多得到上述错误并且应用程序工作。
为什么会这样?为什么我必须手动执行它们?
也许可以将它作为一个钩子来尝试,并测试不同的 owner/groups?
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_change_permissions.sh":
mode: "000755"
owner: ec2-user
group: ec2-user
content: |
#!/bin/sh
cd /var/app/ondeck
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod -R g+w app/cache/
chmod -R g+w app/logs/
chmod -R g+w app/config/
chmod -R g+w media/files/
chmod -R g+w media/images/
chmod -R g+w translations/
chown -R webapp:webapp .
chmod -R 777 app/cache/
php app/console cache:clear --no-warmup -e prod
我的 project.config 文件中有以下代码:
container_commands:
10_io_permissions:
command: |
cd /var/app/ondeck
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod -R g+w app/cache/
chmod -R g+w app/logs/
chmod -R g+w app/config/
chmod -R g+w media/files/
chmod -R g+w media/images/
chmod -R g+w translations/
chown -R webapp:webapp .
chmod -R 777 app/cache/
php app/console cache:clear --no-warmup -e prod
ignoreErrors: true
或在 files:
下定义的 post 部署脚本中的相同代码。现在,当我通过 ssh 进入服务器并查看文件权限和所有权时,一切正常,但问题是该应用程序无法运行,并出现以下错误:
Cache directory "/var/app/current/app/cache/prod" is not writable. - in file /var/app/current/vendor/symfony/class-loader/ClassCollectionLoader.php - at line 280
当我手动 运行 相同的命令时,我仍然注意到 ls -l
的权限和所有权与以前相同,相同的绿色 app/cache
目录和一切都相同,但我没有更多得到上述错误并且应用程序工作。
为什么会这样?为什么我必须手动执行它们?
也许可以将它作为一个钩子来尝试,并测试不同的 owner/groups?
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_change_permissions.sh":
mode: "000755"
owner: ec2-user
group: ec2-user
content: |
#!/bin/sh
cd /var/app/ondeck
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod -R g+w app/cache/
chmod -R g+w app/logs/
chmod -R g+w app/config/
chmod -R g+w media/files/
chmod -R g+w media/images/
chmod -R g+w translations/
chown -R webapp:webapp .
chmod -R 777 app/cache/
php app/console cache:clear --no-warmup -e prod