HP-UX

오라클 연동이여..

 
이주영_2
조언자

오라클 연동이여..

김왕기님.. 올려주신 답변대루 실행해봤는데요..

잘 안되네요...



1,2,3은 제대루 확인이 되구요..

4번 부터가 문젠데..

오라클이.. /fsoracle/... 이렇게 설치가 되어있거든요..

/fsoracle 아래에 가니깐.. ".profile" 이 있어서 열었는데..



------------------------------------------------------



# @(#)B.11.11_LR



# Default user .profile file (/usr/bin/sh initialization).



# Set up the terminal:

if

then

eval ` tset -s -Q -m ':?hp' `

else

eval ` tset -s -Q `

fi

stty erase "^H" kill "^U" intr "^C" eof "^D"

stty hupcl ixon ixoff

tabs



# Set up the search paths:

PATH=$PATH:.



# Set up the shell environment:

set -u

trap "echo 'logout'" 0



# Set up the shell variables:

EDITOR=vi

export EDITOR



# for Oracle

export ORACLE_BASE=/fsoracle/app/oracle

export ORACLE_HOME=/fsoracle/app/oracle/product

export ORACLE_SID=DSWONA1

export PATH=$PATH:$ORACLE_HOME/bin

export NLS_LANG=American_America.KO16KSC5601

export DISPLAY=172.17.24.35:0.0



export PS1=''

export TMPDIR=/tmp

export TMP=/tmp

stty erase ^H

-------------------------------------------------------

이렇게 나오거든요..



이렇게 되면 맞는건가요?

apachectl 중에.. oracle_home하구.. oracle_sid만.. 저 위에 정보대루 고쳐줬는데.. 안되네요..



phpinfo 해두.. oracle_home, oracle_sid 정보가 안나오거든요..

역시나.. undefined function... 이렇게 나오구요...



다른 부분의 profile이나.. path를 설정해줘야 하는 부분은 없어요~?



아.. 미치겠네여.. ^^;;; 좀 도와주세요... ㅡㅡ;;;



------------------ 올려주셨던 내용 --



1. /opt/hpws/apache/conf/httpd.conf

LoadModule php4_module /opt/hpws/apache/modules/libphp4.so

2. /opt/hpws/apache/conf/php.ini

extension=oci8.sl ;uncomment

3. /opt/hpws/apache/bin/apachectl

# environment variable to load libraries from apache-home

export SHLIB_PATH=$APACHE_PREFIX/lib:$APACHE_PREFIX/lib/LDAP:$SHLIB_PATH



# for using PHP with oracle support, set the following

export ORACLE_HOME=/db/ora815

export ORACLE_SID=ora815

export SHLIB_PATH=$ORACLE_HOME/lib:$APACHE_PREFIX/php/lib/php/extensions:$SHLIB_

PATH



# for using PHP on HP-UX set PHPRC to location of php.ini

export PHPRC=$APACHE_PREFIX/conf



#

# HP-UX does not have a complete support for dynamic loading of

# libraries with thread local storage (TLS). The following

# environment variable needs to be set-up to use PHP. It would

# require the system to be loaded with an ld patch PHSS_23440 or later.

# Uncomment the following line and ensure the paths are correct before

# using PHP's Oracle extension.



#export LD_PRELOAD="$LD_PRELOAD:$ORACLE_HOME/JRE/lib/PA_RISC/native_threads/libj

ava.sl"



4. check $ORACLE_HOME/.profile

export ORACLE_SID=ora815

export ORACLE_HOME=/db/ora815

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export SHLIB_PATH=$ORACLE_HOME/lib:/usr/lib

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

export NLS_LANG=american_america.KO16KSC5601

export TERM=hp

# export TERM=vt100

# export TERM=dtterm

export PATH=$ORACLE_HOME/bin:$PATH:/usr/sbin

export TMPDIR=/tmp



5. phpinfo()

ORACLE_SID ora815

ORACLE_HOME /db/ora815



oci8

OCI8 Support enabled

Revision $Revision: 1.169.2.3 $

Oracle Version

Compile-time ORACLE_HOME

Libraries Used



------------------------------------------------
11 응답 11
이주영_2
조언자

오라클 연동이여..

이리저리 해봐두 당최... 되질 않네요.. ㅡㅡ

