Search code examples
phpcompilationcentosapc

APC (trunk) Install With PHP 5.4 On CentOS


Has anybody successfully installed APC on php 5.4? According to another thread I found on StackOverflow, seems possible using the latest trunk.

I grabbed trunk, phpize, ./configure, but when I try and run make I get the following errors:

>/bin/sh /root/trunk/libtool --mode=compile cc  -I. -I/root/trunk -DPHP_ATOM_INC -I/root/trunk/include -I/root/trunk/main -I/root/trunk -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 /root/trunk/apc.c -o apc.lo   
libtool: compile:  cc -I. -I/root/trunk -DPHP_ATOM_INC -I/root/trunk/include -I/root/trunk/main -I/root/trunk -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 /root/trunk/apc.c  -fPIC -DPIC -o .libs/apc.o    
In file included from /root/trunk/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 /root/trunk/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’
/root/trunk/apc.c: In function ‘apc_search_paths’:
/root/trunk/apc.c:361: warning: assignment discards qualifiers from pointer target type
/root/trunk/apc.c: At top level:
/root/trunk/apc.c:394: error: expected specifier-qualifier-list before ‘pcre’
/root/trunk/apc.c: In function ‘apc_regex_compile_array’:
/root/trunk/apc.c:455: error: ‘apc_regex’ has no member named ‘preg’
/root/trunk/apc.c:455: error: ‘apc_regex’ has no member named ‘preg’
/root/trunk/apc.c:456: error: ‘apc_regex’ has no member named ‘nreg’
/root/trunk/apc.c:456: error: ‘apc_regex’ has no member named ‘nreg’
/root/trunk/apc.c: In function ‘apc_regex_match_array’:
/root/trunk/apc.c:488: error: ‘apc_regex’ has no member named ‘preg’
/root/trunk/apc.c:488: error: ‘apc_regex’ has no member named ‘preg’
/root/trunk/apc.c:489: error: ‘apc_regex’ has no member named ‘nreg’
/root/trunk/apc.c:489: error: ‘apc_regex’ has no member named ‘nreg’
make: *** [apc.lo] Error 1

Solution

  • You need to have the development headers for PCRE installed.

    If you're on Centos or Fedora (or REPL or ...) you can get them with an:

    • yum install pcre-devel

    If you're on Debian or Ubuntu, you can get them with an:

    • apt-get install libpcre3-dev