Не удалось установить APC с помощью pecl install APC


18

Когда я пытаюсь установить 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’

И все еще ничего.

Ответы:


35

Пытаться

yum install pcre-devel

перед установкой APC.

Об использовании Debian

aptitude install libpcre3-dev

вместо.


11
+1 это сработало для меня, должно быть принятое решение
iainlbc

работал как шарм ...
Эммануэль Океке

+1 это сработало для меня, должно быть принято решение. Спасибо
Риз

Это исправило это и для меня. +1 за принятый ответ.
zigojacko

2

Я бы скомпилировал из источника. Убедитесь, что вы удалили все, что оставили установщики пакета. Вероятно, у вас есть старые каталоги расширений, созданные из более старых версий 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: ошибка: pcre.h: нет такого файл или каталог В файле, включенном в /usr/local/src/APC-3.1.5/apc.c:38: /usr/include/php/ext/pcre/php_pcre.h:45: ошибка: ожидается '=', ',', ';', 'asm' или ' attribute ' перед ' ' токеном /usr/include/php/ext/pcre/php_pcre.h:46: error: Ожидается '=', ',', ';' , «asm» или « attribute » перед »'token /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: ошибка: « 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 'make: *** [apc.lo] Ошибка 1

Затем вы должны установить pcre и убедиться, что он находится в каталоге /, иначе он не будет установлен.

yum install pcre-devel

make
make install

Если вы получите предупреждение о флаге --with-apxs, вы можете его проигнорировать.
Джозеф Ласт

0

похоже, что вы пытаетесь установить 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.


1
Нет, у меня установлен php 5.3.3 и все же pecl не установит его правильно ... Я думаю, что их репозиторий поврежден. Я имел, как вы предложили, чтобы скомпилировать его вручную.
Сангоку

@sangoku: меня тоже поразило то же самое. Если у вас есть решение, пожалуйста, поделитесь здесь. моя версия php 5.3.2 и получает эту ошибкуprocedure entry point pcre_exe could not be located
RSK

0

В Ubuntu:

aptitude install libpcre3-dev

А потом:

pecl install apc

Нет новой информации (ТМ). Downvoting.
Охотник на оленей

Спасибо чувак. Для пользователей Ubuntu это полезная информация. Я не мог прокомментировать предыдущий ответ (комментарии для меня все еще отключены, я могу только ответить).
еа

Благодарю. Не смог найти что не так с моей убунту. Помог мне.
shukshin.ivan
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.