我最近转用了 Amazon 的 Elastic Beanstalk,它非常棒,但我有一个问题无法修复或找到合适的解决方案。
通过 GIT 部署时 $ git aws.push
我的文件已部署,但我的所有文件夹和文件都没有正确的权限。当前运行带有 xampp 的 Win 8 以进行本地开发。例如,在最近的 WordPress 部署中,一旦部署到 beantlak,我所有的文件夹都是 777。它也是文件所在的 NTFS 分区。
通过 SSH 登录并运行非常简单:
$ sudo su
$ find /var/www/html/ -type d -exec chmod 755 {} \;
$ find /var/www/html/ -type f -exec chmod 644 {} \;
不过,我宁愿在上传之前修复我的权限,但我认为这在 Windows 中是不可能的。我确信我可以设置一个脚本或某种类型的服务 Hook 来在部署时运行它们,但我希望有一种更简单的方法。
SO 社区对设置 Windows 文件权限以匹配 Apache 的任何见解?
最佳答案
在您的代码被提取到您的实例之后但在它被视为“已部署”之前,设置一个钩子(Hook)来修复权限实际上并不难。您可以创建一个名为 .ebextensions/00permissions.conifg
的文件,名称并不重要,只要它位于扩展名为 .config
的正确文件夹中即可 - 配置脚本按字母顺序执行。内容如下:
container_commands:
00fix_permissions_dirs:
command: "find . -type d -exec chmod 755 {} \;"
ignoreErrors: true
01fix_permissions_files:
command: "find . -type f -exec chmod 644 {} \;"
ignoreErrors: true
请注意,container_command
的默认目录是部署文件已提取到的目录,因此无需设置显式路径。
您可以查看有关 kinds of commands you can run on your instances 的更多信息在 Elastic Beanstalk 文档中。
关于php - Windows:在部署到 Amazon Beanstalk 之前设置 PHP 文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15547516/