크로스컴파일 해서 넣는데
php / php-cgi를 실행하면 계속 확장기능을 쓸수 없다고 나와서
의아한 나머지 검색을 해보니
dlopen 이라는 녀석에서 no가 뜬다 -_-!!
*.so로 제공되는 확장기능을 당연히 dlopen()을 쓸수 없으면 dynamic linking을 쓸수 없기에 비활성화 되는 것 -_-
configure에서 강제로 해당 부분을 주석 처리하고 넘기는 수 밖에 없다.
php / php-cgi를 실행하면 계속 확장기능을 쓸수 없다고 나와서
의아한 나머지 검색을 해보니
dlopen 이라는 녀석에서 no가 뜬다 -_-!!
Running system checks
checking for sendmail... no
checking whether system uses EBCDIC... no
checking whether byte ordering is bigendian... unknown
checking whether writing to stdout works... no
checking for socket... yes
checking for socketpair... yes
checking for htonl... yes
checking for gethostname... yes
checking for gethostbyaddr... yes
checking for yp_get_default_domain... no
checking for __yp_get_default_domain... no
checking for yp_get_default_domain in -lnsl... yes
checking for dlopen... no
checking for __dlopen... no
checking for dlopen in -ldl... yes |
소스를 뒤져보면.. dlopen이라는게 이렇게 있는데
$ vi Zend/zend.h
#if defined(HAVE_LIBDL) && !defined(ZEND_WIN32)
# ifndef RTLD_LAZY
# define RTLD_LAZY 1 /* Solaris 1, FreeBSD's (2.1.7.1 and older) */
# endif
# ifndef RTLD_GLOBAL
# define RTLD_GLOBAL 0
# endif
# if defined(RTLD_GROUP) && defined(RTLD_WORLD) && defined(RTLD_PARENT)
# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL | RTLD_GROUP | RTLD_WORLD | RTLD_PARENT)
# elif defined(RTLD_DEEPBIND)
# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL | RTLD_DEEPBIND)
# else
# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL)
# endif
# define DL_UNLOAD dlclose
# if defined(DLSYM_NEEDS_UNDERSCORE)
# define DL_FETCH_SYMBOL(h,s) dlsym((h), "_" s)
# else
# define DL_FETCH_SYMBOL dlsym
# endif
# define DL_ERROR dlerror
# define DL_HANDLE void *
# define ZEND_EXTENSIONS_SUPPORT 1
#elif defined(ZEND_WIN32)
# define DL_LOAD(libname) LoadLibrary(libname)
# define DL_FETCH_SYMBOL GetProcAddress
# define DL_UNLOAD FreeLibrary
# define DL_HANDLE HMODULE
# define ZEND_EXTENSIONS_SUPPORT 1
#else
# define DL_HANDLE void *
# define ZEND_EXTENSIONS_SUPPORT 0
#endif [링크 : http://www.opensource.apple.com/.../apache_mod_php-18.8/php/Zend/zend_extensions.c] |
*.so로 제공되는 확장기능을 당연히 dlopen()을 쓸수 없으면 dynamic linking을 쓸수 없기에 비활성화 되는 것 -_-
configure에서 강제로 해당 부분을 주석 처리하고 넘기는 수 밖에 없다.
Name
dladdr, dlclose, dlerror, dlopen, dlsym, dlvsym - programming interface to dynamic linking loader
Synopsis
#include <dlfcn.h>
void *dlopen(const char *filename, int flag);
char *dlerror(void);
void *dlsym(void *handle, const char *symbol);
int dlclose(void *handle);
Link with -ldl. |
'Programming > php' 카테고리의 다른 글
php 5.3.22 / xcache 1.3.2 (0) | 2014.10.15 |
---|---|
php 5.5.17 opcache / arm (0) | 2014.10.14 |
php php-cgi 차이점? (0) | 2014.10.10 |
<? <?php 설정 (0) | 2014.10.10 |
lighttpd + php-fpm (0) | 2014.10.10 |