После установки APC на CentOS 5 через pecl install apc
, APC не загружается, когда PHP вызывается из CLI (при вызове из apache он загружается без проблем).
Я получаю следующую ошибку:
root@server [~]# php
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/apc.so' - /usr/lib64/php/modules/apc.so: undefined symbol: pcre_exec in Unknown on line 0
Я искал в Интернете решение и обнаружил, что у многих была эта проблема. Однако мне не удалось найти решение, которое работало бы для меня.
Я исправил проблему, удалив APC с помощью установщика pecl, а затем переустановив его с помощью установщика груши.
pecl uninstall apc
pear install pecl/apc
Бегать which php
, затем locate php
. Если в вашей системе несколько двоичных файлов PHP (это может произойти довольно легко, если вы установите одну версию через диспетчер пакетов, а затем скомпилируете другую через исходный код), расширения, скорее всего, не будут совместимы между версиями. Удаление неправильного двоичного файла PHP должно позволить этому работать правильно.
Вам просто нужно добавить в файл apc.ini следующую директиву:
apc.enable_cli = 1
Исправить это относительно просто:
Скопируйте существующий файл /etc/php.d/apc.ini
к /tmp
cp /etc/php.d/apc.ini /tmp
Удалите установленный пакет
yum remove php-pecl-apc
Установите apc, используя сам pecl
pecl install apc
Вернуть файл apc.ini
mv /tmp/apc.ini /etc/php.d/apc.ini