我正试图在Elastic Beanstalk上部署一个php应用程序。除了我给mongo司机打电话外,一切都很好。
我尝试安装它遵循了以下步骤(未成功(:
- SSH到Elastic Beanstalk实例
sudo yum install php-devel
(用于phpize(sudo pecl install mongo
-
按照说明尝试命令:
sudo echo "extension=mongo.so" >> /etc/php.ini
失败错误消息为:-bash: /etc/php.ini: Permission denied
我这样做对吗?
您不应该通过SSH将php-devel
和mongo
安装到Elastic Beanstalk中。当EB环境放大/缩小或服务器意外崩溃时,这些设置将消失。
尝试使用配置文件自定义EB环境。
更新:在64位Amazon Linux 2013.09上添加PHP 5.4的配置文件示例
- 在源捆绑包的顶层创建一个.eextensions目录
- 创建一个配置文件
/your_app/.ebextensions/01install_mongo_driver.config
在配置文件01install_mongo_driver.config
中键入以下内容以安装php-mogodb驱动程序。
commands:
install_mongo_driver_command:
command: pecl install mongo
因为64位AmazonLinux2013.09AMI上的PHP5.4已经包含php-devel
,所以您不会手动安装它。
在AmazonLinux2上更新PHP 7上的MongoDB
files:
"/etc/php.d/99mongo.ini" :
mode: "000755"
owner: root
group: root
content: |
extension=mongo.so
commands:
install_mongo_driver_command:
command: sudo pecl7 install mongodb
ignoreErrors: true
上面的添加启用了php.ini上的扩展,并为您的php安装mongodb。ignore errors
可防止第二次安装时出现任何错误。(例如,如果服务器崩溃,必须重新启动(。这是为了防止出现"mongodb已经安装"的错误
注意:此文件存储在:/your_app_root/.eextensions/mongo.config
今天,通过AWS Beanstalk在最新版本的Amazon Linux 2中安装mongodb的正确设置如下,其他一切对我来说都失败了。如果你无法解决它,请像我一样,连接到服务器并查看日志。
packages:
rpm:
php-pear: []
php-devel: []
gcc: []
files:
"/etc/php.d/99mongo.ini":
mode: "000755"
owner: root
group: root
content: |
extension=mongo.so
commands:
install_mongo_driver_command:
command: sudo pecl install mongodb
ignoreErrors: true