我正在尝试在Elastic Beanstalk上部署php应用程序。除了打电话给mongo司机以外,一切都很好。
我尝试安装它遵循这些步骤(失败):
sudo yum install php-devel
(对于phpize)sudo pecl install mongo
按照说明尝试命令:sudo echo "extension=mongo.so" >> /etc/php.ini
失败。错误信息是:
-bash: /etc/php.ini: Permission denied
我能以正确的方式解决这个问题吗?
答案 0 :(得分:3)
您不应通过SSH连接到Elastic Beanstalk来安装php-devel
和mongo
。当您的EB环境无法进入/缩小或服务器崩溃时,这些设置将消失。
尝试使用Configuration File来自定义您的EB环境。
/your_app/.ebextensions/01install_mongo_driver.config
。在配置文件01install_mongo_driver.config
中键入以下内容以安装php mongodb驱动程序。
commands:
install_mongo_driver_command:
command: pecl install mongo
因为64位上的PHP 5.4 Amazon Linux 2013.09 AMI已经包含php-devel
,所以你不会手动安装它。
答案 1 :(得分:2)
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/.ebextensions/mongo.config
答案 2 :(得分:0)
今天,通过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