죄송하지만.. 오라클과 php 연동하는 과정을.. 처음 시작부터 자세히.. 좀.. 적어주실 수 없으신지.. ㅡㅡ;;



어딘가에.. path 나.. 이런 설정이 빠진 거 같은데.. 도저히 못 찾겠어서요...

부탁드립니다..
wang gi kim
임시 조언자

오라클 연동이여..

글쎄요... 정확히 맞추었다면 되어야 하는데 이상하군요..

다시 한번 지난번에 제가 보내드린 자료를 토대로 설정을 아래와

같이 맞춰본뒤 다시 리플달아주세요....

그리구여..."undefined function"이 메세지를 자세하게 올려주시믄

문제를 해결하는데 마는 도움이 될것 같습니다.



LD_PRELOAD : (Oracle extension only on PA-RISC)

HP-UX does not have full support for dynamic loading of

libraries with thread local storage (TLS).

The following environment variable needs to be setup to use

PHP's oracle extension.

It would require the system to be loaded with an ld patch

or later.





SHLIB_PATH :

You cannot mix 32-bit and 64-bit code.

You need to use the 32-bit oracle client side libraries.

Ensure SHLIB_PATH does not have any references to 64-bit

libraries ie:



export

SHLIB_PATH=$ORACLE_HOME/lib32:$APACHE_PREFIX/php/lib/php/extensions:$SHLIB_PATH





Under $ORACLE_HOME/lib32 create a symbolic link named

libclntsh.sl.8.0 that points to libclntsh.sl.9.0.

The libclntsh.sl.9.0 file should be present in $ORACLE_HOME/lib32





Now restart Apache and see if the extension is loaded and that

no errors occur.

위의 내용대로 32bit로 구성해본뒤에 나타나는 error message를

다시 한번 올려주세요..



이주영_2
조언자

오라클 연동이여..

제가 오라클을 직접 설치한게 아니라서요..

path를 정확히 모르겟거든요..

오라클이 두군데 설치가 되어 있는거 같은데..

첫번째는.. /oracle/app/oracle/product/7.3.4

두번째는.. /fsoracle/app/oracle/product 이렇게요..



그런데 첫번째 7.3.4 에 들어가면 .profile 파일이 없구요.

두분째 product 폴더에 가면. .profile 파일이 있어요..

그런데.. profile이...

/fsoracle과...

/fsoracle/app/oracle/product 에 각각 하나씩 있어요..





/fsoracle 아래에 있는 .profile 은..



------------------------------------------------------



# @(#)B.11.11_LR



# Default user .profile file (/usr/bin/sh initialization).



# Set up the terminal:

if

then

eval ` tset -s -Q -m ':?hp' `

else

eval ` tset -s -Q `

fi

stty erase "^H" kill "^U" intr "^C" eof "^D"

stty hupcl ixon ixoff

tabs



# Set up the search paths:

PATH=$PATH:.



# Set up the shell environment:

set -u

trap "echo 'logout'" 0



# Set up the shell variables:

EDITOR=vi

export EDITOR



# for Oracle

export ORACLE_BASE=/fsoracle/app/oracle

export ORACLE_HOME=/fsoracle/app/oracle/product

export ORACLE_SID=DSWONA1

export PATH=$PATH:$ORACLE_HOME/bin

export NLS_LANG=American_America.KO16KSC5601

export DISPLAY=172.17.24.35:0.0



export PS1=''

export TMPDIR=/tmp

export TMP=/tmp

stty erase ^H

-------------------------------------------------------

이렇구요...





/fsoracle/app/oracle/product 의 ".profile"을 열면..

______________________________________________



then

eval ` tset -s -Q -m ':?hp' `

else

eval ` tset -s -Q `

fi

stty erase "^H" kill "^U" intr "^C" eof "^D"

stty hupcl ixon ixoff

tabs



# Set up the search paths:

PATH=$PATH:.



# Set up the shell environment:

set -u

trap "echo 'logout'" 0



# Set up the shell variables:

EDITOR=vi

export EDITOR



# Oracle Environment Variables

umask 022

export ORACLE_SID=ORA7

export ORACLE_BASE=/oracle/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/7.3.4

export ORA_NLS32=$ORACLE_HOME/ocommon/nls/admin/data

export TNS_ADMIN=$ORACLE_HOME/network/admin

export TMPDIR=$ORACLE_BASE/tmp

