AWS Elasticbeanstalk 在 PHP 实例类型中安装节点和 npm
Posted
技术标签:
【中文标题】AWS Elasticbeanstalk 在 PHP 实例类型中安装节点和 npm【英文标题】:AWS Elasticbeanstalk install node and npm in PHP instance type 【发布时间】:2015-12-22 07:46:10 【问题描述】:我有一个使用 gulp 构建生产文件的 php 应用程序,我正在使用 elasticbeanstalk 将我的应用程序部署到 AWS EC2 实例,我想在部署期间安装 node 和 npm 以运行 gulp,我目前的配置是:
.ebextensions 文件夹内的01-installPackages.config
commands:
01updateComposer:
command: export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update
02installNode:
command:
# run this command from /tmp directory
cwd: /tmp
# don't run the command if node is already installed (file /usr/bin/node exists)
test: '[ ! -f /usr/bin/node ] && echo "node not installed"'
# install from epel repository
# flag -y for no-interaction installation
command: 'sudo yum install -y nodejs --enablerepo=epel'
节点命令失败,但如果我 ssh 进入并运行该命令,则节点已安装
知道我的配置有什么问题吗?
谢谢!
【问题讨论】:
嘿@matteo,你有解决方案吗?可以分享吗? 很遗憾没有 【参考方案1】:您应该能够为此使用environment configuration options,而不是自己编写 bash 文件。您可以使用 packages 密钥下载和安装预打包的应用程序和组件。
这将允许您执行以下操作:
packages:
yum:
nodejs: []
npm: []
您需要的软件包将被安装。
注意:这在 Amazon Linux 2 中已被弃用。
【讨论】:
感谢您的回答,我最初尝试过,但是我在使用 sudo 时遇到了一些问题,并且执行速度甚至比创建文件还要慢 这引发了错误,告诉我这些软件包无法通过 yum 获得。 @JamesParker 此处回复相同。有什么解决办法吗?【参考方案2】:对此的当前答案如下:
commands:
01enable_epel:
command: sudo amazon-linux-extras install epel
02npm_install:
command: sudo yum -y --enablerepo=epel install nodejs npm
使用记录在案的附加库 in AWS docs
【讨论】:
在 Amazon AMI Linux 2 上的工作就像一个魅力以上是关于AWS Elasticbeanstalk 在 PHP 实例类型中安装节点和 npm的主要内容,如果未能解决你的问题,请参考以下文章
AWS::ElasticBeanstalk::ConfigurationTemplate 的 AWS CloudFormation 模板失败
在 AWS 上使用 ElastiCache 和 ElasticBeanstalk 配置 Redis
从在 ElasticBeanstalk 中运行的 Flask 应用程序使用 AWS