[英]installing PHP module from Elastic Beanstalk
我正在嘗試配置我的AWS Elastic Beanstalk以使用mongo,我需要做的就是為PHP安裝mongo驅動程序並更新php.ini文件
要做到這一點,通常我會進入EC2並運行:
sudo pecl install mongo
但這需要使用自定義AMI,這不是最好的方法。
最好使用配置文件來安裝標准AMI所需的軟件。
所以要做到這一點,我已經完成了以下工作:創建目錄.ebextensions創建文件mongo.config
在其中我提出以下內容:
packages:
pecl: install mongo
但是在部署時,我收到以下錯誤:
"option_settings" in one of the configuration files failed validation. More details to follow.
和
'null' values are not allowed in templates
所以我想知道如何配置這個配置文件以安裝mongo擴展?
我在這里閱讀了這些信息: http : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html
但我不太了解如何完成這項具體任務
感謝幫助,謝謝! :)
pecl
不是Amazon Linux上的有效包管理器,因此不能在.ebextensions
配置的packages
鍵下使用。
要安裝PECL包,只需在commands
鍵下添加一個commands
。 為避免Beanstalk嘗試在后續部署中安裝兩次擴展,請在test
密鑰中添加一個PHP控制台命令,以檢查是否已安裝擴展:
commands:
install_mongo_driver:
command: pecl install mongo
test: "php -r \"exit(extension_loaded('mongo') ? 1 : 0);\""
如果test
結果為true
,即exit(0)
,則執行command
- 否則不執行。 請注意,退出代碼0
表示shell上下文中的“無錯誤”。
我已經弄清楚了,並認為我會分享我發現的東西。 感謝Hudku( http://blog.hudku.com/2013/02/innocuous-looking-evil-devil.html#elastic-beanstalk.config )的優秀文章:
1)創建myapp.config 2)在其中輸入以下內容
packages:
yum:
dos2unix: []
container_commands:
01-command:
command: rm -rf /myapp/ebextensions
02-command:
command: mkdir -p /myapp/ebextensions
03-command:
command: cp -R .ebextensions/* /myapp/ebextensions/
04-command:
command: dos2unix -k /myapp/ebextensions/mongo.sh
05-command:
command: chmod 700 /myapp/ebextensions/mongo.sh
06-command:
command: bash /myapp/ebextensions/mongo.sh
然后創建mongo.sh文件並輸入如下內容:
#!/bin/bash
if [ ! -f /mongostatus.txt ];
then
pecl install mongo
echo "mongo extension installed" > /mongostatus.txt
apachectl restart
fi
這將安裝mongo php擴展並重啟apache,以便安裝生效。
由於上面的答案,我剛剛完成了同樣的事情,並且發現它可以用更少的行和更少的文件為感興趣的人完成...
# ~/project/.ebextensions/project.config
# Logger messages can be viewed in /var/log/messages
files:
"/tmp/test.sh":
content: |
# This file will be created and can then
# be executed by a command call below.
logger TEST FILE CALLED
commands:
01-command:
command: logger CALLING TEST FILE; sh /tmp/test.sh;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.