19 votes

Échec de l'installation de l'APC via pecl install APC

Lorsque j'essaie d'installer APC via pecl install APC-3.1.5 ou même pecl install APC, j'obtiens l'erreur suivante lorsque le package arrive à la commande 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
Dans le fichier inclus depuis /var/tmp/APC/apc.c:44:
/usr/include/php/ext/pcre/php_pcre.h:29:18: erreur : pcre.h: Aucun fichier ou dossier de ce type
Dans le fichier inclus depuis /var/tmp/APC/apc.c:44:
/usr/include/php/ext/pcre/php_pcre.h:37: erreur : '=' attendu, ',', ';', 'asm' ou '__attribute__' avant le jeton '*'
/usr/include/php/ext/pcre/php_pcre.h:38: erreur : '=' attendu, ',', ';', 'asm' ou '__attribute__' avant le jeton '*'
/usr/include/php/ext/pcre/php_pcre.h:44: erreur : liste de spécificateurs attendue avant 'pcre'
/var/tmp/APC/apc.c:369: erreur : liste de spécificateurs attendue avant 'pcre' 
...
(make: *** [apc.lo] Erreur 1
ERREUR : `make' a échoué)

J'ai installé toutes les choses manquantes possibles:

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

Et toujours rien.

35voto

acme Points 657

Essayer

yum install pcre-devel

avant d'installer APC.

Sous Debian, utilisez

aptitude install libpcre3-dev

à la place.

2voto

Myer Points 1892

Je compilerai à partir de la source. Assurez-vous de supprimer tout ce que les installateurs de packages ont laissé derrière. Vous avez probablement des anciens répertoires d'extensions traînant encore des versions de PHP plus anciennes. rm -rf les et leurs contenus pour éviter toute confusion.

cd ~ 
mkdir installations
cd installations 
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

Pour l'argument config=, exécutez which php et ajoutez -config au résultat

Si vous obtenez cette erreur (la même que celle que vous avez postée)

Dans le fichier inclus depuis /usr/local/src/APC-3.1.5/apc.c:38: /usr/include/php/ext/pcre/php_pcre.h:29:18: erreur: pcre.h: Aucun fichier ou répertoire de ce type Dans le fichier inclus depuis /usr/local/src/APC-3.1.5/apc.c:38: /usr/include/php/ext/pcre/php_pcre.h:45: erreur: expected '=', ',', ';', 'asm' or 'attribute' before '' token /usr/include/php/ext/pcre/php_pcre.h:46: erreur: expected '=', ',', ';', 'asm' or 'attribute' before '' token /usr/include/php/ext/pcre/php_pcre.h:52: erreur: expected specifier-qualifier-list before 'pcre' /usr/local/src/APC-3.1.5/apc.c:362: erreur: expected specifier-qualifier-list before 'pcre' /usr/local/src/APC-3.1.5/apc.c: Dans la fonction 'apc_regex_compile_array': /usr/local/src/APC-3.1.5/apc.c:419: erreur: 'apc_regex' n'a pas de membre nommé 'preg' /usr/local/src/APC-3.1.5/apc.c:419: erreur: 'apc_regex' n'a pas de membre nommé 'preg' /usr/local/src/APC-3.1.5/apc.c:420: erreur: 'apc_regex' n'a pas de membre nommé 'nreg' /usr/local/src/APC-3.1.5/apc.c:420: erreur: 'apc_regex' n'a pas de membre nommé 'nreg' /usr/local/src/APC-3.1.5/apc.c: Dans la fonction 'apc_regex_match_array': /usr/local/src/APC-3.1.5/apc.c:452: erreur: 'apc_regex' n'a pas de membre nommé 'preg' /usr/local/src/APC-3.1.5/apc.c:452: erreur: 'apc_regex' n'a pas de membre nommé 'preg' /usr/local/src/APC-3.1.5/apc.c:453: erreur: 'apc_regex' n'a pas de membre nommé 'nreg' /usr/local/src/APC-3.1.5/apc.c:453: erreur: 'apc_regex' n'a pas de membre nommé 'nreg' make: *** [apc.lo] Erreur 1

Alors vous devez installer pcre et vous assurer qu'il provient du répertoire / sinon il ne s'installera pas.

yum install pcre-devel

make
make install

0voto

kairouan2020 Points 11

Il semble que vous essayez d'installer APC sur un système exécutant PHP < 5.2.x. La version 3.1 d'APC nécessite 5.2.x. Je suppose que vous utilisez CentOS 5.5 qui est livré avec PHP 5.1.x.

essayez de compiler et d'installer APC 3.0.19 depuis http://pecl.php.net/package/APC. Nous avons réussi à déployer APC 3.0 sur nos serveurs CentOS.

0voto

e.a. Points 111

Sous Ubuntu :

aptitude install libpcre3-dev

Et ensuite :

pecl install apc

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X