안녕하세요.
cubrid 를 사용하기 위해 설치하였는데요.
php 버전이 4.4.9 입니다.
php 5.0 버전에서는 연동이 정상적으로 되는것을 확인하였는데요.
path 등 을 다 맞추었는데도 오류가 납니다.
설치 버전
: cubrid-php-8.3.1.2003
php -i |grep cubird 해서 보면,
PHP Warning: Unknown(): Unable to load dynamic library './cubird.so' - ./cubird.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 4.4.9 (cli) (built: Jun 22 2010 23:49:07)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies
[root@localhost src]# cat /etc/redhat-release
CentOS release 5.5 (Final)
[root@localhost src]# php -i |grep cub
PHP Warning: Unknown(): Unable to load dynamic library './cubird.so' - ./cubird.so: cannot open shared object file: No such file or directory in Unknown on line 0
CUBRID => /home/cubrid/CUBRID
LD_LIBRARY_PATH => /home/cubrid/CUBRID/lib
LIBPATH => /home/cubrid/CUBRID/lib
PATH => /home/cubrid/CUBRID/bin:/home/cubrid/CUBRID/cubridmanager:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/php/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/apache/bin:/usr/local/mysql/bin:/root/bin
SHLIB_PATH => /home/cubrid/CUBRID/lib
CUBRID_DATABASES => /home/cubrid/CUBRID/databases
_SERVER["CUBRID"] => /home/cubrid/CUBRID
_SERVER["LD_LIBRARY_PATH"] => /home/cubrid/CUBRID/lib
_SERVER["LIBPATH"] => /home/cubrid/CUBRID/lib
_SERVER["PATH"] => /home/cubrid/CUBRID/bin:/home/cubrid/CUBRID/cubridmanager:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/php/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/apache/bin:/usr/local/mysql/bin:/root/bin
_SERVER["SHLIB_PATH"] => /home/cubrid/CUBRID/lib
_SERVER["CUBRID_DATABASES"] => /home/cubrid/CUBRID/databases
_ENV["CUBRID"] => /home/cubrid/CUBRID
_ENV["LD_LIBRARY_PATH"] => /home/cubrid/CUBRID/lib
_ENV["LIBPATH"] => /home/cubrid/CUBRID/lib
_ENV["PATH"] => /home/cubrid/CUBRID/bin:/home/cubrid/CUBRID/cubridmanager:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/php/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/apache/bin:/usr/local/mysql/bin:/root/bin
_ENV["SHLIB_PATH"] => /home/cubrid/CUBRID/lib
_ENV["CUBRID_DATABASES"] => /home/cubrid/CUBRID/databases
이렇게 나옵니다.
PHP Warning: Unknown(): Unable to load dynamic library './cubird.so' - ./cubird.so: cannot open shared object file: No such file or directory in Unknown on line 0
나오는거면 연동이 안된거 아닌가해서요 .. ;;
그리고 설치시 make 했을때 아래와 같이 나옵니다.
(cd .libs && rm -f cubrid.la && ln -s ../cubrid.la cubrid.la)
/bin/sh /home/cubrid/cubrid-php-8.3.1.2003/php/src/libtool --mode=install cp ./cubrid.la /home/cubrid/cubrid-php-8.3.1.2003/php/src/modules
cp ./.libs/cubrid.so /home/cubrid/cubrid-php-8.3.1.2003/php/src/modules/cubrid.so
cp ./.libs/cubrid.lai /home/cubrid/cubrid-php-8.3.1.2003/php/src/modules/cubrid.la
PATH="$PATH:/sbin" ldconfig -n /home/cubrid/cubrid-php-8.3.1.2003/php/src/modules
----------------------------------------------------------------------
Libraries have been installed in:
/home/cubrid/cubrid-php-8.3.1.2003/php/src/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
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).
도움 부탁드려요 ㅠ
안녕하세요.
우선 잘아시겠지만 php 4.x를 쓰셔야 하는 특별한 이유가 없다면 업그레이드를 하시는 것이 좋을 것 같습니다.^^
일단 빌드시 에러가 없으므로 빌드는 잘 된 것 같습니다.
지금 에러는 php.ini 상에 extension_dir 관련된 문제이거나, CUBRID php module 이 사용하는 libcascci.so 를 찾지 못해 발생하는 문제일 수도 있습니다. 전자는 잘 아실 것이니 extension_dir 을 조정하시거나, cubrid.so 를 해당 위치로 옮겨주시면 됩니다.
두번째 문제는 서버상에서 ldd cubrid.so 하면 참조하는 라이브러리가 표시됩니다. 이중 libcascci.so 가 제대로 표시되는지를 보시고, 그다음 해당 위치의 so 화일에 대하여 php 구동시 올바른 접근권한을 가지는지도 확인하시면 됩니다. php 구동시키는 계정이 아닌 php 구동후 소유자에 대한 권한입니다. 기본설정은 nobody 일 수 있습니다.
2008 부터는 4.x 에 대한 설치를 특별히 언급하고 있지 않아 7.x 에서의 내용을 한번 참고해보시는 것도 좋겠습니다.
큐브리드 7.0 PHP phpize를 이용한 설치