19

When I try to install APC via pecl install APC-3.1.5 or even pecl install APC I get following error when the package comes to the make command:

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

I installed all possible missing things:

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

And still nothing.

the
  • 468
  • 8
  • 23
sangoku
  • 191
  • 1
  • 1
  • 3

4 Answers4

35

Try

yum install pcre-devel

before installing APC.

On Debian use

aptitude install libpcre3-dev

instead.

acme
  • 667
  • 1
  • 7
  • 13
2

I would compile from source. Make sure you delete anything that the package installers left behind. You probably have old extension directories laying around from older php versions. rm -rf them and their contents so you wont have any confusion.

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

For the config= argument, run which php, and add -config to the result

If you get this error (Same as one you posted)

In file included from /usr/local/src/APC-3.1.5/apc.c:38: /usr/include/php/ext/pcre/php_pcre.h:29:18: error: pcre.h: No such file or directory In file included from /usr/local/src/APC-3.1.5/apc.c:38: /usr/include/php/ext/pcre/php_pcre.h:45: error: expected '=', ',', ';', 'asm' or 'attribute' before '' token /usr/include/php/ext/pcre/php_pcre.h:46: error: expected '=', ',', ';', 'asm' or 'attribute' before '' token /usr/include/php/ext/pcre/php_pcre.h:52: error: expected specifier-qualifier-list before 'pcre' /usr/local/src/APC-3.1.5/apc.c:362: error: expected specifier-qualifier-list before 'pcre' /usr/local/src/APC-3.1.5/apc.c: In function 'apc_regex_compile_array': /usr/local/src/APC-3.1.5/apc.c:419: error: 'apc_regex' has no member named 'preg' /usr/local/src/APC-3.1.5/apc.c:419: error: 'apc_regex' has no member named 'preg' /usr/local/src/APC-3.1.5/apc.c:420: error: 'apc_regex' has no member named 'nreg' /usr/local/src/APC-3.1.5/apc.c:420: error: 'apc_regex' has no member named 'nreg' /usr/local/src/APC-3.1.5/apc.c: In function 'apc_regex_match_array': /usr/local/src/APC-3.1.5/apc.c:452: error: 'apc_regex' has no member named 'preg' /usr/local/src/APC-3.1.5/apc.c:452: error: 'apc_regex' has no member named 'preg' /usr/local/src/APC-3.1.5/apc.c:453: error: 'apc_regex' has no member named 'nreg' /usr/local/src/APC-3.1.5/apc.c:453: error: 'apc_regex' has no member named 'nreg' make: *** [apc.lo] Error 1

Then you have to install pcre and make sure it's from the / directory or it will not install.

yum install pcre-devel

make
make install
Joseph Lust
  • 343
  • 2
  • 7
Chris_O
  • 737
  • 4
  • 15
0

it looks like you are trying to install APC on a system running PHP < 5.2.x. Version 3.1 of APC requires 5.2.x. I'm assuming your running CentOS 5.5 which ships with PHP 5.1.x.

try compiling and installing APC 3.0.19 from http://pecl.php.net/package/APC. We have had success deploying APC 3.0 on our CentOS servers.

  • 1
    No I have php 5.3.3 installed and still the pecl wont install it correctly... i think their repo is corrupted. I had as you suggested to manually compile it. – sangoku Nov 29 '10 at 11:51
  • @sangoku : me too struck with the same. if you got any solution plz share here. my php version is 5.3.2 and gets this error `procedure entry point pcre_exe could not be located` – RSK Nov 30 '10 at 09:01
0

In Ubuntu:

aptitude install libpcre3-dev

And then:

pecl install apc
e.a.
  • 111
  • 2