PHP安装在干净的Amazon Linux AMI上

我正在尝试使用PHP55和Amazon PHP sdk来创建一个新的Amazon Linux EC2实例.但是,我遇到了一个我认为是由PHP版本冲突引起的问题.我认为在这种情况下,我对于yum的工作方式有所遗漏.

把它归结为最简单的情况,如果我运行:

yum install -y httpd24 PHP55 PHP-amazon-sdk2

我得到“错误PHP55-与PHP-common-5.3.29-1.7.amzn1.x86_64的常见冲突”

但是,如果我跑:

yum install -y httpd24 PHP55

然后单独运行:

yum install -y PHP-amazon-sdk2

它工作得很好.要清楚的是,当我运行这些命令时,系统上根本没有PHP版本,所以它与已经存在的东西没有冲突.

我不太熟悉yum依赖项是如何工作的,但似乎这表明PHP-amazon-sdk2对于PHP55很好,但出于某种原因,它试图强制PHP53,如果我同时安装它.解决这个问题的正确方法是什么(意思是,我不想强​​迫它安装,忽略依赖关系,但我也不想在单独的步骤中执行这些操作)?

这是由于Amazon Linux上的RPM / YUM限制,以及打包多个版本的PHP的方式. Amazon Linux的一个功能是有多种语言的多个版本和其他开源软件包.在许多情况下,这些软件包必须相互冲突,因为软件不是设计用于同时安装的.

在这种情况下,正在发生的是每个PHP包都有一个通用的提供(即PHP PHP54和PHP55都提供PHP). PHP-amazon-sdk2只需要PHP,这是通过在yum命令行上指定PHP55包来满足的.冲突错误来自PHP-guzzle-Guzzle包,它需要PHP-common.在这种情况下,如果你在安装PHP-amazon-sdk2软件包时在你的yum命令中添加PHP55-common,它就会成功.

yum install -y httpd24 PHP55 PHP55-common PHP-amazon-sdk2

通常,在Amazon Linux AMI上,如果您遇到与PHP的冲突错误,解决方法是将正确的版本化软件包添加到yum命令行.在这种情况下,报告的冲突是常见的.你知道你想要安装PHP55,所以这只是告诉yum你究竟想要什么(即我想要PHP55-common,而不是PHP-common).如果你安装了一个需要PHP的软件包,并且你没有指定任何其他的PHP软件包,那么yum将选择通用的PHP软件包,并且将安装PHP 5.3.这些冲突错误通常是PHP54和PHP55包的问题.

我同意这项工作并不直观,亚马逊Linux AMI团队已经注意到了这个问题.他们正在探索此问题的几种不同解决方案.他们对PHP包装和Amazon Linux AMI的反馈非常开放.他们会监控aws论坛,因此这是发布问题的最佳位置.如果您拥有AWS Premium Support,则可以使用它们打开案例,并将其转发给Amazon Linux AMI团队.

谢谢,希思

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...