O CircleCI carrega e configura o PHP a partir de sua própria localização: /opt/circleci/php/{version}
. Resolvemos o problema postado instalando php-redis
via APT e, em seguida, transferindo a versão do PHP do CircleCI para os arquivos instalados pelo APT. Parece assim em nosso arquivo circle.yml
:
dependencies:
pre:
# Set up php-redis.
# The PHPAPI version (20131226) needs to match.
# If we start using a different version of PHP this section may need to be updated.
- sudo apt-add-repository -y ppa:ondrej/php
- sudo apt-get update
- sudo apt-get install php-redis
- echo 'extension=/usr/lib/php/20131226/redis.so' | sudo tee /opt/circleci/php/5.6.17/etc/conf.d/redis.ini
- echo 'extension=/usr/lib/php/20131226/igbinary.so' | sudo tee /opt/circleci/php/5.6.17/etc/conf.d/igbinary.ini
Isso quebrou novamente recentemente quando o CircleCI começou a executar o Composer com php -n
, que se recusa a carregar um arquivo de configuração para o PHP e, portanto, ignora a alteração acima. Mas você pode substituir o comando Compositor pelo seu próprio. Adicionamos isso a circle.yml
:
dependencies:
override:
# CircleCI's new method of running composer breaks our php-redis setup below.
- composer install --no-interaction