Когда я пытаюсь установить APC через pecl install APC-3.1.5
или даже pecl install APC
Я получаю следующую ошибку, когда пакет приходит в make
команда:
running: make
/bin/sh /var/tmp/pear-build-root/APC-3.1.5/libtool --mode=compile cc -I. -I/var/tmp/APC -DPHP_ATOM_INC -I/var/tmp/pear-build-root/APC-3.1.5/include -I/var/tmp/pear-build-root/APC-3.1.5/main -I/var/tmp/APC -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /var/tmp/APC/apc.c -o apc.lo
mkdir .libs
cc -I. -I/var/tmp/APC -DPHP_ATOM_INC -I/var/tmp/pear-build-root/APC-3.1.5/include -I/var/tmp/pear-build-root/APC-3.1.5/main -I/var/tmp/APC -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /var/tmp/APC/apc.c -fPIC -DPIC -o .libs/apc.o
In file included from /var/tmp/APC/apc.c:44:
/usr/include/php/ext/pcre/php_pcre.h:29:18: error: pcre.h: No such file or directory
In file included from /var/tmp/APC/apc.c:44:
/usr/include/php/ext/pcre/php_pcre.h:37: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
/usr/include/php/ext/pcre/php_pcre.h:38: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
/usr/include/php/ext/pcre/php_pcre.h:44: error: expected specifier-qualifier-list before 'pcre'
/var/tmp/APC/apc.c:369: error: expected specifier-qualifier-list before 'pcre'
/var/tmp/APC/apc.c: In function 'apc_regex_compile_array':
/var/tmp/APC/apc.c:430: error: 'apc_regex' has no member named 'preg'
/var/tmp/APC/apc.c:430: error: 'apc_regex' has no member named 'preg'
/var/tmp/APC/apc.c:431: error: 'apc_regex' has no member named 'nreg'
/var/tmp/APC/apc.c:431: error: 'apc_regex' has no member named 'nreg'
/var/tmp/APC/apc.c: In function 'apc_regex_match_array':
/var/tmp/APC/apc.c:463: error: 'apc_regex' has no member named 'preg'
/var/tmp/APC/apc.c:463: error: 'apc_regex' has no member named 'preg'
/var/tmp/APC/apc.c:464: error: 'apc_regex' has no member named 'nreg'
/var/tmp/APC/apc.c:464: error: 'apc_regex' has no member named 'nreg'
make: *** [apc.lo] Error 1
ERROR: `make' failed
Я установил все возможные недостающие вещи:
yum install php-devel httpd-devel
yum groupinstall ‘Development Tools’
yum groupinstall ‘Development Libraries’
И все равно ничего.
Пытаться
yum install pcre-devel
перед установкой APC.
Об использовании Debian
aptitude install libpcre3-dev
вместо.
Я бы скомпилировал из исходников. Убедитесь, что вы удалили все, что оставили установщики пакетов. У вас, вероятно, есть старые каталоги расширений, лежащие из более старых версий php. rm -rf их и их содержимое, чтобы не было путаницы.
cd ~
mkdir setups
cd setups
wget http://pecl.php.net/get/APC-3.1.9.tgz
tar -xvf APC-3.1.9.tgz
cd APC-3.1.9
phpize
./configure --enable-apc --enable-apc-mmap --with-apxs --with-php-config=/usr/local/bin/php-config
make
Для аргумента config = запустите какой php, и добавить -config к результату
Если вы получите эту ошибку (такую же, как вы опубликовали)
В файле, включенном из /usr/local/src/APC-3.1.5/apc.c:38: /usr/include/php/ext/pcre/php_pcre.h:29:18: error: pcre.h: Нет такого файл или каталог В файле, включенном из /usr/local/src/APC-3.1.5/apc.c:38: /usr/include/php/ext/pcre/php_pcre.h:45: error: expected '=', ',', ';', 'asm' или 'атрибут' перед ''токен /usr/include/php/ext/pcre/php_pcre.h:46: ошибка: ожидается' = ',', ','; ',' asm 'или'атрибут' перед ''токен /usr/include/php/ext/pcre/php_pcre.h:52: ошибка: ожидаемый список спецификаторов-квалификаторов перед' pcre '/usr/local/src/APC-3.1.5/apc.c:362: ошибка: ожидаемый список спецификаторов-квалификаторов перед pcre /usr/local/src/APC-3.1.5/apc.c: в функции apc_regex_compile_array: /usr/local/src/APC-3.1.5/apc. c: 419: ошибка: 'apc_regex' не имеет члена с именем 'preg' /usr/local/src/APC-3.1.5/apc.c:419: ошибка: 'apc_regex' не имеет члена с именем 'preg' / usr / local / src / APC-3.1.5 / apc.c: 420: ошибка: 'apc_regex' не имеет члена с именем 'nreg' /usr/local/src/APC-3.1.5/apc.c:420: error: ' apc_regex 'не имеет члена с именем' nreg '/usr/local/src/APC-3.1.5/apc.c: В функции' apc_regex_match_array ': /usr/local/src/APC-3.1.5/apc.c:452 : ошибка: 'apc_regex' не имеет члена с именем 'preg' /usr/local/src/APC-3.1.5/apc.c:452: ошибка: 'apc_regex' не имеет члена с именем 'preg' / usr / local / src /APC-3.1.5/apc.c:453: ошибка: 'apc_regex' не имеет члена с именем 'nreg' /usr/local/src/APC-3.1.5/apc.c:453: ошибка: 'apc_regex' имеет ни один участник с именем 'nreg' не делает: *** [apc.lo] Ошибка 1
Затем вам нужно установить pcre и убедиться, что он находится из каталога /, иначе он не будет установлен.
yum install pcre-devel
make
make install
похоже, вы пытаетесь установить APC в системе с PHP <5.2.x. Версия 3.1 APC требует 5.2.x. Я предполагаю, что вы используете CentOS 5.5, который поставляется с PHP 5.1.x.
попробуйте скомпилировать и установить APC 3.0.19 из http://pecl.php.net/package/APC. Мы успешно развернули APC 3.0 на наших серверах CentOS.
В Ubuntu:
aptitude install libpcre3-dev
А потом:
pecl install apc