Nie można zainstalować APC przez pecl install APC

18

Kiedy próbuję zainstalować APC za pośrednictwem pecl install APC-3.1.5 lub nawet pecl install APCpojawia się następujący błąd, gdy pakiet przychodzi do makepolecenia:

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

Zainstalowałem wszystkie możliwe brakujące rzeczy:

yum install php-devel httpd-devel
yum groupinstall ‘Development Tools’
yum groupinstall ‘Development Libraries’

I wciąż nic.

sangoku
źródło

Odpowiedzi:

35

Próbować

yum install pcre-devel

przed instalacją APC.

O użyciu Debiana

aptitude install libpcre3-dev

zamiast.

kulminacja
źródło
11
+1 to zadziałało dla mnie, powinno być przyjętym rozwiązaniem
iainlbc,
działał jak urok ...
Emmanuel Okeke
+1 to działało dla mnie, powinno być przyjętym rozwiązaniem. Dzięki
Riz
To też mnie naprawiło. +1 za zaakceptowaną odpowiedź.
zigojacko
2

Kompilowałbym ze źródła. Upewnij się, że usunąłeś wszystko, co pozostawili instalatorzy pakietów. Prawdopodobnie masz stare katalogi rozszerzeń leżące wokół starszych wersji php. rm -rf je i ich zawartość, abyś nie miał wątpliwości.

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

Dla argumentu config = uruchom który php i dodaj -config do wyniku

Jeśli pojawi się ten błąd (Taki sam jak opublikowany)

W pliku zawartym z /usr/local/src/APC-3.1.5/apc.c:38: /usr/include/php/ext/pcre/php_pcre.h:29:18: error: pcre.h: Nie ma takiego plik lub katalog W pliku zawartym z /usr/local/src/APC-3.1.5/apc.c:38: /usr/include/php/ext/pcre/php_pcre.h:45: error: oczekiwano '=', ',', ';', 'asm' lub ' attribute ' before ' ' token /usr/include/php/ext/pcre/php_pcre.h:46: error: oczekiwano '=', ',', ';' , „asm” lub „ atrybut ” przed „'token /usr/include/php/ext/pcre/php_pcre.h:52: błąd: oczekiwana lista kwalifikatorów specyfikatora przed' pcre '/usr/local/src/APC-3.1.5/apc.c:362: błąd: oczekiwana lista kwalifikatorów-specyfikatora przed „pcre” /usr/local/src/APC-3.1.5/apc.c: W funkcji „apc_regex_compile_array”: /usr/local/src/APC-3.1.5/apc. c: 419: error: 'apc_regex' nie ma członka o nazwie 'preg' /usr/local/src/APC-3.1.5/apc.c:419: error: 'apc_regex' nie ma członka o nazwie 'preg' / usr / local / src / APC-3.1.5 / apc.c: 420: błąd: „apc_regex” nie ma elementu o nazwie „nreg” /usr/local/src/APC-3.1.5/apc.c:420: error: ” apc_regex 'nie ma członka o nazwie' nreg '/usr/local/src/APC-3.1.5/apc.c: W funkcji' apc_regex_match_array ': /usr/local/src/APC-3.1.5/apc.c:452 : błąd: „apc_regex ”nie ma członka o nazwie„ preg ”/usr/local/src/APC-3.1.5/apc.c:452: błąd:„ apc_regex ”nie ma członka o nazwie„ preg ”/usr/local/src/APC-3.1 .5 / apc.c: 453: błąd: „apc_regex” nie ma elementu o nazwie „nreg” /usr/local/src/APC-3.1.5/apc.c:453: błąd: „apc_regex” nie ma elementu o nazwie „ nreg 'make: *** [apc.lo] Błąd 1

Następnie musisz zainstalować program pcre i upewnić się, że pochodzi on z katalogu /, w przeciwnym razie nie zostanie zainstalowany.

yum install pcre-devel

make
make install
Chris_O
źródło
Jeśli pojawi się ostrzeżenie dotyczące flagi --with-apxs, możesz je zignorować.
Joseph Lust
0

wygląda na to, że próbujesz zainstalować APC w systemie z PHP <5.2.x. Wersja 3.1 APC wymaga wersji 5.2.x. Zakładam, że działasz CentOS 5.5, który jest dostarczany z PHP 5.1.x.

spróbuj skompilować i zainstalować APC 3.0.19 z http://pecl.php.net/package/APC . Udało nam się wdrożyć APC 3.0 na naszych serwerach CentOS.

johndagostino
źródło
1
Nie, mam zainstalowany php 5.3.3 i nadal pecl nie zainstaluje go poprawnie ... myślę, że ich repo jest uszkodzone. Miałem, jak sugerowałeś, ręcznie go skompilować.
sangoku
@sangoku: ja też mnie uderzyło to samo. jeśli masz jakieś rozwiązanie, udostępnij tutaj plz. moja wersja PHP to 5.3.2 i dostaje ten błądprocedure entry point pcre_exe could not be located
RSK
0

W Ubuntu:

aptitude install libpcre3-dev

I wtedy:

pecl install apc
ea
źródło
Brak nowych informacji (TM). Downvoting.
Deer Hunter
Dzięki. Dla użytkowników Ubuntu jest to przydatna informacja. Nie mogłem skomentować poprzedniej odpowiedzi (komentarze są nadal dla mnie wyłączone, mogę tylko odpowiedzieć).
ea
dzięki. Nie mogłem znaleźć, co jest nie tak z moim Ubuntu. Pomogło mi.
shukshin.ivan