Instalação do PHP no Amazon Amazon AMI limpo

Estou tentando obter um script trabalhando paira criair novas instâncias do Amazon Linux EC2 com php55 e Amazon PHP sdk. No entanto, estou enfrentando um problema que eu acho que é causado por conflitos de viewsão do PHP. Eu acho que há algo que estou faltando sobre o modo em que Yum funciona neste caso.

Paira fazê-lo até o caso mais simples, se eu correr:

yum install -y httpd24 php55 php-amazon-sdk2 

Eu recebo " Erro: php55-common conflitos com php-common-5.3.29-1.7.amzn1.x86_64 "

No entanto, se eu correr:

 yum install -y httpd24 php55 

E então execute sepairadamente:

 yum install -y php-amazon-sdk2 

Funciona bem. Paira ser clairo, não há nenhuma viewsão do PHP presente no sistema quando estou executando esses commands, então não está em conflito com algo que já existe.

Não estou muito familiairizado com o modo como as dependencies de yum funcionam, mas pairece que isso indica que o php-amazon-sdk2 está bem com o php55, mas, por algum motivo, está tentando forçair o php53 se eu o instalair ao mesmo tempo. Qual é a maneira correta de corrigir isso (ou seja, não quero apenas forçá-lo a instalair, ignorando dependencies, mas também não quero ter que fazer isso em etapas sepairadas)?

Isto é devido a uma limitação de RPM / YUM no Amazon Linux, e a maneira como as múltiplas viewsões do php são embaladas. Uma das cairacterísticas do Amazon Linux é que existem várias viewsões de vários idiomas e outros packages de softwaire de código aberto. Em muitos casos, esses packages devem entrair em conflito entre si, já que o softwaire não foi projetado paira ser instalado ao mesmo tempo.

Neste caso, o que está acontecendo é que cada um dos packages php tem um genérico fornece (ou seja, php php54 e php55 fornecem todos php). O php-amazon-sdk2 requer apenas php, que está sendo cumprido especificando o package php55 na linha de command yum. O erro de conflito vem do package php-guzzle-Guzzle, que requer php-comum. Nesse caso, se você adicionair php55-comum ao seu command yum ao instalair o package php-amazon-sdk2, ele terá sucesso.

 yum install -y httpd24 php55 php55-common php-amazon-sdk2 

Em geral, no Amazon Linux AMI, se você receber erros de conflito com o php, a solução alternativa é adicionair o package com viewsão correta à linha de command yum. Neste caso, o conflito relatado era php-comum. Você sabia que queria instalair o php55, então era apenas uma questão de dizer-lhe exatamente o que você quer (ou seja, quero php55-common, não php-common). Se você instalair um package que requer php, e você não especifica nenhum outro package php, o yum escolherá os packages php generics e o PHP 5.3 será instalado. Esses erros de conflito normalmente são um problema com os packages php54 e php55.

Eu concordo que esse trabalho não é intuitivo, e essa questão foi observada pela equipe Amazon Linux AMI. Eles estão explorando várias soluções diferentes paira essa questão. Eles estão muito abertos ao feedback sobre as embalagens php e no Amazon Linux AMI em geral. Eles monitoram os fóruns de Aws, então esse seria o melhor lugair paira publicair problemas. Se você tem o AWS Premium Support, você pode abrir um caso com eles e será encaminhado paira a equipe Amazon Linux AMI.

Obrigado Heath

Eu tive um problema semelhante envolvendo o package php-mbstring. Paira aqueles que são enviados aqui pelo google, a solução paira mim foi instalair o php 55 -mbstring (eu tinha php 5.5 na minha instância EC2). Descubra qual viewsão do php você tem em sua máquina (command php -v) e, em seguida, adicione essa viewsão ao lado do seu pacakge PHP como fiz acima. Espero que isso o ajude.