본문 바로가기

프로그램 경험/운영체제

[Solaris] oci8 설치

--------------------------------------------------------------
bash-3.00# pecl install oci8
 
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
/usr/local/bin/autoconf: /usr/local/bin/autom4te: not found
--------------------------------------------------------------

첨부터 오류... 해당 경로에 가보면 다 있다..ㅡㅡ;
다음과 같이 링크 잡아주면 오류는 사라진다.
--------------------------------------------------------------
bash-3.00#  ln -s /bin/perl /usr/local/bin/perl
--------------------------------------------------------------

다시 시도...
--------------------------------------------------------------
bash-3.00# pecl install oci8
...
gcc -shared -Wl,-h -Wl,oci8.so -o .libs/oci8.so  .libs/oci8.o .libs/oci8_lob.o .libs/oci8_statement.o .libs/oci8_collection.o .libs/oci8_interface.o  -R/usr/local/oracle/instantclient_64 -L/usr/local/oracle/instantclient_64 -lclntsh -lc
ld: fatal: file /usr/local/oracle/instantclient_64/libclntsh.so: wrong ELF class: ELFCLASS64
ld: fatal: File processing errors. No output written to .libs/oci8.so
collect2: ld returned 1 exit status
make: *** [oci8.la] ???? 1
ERROR: `make' failed
-------------------------------------------------------------- 

왠지 64비트 클라이언트라 그런것 같아서 다시 32비트 클라이언트를 받아서 해보니 된다.
이상하다... 솔라리스 64비트인데...
 
이제 php.ini 에 extension=oci8.so 한줄 추가해주고~~ 
가벼운 마음으로 phpinfo를 봤지만... OCI8은 없었다...

.profile에 LD_LIBRARY_PATH 를 안넣었나 확인하고 다시 해봤지만 뜨지 않는다.
근데 phpinfo에 나타난  LD_LIBRARY_PATH를 확인해보니 instantclient 경로가 없다.

echo $LD_LIBRARY_PATH 해도 잘 나오는데 무슨일인가?
찾다보니 쉘마다 설정이 다르다는 글을 찾았다.

여기에서 사용하는 기본 쉘은 Bourne Shell인데 사용하기 불편해서 bash에서 작업한게 적용이 안된 모양이었다.
--------------------------------------------------------------
# echo $SHELL   //자신이 사용하는 쉘 찾기
/sbin/sh
--------------------------------------------------------------

이것 저것 해보았지만 그렇지도 않은 모양이다...ㅡㅡ;;;
대체 어디를 수정해야 LD_LIBRARY_PATH가 변경 된단 말인가!!!

어떤 글에서 솔라리스에서 경로 넣는 곳을 찾으려면 crle 명령어를 입력해 보란다.
--------------------------------------------------------------
bash-3.00# crle

?⺻ ???? ???? (/var/ld/ld.config)??(??) ã?? ????
  ?⺻ ???̺귯?? ??? (ELF):   /lib:/usr/lib  (?ý??? ?⺻??)
  ?????? ???丮 (ELF):        /lib/secure:/usr/lib/secure  (?ý??? ?⺻??)
--------------------------------------------------------------

한글이 깨졌지만 /var/ld/ld.config 여기가 경로인듯하여 가서 보니 ld.config가 없어서 
새로 만들고 그안에  LD_LIBRARY_PATH를 넣어주었다.

훗... 안된다 ㅠㅠ

누군가 /etc/profile에 넣어줘야 한다고 한다.
아래와 같이 넣어 주었다.
--------------------------------------------------------------
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/oracle/instantclient_32
export LD_LIBRARY_PATH 
--------------------------------------------------------------
 
훗... 안된다 ㅠㅠ

난 php를 재 컴파일 하지 않고 하려고 했는데...
재 컴파일 하면 된다고 한다...

제길...