memcache.c:1970: error: too few arguments to function ‘zend_list_insert’

php 5.4.x에서 memcache 2.2.6 연동시 생기는 문제이며 이는 memcache가 php 5.4.x 버전을 지원하지 않습니다.
해결법은 php svn repository에서 최신의 소스 파일을 다운로드 받아 설치하는 방법이 있습니다.

아래 주소에서 “memcache.c, php_memcache.h, memcache_queue.c” 파일을 다운로드 받아줍니다.
(wget의 -O 옵션은 documents file로 다운로드 받겠다는 뜻이며 뒤에 revision은 php svn repository에서 해당 파일에 보이는 Rev를 적어주시면 되겠습니다.)

http://svn.php.net/viewvc/pecl/memcache/trunk/

[root@yongbok ~]# cd /usr/local/memcache-2.2.6
[root@yongbok ~]# wget -O memcache.c http://svn.php.net/viewvc/pecl/memcache/trunk/memcache.c?revision=319585
[root@yongbok ~]# wget -O php_memcache.h http://svn.php.net/viewvc/pecl/memcache/trunk/php_memcache.h?revision=323682
[root@yongbok ~]# wget -O memcache_queue.c http://svn.php.net/viewvc/pecl/memcache/trunk/memcache_queue.c?revision=303929

이전에 컴파일된 것을 clean 하시고 재컴파일 해보시면 됩니다.

[root@yongbok ~]# cd /usr/local/memcache-2.2.6
[root@yongbok ~]# make clean
[root@yongbok ~]# /usr/local/php-5.5.4/bin/phpize
[root@yongbok ~]# ./configure –with-php-config=/usr/local/php-5.5.4/bin/php-config
[root@yongbok ~]# make
———————————————————————-
Libraries have been installed in:
/usr/local/src/memcache-2.2.6/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR’
flag during linking and do at least one of the following:
– add LIBDIR to the `LD_LIBRARY_PATH’ environment variable
during execution
– add LIBDIR to the `LD_RUN_PATH’ environment variable
during linking
– use the `-Wl,–rpath -Wl,LIBDIR’ linker flag

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
———————————————————————-

Build complete.
Don’t forget to run ‘make test’.
[root@yongbok ~]# make install

Thanks. :D

Loading Disqus Comments ...
Loading Facebook Comments ...

No Trackbacks.