我在 AWS 上使用 Elastic Beanstalk,并尝试覆盖 php.ini 文件中的某些设置。我创建了目录 /.ebextensions,其中包含 project.config:
files:
"/etc/php.d/project.ini" :
mode: "000644"
owner: ec2-user
group: ec2-user
content: |
date.timezone = "Europe/Berlin"
error_reporting = E_ALL & ~E_STRICT & ~E_NOTICE & ~E_WARNING
display_errors = Off
当我重新部署应用程序时,EBS 抛出以下错误:
The configuration file __MACOSX/gf/.ebextensions/._project.config in application version gf3 contains invalid YAML or JSON. YAML exception: unacceptable character '' (0x0) special characters are not allowed in "<reader>", position 0, JSON exception: Unexpected character () at position 0.. Update the configuration file.
我做错了什么?
更新:
__MACOSX/ 从档案中删除现在引发错误:
The configuration file gf/.ebextensions/project.config in application version gf4 contains invalid YAML or JSON. YAML exception: while scanning for the next token found character '\t' that cannot start any token in "<reader>", line 7, column 1: date.timezone = "Europe/Berlin" ^ , JSON exception: Unexpected character (f) at position 0.. Update the configuration file.
该文件似乎有问题,但我无法找出问题所在。
编辑:我需要从文件中删除几个制表符并用空格替换。这解决了这个问题,并给出了下面的答案。
答案1
你正在使用 Macintosh,并且你让隐藏__MACOSX
目录进入您的部署。这些文件是在您压缩目录以保存 OS X 特定资源分支时生成的,这些文件在任何其他操作系统上都是无用的。
如果您要使用zip
打包应用程序进行部署,则需要删除这些,最好使用git
、Capistrano 或一些真正适合部署软件的东西。