안녕하세요.
CGI로 작성된 인포믹스 클라이언트 프로그램은
--static으로 컴파일되지 않았을 경우
$INFORMIXDIR/lib
$INFORMIXDIR/lib/esql
$INFORMIXDIR/lib/dmi
디렉토리의 공유라이브러리를 참조하여 사용하게 됩니다.
리눅의 경우 /etc/ld.so.conf에 $INFORMIXDIR=/opt/informix라면
/opt/informix/lib
/opt/informix/lib/esql
/opt/informix/lib/dmi
를 추가한 후 #ldconfig -v 를 실행하면 ld가 공유라이브러리를 찾을 때
인포믹스 라이브러리도 찾아주게 됩니다.
위의 설정을 할 수 없을 경우 /etc/profile에
LD_LIBRARY_PATH를 설정해 줍니다. HP의 경우는 SHLIB_PATH를
설정해 줍니다. 웹서버에 환경변수를 설정해주어도
CGI실행시에는 이것이 적용이 되지 않습니다. 그러므로
/etc/profile에 설정해야 하며, 기타의 환경변수는
데이터베이스를 접속하기전에 putenv()를 사용하여
환경변수를 설정하면 됩니다.
위와 같이 설정을 했어도 오류가 발생할 경우에는
인포믹스의 공유라이브러리를 /usr/lib에 복사하거나
심볼릭링크를 설정하여 사용하면 됩니다.
그럼... 수고하세요.
> cgi프로그램을 제작중입니다.
> 인포믹스와 연동되는 esql프로그램입니다.
>
> 컴파일한 바이너리를 cgi-bin에 넣고 웹상에서 실행시키면
> internal server error.. 가 발생하는군요.
>
> 오류로그파일을 보면, 인포믹스 라이브러리를 아파치가 찾질 못하고 있습니다.
> 아파치에게 다른 경로의 라이브러리 경로를 등록시키려면 어떻게 해야 할까요?
>
> 다음은 오류 로그의 일부분입니다.
> [Thu Jul 13 10:ibifsql.so: open failed: No such file or directory
> [Thu Jul 13 10:56:06 2000] [error] [client 128.2.210.41] Premature end of
> script
> headers: /export/home/home0/apache/cgi-bin/snc.cgi
> ld.so.1: snc.cgi: fatal: libifsql.so: open f:iled: No such file or directory
> [Thu Jul 13 10:56:07 2000] [error] [client 128.2.210.41] Premature end of
> script
> headers: /export/home/home0/apache/cgi-bin/snc.cgi
>
> 부탁드리겠습니다.
|