export ORACLE_DOC=$ORACLE_BASE/doc

export NLS_LANG=American_America.KO16KSC5601

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/usr/lib

export SHLIB_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/usr/lib

export NLS_DATE_FORMAT='YYYY/MM/DD'

export EPC_DISABLED=TRUE

export PATH=$ORACLE_HOME/bin:$PATH

export TERM=vt100

export ORACLE_TERM=vt100

export ORACLE_OWNER=oracle



alias ob='cd $ORACLE_BASE'

alias oh='cd $ORACLE_HOME'

alias nh='cd $ORACLE_HOME/network/admin'

alias dbs='cd $ORACLE_HOME/dbs'

alias udump='cd $ORACLE_BASE/admin/$ORACLE_SID/udump'

alias bdump='cd $ORACLE_BASE/admin/$ORACLE_SID/bdump'

alias cdump='cd $ORACLE_BASE/admin/$ORACLE_SID/cdump'

alias pfile='cd $ORACLE_BASE/admin/$ORACLE_SID/pfile'

alias odata='cd $ORACLE_BASE/oradata/$ORACLE_SID'



set -o vi

______________________________________________



이렇게 나오거든요..

원래 이렇게 두갠가요~? 아닐꺼 같은데..



모가 잘못됐는지 모르겠어요.. 휴...





sqlplus 는 아래 정보로 접속이 모두 되구요..

phpinfo를 했을때는.. oracle에 대한 정보가 붙어올라오지 않구요..



에러메세지는...

$connection = ora_logon("cim_hb","12345","cim_kb") or die ("couldn't logon to database");



이렇게 했을때..



Fetal error :Call to undefined function:ora_logon() in /home/ww/test.php on line 40 이렇게 나와요..



wang gi kim
임시 조언자

오라클 연동이여..

환경파일이 정말 이상하게 설정되어있군요.

====================================

1. /etc/PATH에 실제 oracle 9i로 설정되었는지 확인

2. sqlplus 실행시 oracle 9i가 나타난이유는 $ORACLE_HOME/network/

admin/tnsnames.ora file check.

3. 위의 oracle home directory가 oracle 7.3.4로 되어있습니다.

oracle 9i home_directory를 정확히 기재하십시오.

export ORACLE_HOME=/fsoracle/app/oracle/product

export ORACLE_SID=DSWONA1

위부분을 탄다면 oracle7.3.4를 따라가게 되어있습니다.



ex)

export ORACLE_BASE=/fsoracle/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product

export ORACLE_SID=DSWONA1



;위의 환경파일및 path를 oracle9i설정으로 수정하세요.

($ORACLE_HOME/product/.profile)

;다시한번 check해 보십시오.
이주영_2
조언자

오라클 연동이여..

답변 감사 드리구요...



1. /etc/PATH에 실제 oracle 9i로 설정되었는지 확인

-> oracle에 대한 설정부분이 없는 거 같구요..



2. sqlplus 실행시 oracle 9i가 나타난이유는 $ORACLE_HOME/network/

admin/tnsnames.ora file check.

-> 디렉토리를 어디루 가서 확인해야 되요..?

/fsoracle/app/oracle/product/network... 인지...

/oracle/app/oracle/product/7.3.4/network... 인지..

두군데라서 정확히 어딘질 모르겠어요.. ㅡㅡ

(게다가.. 오라클에서 나와서 깔아줬다는데.. 이걸 어디루 질문을 해야하는지 참.. )







3. 위의 oracle home directory가 oracle 7.3.4로 되어있습니다.

oracle 9i home_directory를 정확히 기재하십시오.

export ORACLE_HOME=/fsoracle/app/oracle/product

export ORACLE_SID=DSWONA1

위부분을 탄다면 oracle7.3.4를 따라가게 되어있습니다.



ex)

export ORACLE_BASE=/fsoracle/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product

export ORACLE_SID=DSWONA1



;위의 환경파일및 path를 oracle9i설정으로 수정하세요.

($ORACLE_HOME/product/.profile)

-> 이것두 마찬가지네요.. 어느 디렉토리의 profile을 바야하는지 모르겠어요..





제 생각엔.. /fsoracle/app/oracle/product 가 맞을꺼 같은에요..

여기서 오라클의 버전을 알아볼 수 있는 방법은 없어요~?

