2013-05-13 5 views
2

Итак, я пишу PHP-программу, использующую APC для механизма кэширования. Я использую TravisCI для моей постоянной интеграции и тестирования на PHP 5.3, 5.4 и 5.5. Тесты для APC прослыть v5.3 и 5.4, но не на 5.5 со следующим сообщением ...Почему APC не работает в PHP v5.5 на Travis-CI?

PHP Warning: PHP Startup: Unable to load dynamic library 
'/home/travis/.phpenv/versions/5.5.0beta1/lib/php/extensions/no-debug-non-zts-20121212/apc.so' - /home/travis/.phpenv/versions/5.5.0beta1/lib/php/extensions/no-debug-non-zts-20121212/apc.so: 
cannot open shared object file: No such file or directory in Unknown on line 0 

Warning: PHP Startup: Unable to load dynamic library 
'/home/travis/.phpenv/versions/5.5.0beta1/lib/php/extensions/no-debug-non-zts-20121212/apc.so' - /home/travis/.phpenv/versions/5.5.0beta1/lib/php/extensions/no-debug-non-zts-20121212/apc.so: 
cannot open shared object file: No such file or directory in Unknown on line 0 

Мой .travis.yml файл выглядит следующим образом

## YAML Template. 
--- 
language: php 
php: 
    - "5.5" 
    - "5.4" 
    - "5.3" 
before_script: phpenv config-add tests/config.ini 
script: phpunit --configuration phpunit.xml 

Мои тесты/конфигурации .ini файл выглядит следующим образом

extension="apc.so" 

apc.enabled=1 
apc.enable_cli=1 

может кто-нибудь пролить некоторый свет на то, почему я могу получить APC работает в v5.3 и 5.4, но не 5.5? Это проблема с PHP или проблема с Travis?

+0

[Взгляните на этот ответ.] (Http://stackoverflow.com/questions/9611676/is-apc-compatible-with-php-5-4-or-php-5-5) – vanneto

+0

@ Vanneto О, спасибо за этот намек –

ответ

0

Вам необходимо скомпилировать расширение APCu на travis, помните, что APC больше не доступно в PHP 5.5.

Вы можете попробовать в вашем .travis.yml

printf "\n"| pecl install apcu 
echo "extension=apcu.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` 

С уважением.

0

С помощью PHP5.5 встроенный OpCache заменяет функциональность кеширования кодирования байтов APC. Однако OpCache не является «общим» кешем, например MemCache или APC. Чтобы вернуть старые функции кэширования без байт-кода, вам необходимо установить APCu, который является APC за вычетом кэширования байтового кода.

2

Вот рабочее решение, что я успешно использую прямо сейчас: https://gist.github.com/till/7266839

По сути, это будет установить APC для 5.3 и 5.4 и установит APCu на 5,5.

Смежные вопросы