음..... 고생많으시네요...
먼저 /opt/sybase로 했을때 컴파일이 안되는 문제는
php가 $SYBASE/OCS12_5/lib 디렉토리를 찾지 못하기 때문입니다...
예전 버전(11.9)의 sybase는 $SYBASE/lib 이런 구조로 되어있었죠....
그래서 library path에 $SYBASE/OCS-12_5/lib를 추가하는 거구요...
그렇다면 먼저 두가지 정도를 해보세요...
먼저, 현재 상태에서 interfaces 파일을 /opt/sybase/OCS-12_5밑에 카피하시고 프로그램을 다시 돌려보시구요...
이때 interfaces 파일안에 서버에 대한 정보가 제대로 들어가 있는지 먼저 확인하시구요...
그래도 안되면요....
먼저 /opt/sybase 에서
ln -s /opt/sybase/OCS-12_5/lib ./lib
라고 심볼릭링크를 만드시구요....
--with-sybase-ct=/opt/sybase 으로 컴파일후 다시 테스트해보세요...
interfaces의 정보가 제대로 등록되어 있는지 테스트하시구요...
isql -Uphpmail -P[password] -SMAIL
이 되는지 확인하시구요....
꼬옥 꼬옥 성공하세요......
고지가 바로 저깁니다.....
-- 황경욱 님이 쓰신 글:
>> 답변 감사드립니다..
>> 그런데 /etc/ld.so.conf 에 /opt/sybase/OCS-12_5/lib를 첨부하고
>> ldconfig를 실행하는거는 저도 해봤었지만 안됐습니다...
>> 아..그런데 ldconfig는 어느 디렉토리상에서나 실행시켜도 상관없는거죠?
>> 그리고 다른게 있다면 제 경우는 configure 할때
>> --with-sybase-ct=/opt/sybase 가아니라
>> --with-sybase-ct=/opt/sybase/OCS-12_5라고 했습니다.
>> 그렇게 안하면 make 시에, 파일을 찾을 수 없다는 에러가 떠서요.
>>
>> 아..근데요..Common하고 ocs가 설치되어있어야 한다고 하셨는데
>> ocs라는게 openclient를 말씀하시는건가요?
>> 제가 60일판 받는 사이트에서 찾아봐도 ocs라는 rpm이 없어서요..
>> 제 서버에 깔려있는 rpm은
>> sybase-ase-12.5-3
>> sybase-openclient-12.5-3
>> sybase-common-12.5-3
>> 입니다.
>>
>> 도대체 이유가 뭘까요?
>> sybase_open이 안된상태에서 다른 sybase함수라도 테스트 해볼 수는
>> 없나요??
>> 제 생각에는 sybase_open함수에 인자를 제대로 입력시켜준것 같은데 말이죠..
>> 첫번째 인자에는 'MAIL'이라고 sybase server name을 줬고,
>> 두번째 인자에는 'phpmail'이라는 sybase로그인 계정.(OS ID 아닙니다)
>> 세번째 인자에는 그 암호를 넣어줬습니다..
>>
>> 음...설치상의 문제인지 아님 함수를 제대로 사용을 못하고 있는거지..
>> 혼란스럽습니다......
>>
>> -- jinuki 님이 쓰신 글:
>> >> 이렇게 한번 해보세요.....
>> >>
>> >> 먼저 sybase common rpm하고 ocs rpm을 설치하시구요....(ASE12.5임다)
>> >>
>> >> root계정에서
>> >> 먼저 /etc/ld.so.conf 파일을 열어서요...
>> >> 여기에 /opt/sybase/OCS-12_5/lib를 첨가하시구요.... 저장한담에...
>> >> 프롬프트에서 ldconfig라고 실행합니다...
>> >> 글면 library path가 포함이 되구요....
>> >>
>> >> 그 담에 php 설정시 --with-sybase-ct=/opt/sybase 라고 주시구요... php 빌드를 다시 합니다....
>> >>
>> >> 이렇게 하고 다시 테스트해보세요...
>> >> 이번엔 잘될것 같습니다....
>> >>
>> >> 꼬옥 성공하시길...............
>> >>
>> >> 글구요... 밑에 isql은 mysql의 isql인것 같네요.... ^^*
>> >>
>> >>
>> >> -- 황경욱 님이 쓰신 글:
>> >> >> 안녕하세요.. 먼저 답변 감사드립니다.
>> >> >> 말씀하신대로 맨 먼저 PHP가 구동되는 os ID로 접속했을때
>> >> >> isql 명령을 시행해보니 다음과 같은 에러글이 뜹니다.
>> >> >> **********************************************
>> >> >> * unixODBC - isql *
>> >> >> **********************************************
>> >> >> * Syntax *
>> >> >> * *
>> >> >> * isql DSN [UID [PWD]] [options] *
>> >> >> * *
>> >> >> * Options *
>> >> >> * *
>> >> >> * -b Batch. No prompting etc *
>> >> >> * -dx Delimit cols with x *
>> >> >> * -w Wrap results in an HTML table *
>> >> >> * -v Verbose. *
>> >> >> * *
>> >> >> * Notes *
>> >> >> * *
>> >> >> * isql supports redirection and piping *
>> >> >> * for batch processing. *
>> >> >> * *
>> >> >> * Examples *
>> >> >> * *
>> >> >> * cat My.sql | isql WebDB MyID MyPWD -w *
>> >> >> * *
>> >> >> * Each line in My.sql must contain *
>> >> >> * exactly 1 SQL command except for the *
>> >> >> * last line which must be blank. *
>> >> >> * *
>> >> >> * Please visit; *
>> >> >> * *
>> >> >> * http://www.genix.net/unixODBC *
>> >> >> * pharvey@codebydesign.com *
>> >> >> *********************************************
>> >> >> 근데 제가 잘 몰라서 그러는데요..
>> >> >> 위의 에러는 제가 root계정으로 들어가서
>> >> >> isql명령을 친 겁니다..
>> >> >> 제가 php를 root계정으로 컴파일하고 설치했다면
>> >> >> php의 구동ID가 root맞죠?
>> >> >>
>> >> >> 근데 sybase서버의 구동 OS ID는 "sybase"입니다.
>> >> >> 그래서 "sybase" ID로 로그인한뒤에 isql을 하면 위와같은
>> >> >> 에러가 안뜨고 DB에 접속이 잘됩니다.
>> >> >>
>> >> >> 아 그런데 apache도 root계정으로 설치해줬지만
>> >> >> conf파일의 user랑 guest는 둘다 nobody니까
>> >> >> 이경우 apache의 구동 OS계정은 nobody가 되는건가요??
>> >> >> 음...그러면 php도 root계정이 아닐 수도 있겠네요?
>> >> >>
>> >> >> 아..근데 이런게 중요한게 아니죠...^^
>> >> >> 암튼 root계정에서 isql -Usa ~~를 입력하면
>> >> >> 위의 에러가 뜹니다. ">" 요건 안나오고요...
>> >> >>
>> >> >> 그럼 PHP에 접속이 안되는 이유가 이것때문인가요??
>> >> >> 어떻게 대처해야할 지 잘 모르겠습니다..
>> >> >> 답변 기다리겠습니다.
>> >> >>
>> >> >>
>> >> >>
>> >> >> -- jinuki 님이 쓰신 글:
>> >> >> >> 음냐.... 산넘어 산이네요.... ^^*
>> >> >> >> 고생이 많으신것 같은데.....
>> >> >> >>
>> >> >> >> 먼저, sybase client는 license없이도 사용하실 수 있습니다..
>> >> >> >> 기본적으로 라이센스는 server option에 관련된 부분이니까요...
>> >> >> >> 단지 클라이언트로만 사용하실때는 아무 문제 없습니다...
>> >> >> >>
>> >> >> >> 음.... 먼저 php가 구동되는 os id로 접속했을때 그 sybase서버로 접속이 가능한지 확인해보세요..
>> >> >> >> $ isql -Usa -P -S[servername]
>> >> >> >> 1>
>> >> >> >> 이렇게 되는지 부터 확인하시구요...
>> >> >> >>
>> >> >> >> 그 담에 각 환경변수를 확인해보세요...
>> >> >> >> $SYBASE
>> >> >> >> $LD_LIBRARY_PATH
>> >> >> >> $PATH
>> >> >> >>
>> >> >> >> 글구 php빌드할때 홈디렉토리는 /opt/sybase 로 주셨나요???
>> >> >> >> 그러면 /opt/sybase 밑에 lib 디렉토리를 symbolic link해줘야 할 것 같은데...
>> >> >> >>
>> >> >> >> 수고하시구요.... 잘 안되면 다시 질문 올려주세요.....
>> >> >> >>
>> >> >> >> 다시 해보시구
>> >> >> >> -- 황경욱 님이 쓰신 글:
>> >> >> >> >> 안녕하십니까....
>> >> >> >> >> 밑에 있는 글에서 php4랑 sybase12.5를 연동하는 문제에 대해서
>> >> >> >> >> 물어본 사람인데요..
>> >> >> >> >>
>> >> >> >> >> jinuki님이 말씀하신대로 sybase-12.5 open client를
>> >> >> >> >> 사이베이스 홈페이지에서 60일 trial버전을 다운받아서 설치해줬습니다.
>> >> >> >> >> 아..참고로 저는 리눅스를 사용하고 있습니다.
>> >> >> >> >>
>> >> >> >> >> 설치한 후에 php를 다시 컴파일해보니까
>> >> >> >> >> 이젠 sybase에 관련된 오류는 안뜨고 제대로 컴파일이 되는 것 같았습니다.
>> >> >> >> >>
>> >> >> >> >> 그런데 막상 웹상에서 sybase_connect()함수를 실행시켜보니까
>> >> >> >> >> 에러가뜹니다. 다음과 같이요..
>> >> >> >> >>
>> >> >> >> >> Warning: Sybase: Unable to allocate connection record in /home/www/functions/sybase.php on line 7
>> >> >> >> >> Failed to connect DB
>> >> >> >> >>
>> >> >> >> >> 서버네임이나 로그온네임,암호 등은 제대로 입력하였습니다..
>> >> >> >> >> db서버는 php랑 같이있으니까 그냥 sybase이름만 쓰면 되는거 맞죠?
>> >> >> >> >> interface에 있는 이름이요..
>> >> >> >> >> 근데도 안되네요..
>> >> >> >> >>
>> >> >> >> >> 혹시 제가 sybase-12.5-openclient를 설치하기는 했지만
>> >> >> >> >> license번호를 아직 입력을 안했는데 혹시 이것때문인가요?
>> >> >> >> >> license번호를 메일을 통해 받기는 했는데
>> >> >> >> >> 이걸 어디서 어떻게 입력해야 하는지 몰라서
>> >> >> >> >> 그냥 현재는 rpm ivh 만 된 상태입니다..
>> >> >> >> >>
>> >> >> >> >> 아..근데 설치되어있던 sybase-ASE-12.5 자체는 정품입니다..
>> >> >> >> >> 제가 새로 다운받은 openclient만 60일버전인거죠...
>> >> >> >> >> license를 어디서 입력해줘야하나요?
>> >> >> >> >> sybase홈페이지 가보니까 installer 를 다운받아서 실행시켜야 한다던데
>> >> >> >> >> 막상 리눅스용installer만 없습니다...ㅠ.ㅠ
>> >> >> >> >>
>> >> >> >> >> 암튼 sybase함수가 하나도 안먹혀서 죽겠어요..
>> >> >> >> >> 도움 좀 부탁드리겠습니다.
|