그리구.. 여기가 맞다면..

profile 파일을 보려면..

/fsoracle/.profile 을 봐야해요..? 아니면

/fsoracle/app/oracle/product/.profile 을 봐야 해요?



휴.. 정말 힘드네요..

고광태
중학생

오라클 연동이여..

제 생각엔.. /fsoracle/app/oracle/product 가 맞을꺼 같은에요..

여기서 오라클의 버전을 알아볼 수 있는 방법은 없어요~?

그리구.. 여기가 맞다면..

profile 파일을 보려면..

/fsoracle/.profile 을 봐야해요..? 아니면

/fsoracle/app/oracle/product/.profile 을 봐야 해요?



여기에 대한 답변은



/etc/passwd 파일을 보면 fsoracle 의 유저가 홈디렉토리를 어디를 사용하는지에 따라서 .profile 이 읽혀집니다.



참고하시길..
이주영_2
조언자

오라클 연동이여..

다른 설정들은 다 맞춰서 한거 같은데.. 안되거든요..



다시 처음부터 한다는 생각으루.. 일단 근본으로 돌아가서.. 휴...

apachectl 은 수정해줬구요..

php.ini도 수정했구요...



그런데 phpinfo()에 오라클 설정에 대한 값들이 전혀 나오질 않아요..



중간 부분에.. apache2.0

Additional Modules



Environment 라고 되어 있고..

MANPATH

SHLIB_PATH

PATH

.

.

.

쭈우욱..

.

.





이렇게 나오잖아요..

PATH 부분에.. 오라클 path에 대한 설정이 들어가게 하려면 어떻게 해야하나요~?

어떤 파일을 수정해 줘야해요?



여기저기 보다보니까.. /etc/profile 도 변경해줘야 한다고 하구.. 뭐.. 이것저것 잇던데..(우리 서버엔 /etc/profile이 없어요... ㅡㅡ)



이렇게 또 변경해줘야 하는 파일이 어떤것들이 있어요..?
wang gi kim
임시 조언자

오라클 연동이여..

/etc/passwd 계정의 홈 dir를 찾으면 될것 같은데요.

또한 /etc/PATH에 설정되어있지 않아도 관계가 없는데요

제가 보기에도 $ORACLE_HOME/product가 맞는것 같구요.

누군가 환경파일을 이쪽으로 oracle7.3.4 profile을

copy한것 같습니다.



#su - ora9i계정

;이게 잘못이라면 path를 정확히 수정하십시오.(/etc/passwd)

;$ORACLE_HOME/product라면 9i에 맞게끔 .profile 수정하시면 됩니다.

;(현재는 이 path를 타고 들어가게 되면 ora7.3.4환경으로갑니다.)



;/oracle..../.product-> oracle7.3.4

;/fsoracle .../.product-> oracle 9i 같은데...

;(.profile을 왜 oracle7.3.4를 타게 했을꼬...아마 copy?

그렇다면 수정을 해보심이....)



추가답변: 헉! /etc/profile도 없어요? shell은 어떤shell를 사용하시는데요...hp-ux에서는 기본적으로 /etc/profile을 제공하는데요...

허허-- 이일을 어쩐다!!!
이주영_2
조언자

오라클 연동이여..

에거거.. 제가 너무 여기저기 많이 봐서 헷갈렸나봐요..

/etc/profile 있구요.. ^^;;;



어떻게 수정해야하는지 좀 알려주시겠어요,,?



일단.. /fsoracle/app/oracle/product 가.. 맞다는 가정으루 셋팅을 해보구 있구요..

다른건 다 맞춰서 바꿔준거 같거든요..

/etc/profile을 바꿔줘야 할꺼 같은데..

맨 윗 부분에.. path 하구..

아래 부분에 오라클 환경변수를 추가해줘야하다는 건.. 대략., 눈치챘는데..





지금

PATH=/usr/bin:/usr/ccs/bin:/usr/contrib/bin

MANPATH=/usr/share/man:/usr/contrib/man:/usr/local/man

이렇게 되어 있거든요..



요기 PATH에..

/fsoracle/app/oracle/product 이것 넣어주구.. 아래부분에 환경변수 긁어다 넣어주면 맞는거에여~?



이거 수정하구 뭐 재시작을 해야한다거나 해야하는 건 없어요~?

휴...