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.

Odpowiedzi:


35

Próbować

yum install pcre-devel

przed instalacją APC.

O użyciu Debiana

aptitude install libpcre3-dev

zamiast.


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

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.


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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.