Connection Setup PHP with SAP on Linux

주선입니다.

제목대로 PHP에 SAP모듈 붙이기입니다. 언젠가 한번 작업해준 적이 있는데 일반적으로 자주 쓰는 것도 아니고 인터넷에 잘 나와있지 않아서 얘먹었던 적이 있어 누군가에게 도움이 되지 않을까 싶어 예전에 메모해 둔것을 기록차 남겨봅니다.

용도는 PHP에서 SAP에서 만든 함수를 호출하여 데이터를 리턴 받는 모듈입니다. (saprfc 라고 합니다. SAP의 클라이언트죠…)

사전작업

설치된 php7.4 제거
yum remove php*

기본으로 설치될 PHP 버전를 5.4로 변경
yum-config-manager –disable remi-php74
yum-config-manager –enable remi-php54

php 설치
yum install php php-devel
(추후 필요 라이브러리는 추가될수있음 php-mysql php-gd php-mbstring php-xml 등을 설치 )

SAP공식 설치가이드

https://blogs.sap.com/2012/03/27/connection-setup-php-with-sap-on-linux/

* 기본적으로는 설치가이드를 보면서 따라해보았습니다.

1. rfcsdk 설치
Non-Unicode SAP RFCSDK 6.20 for your platform here RFC_43-20000055_SDKLinux_on_IA32_32bit.SAR
해당파일은 SAP사이트에서 로그인하여 받아야 함.

다운로드 후 /usr/sap/rfcsdk 배치 및 권한설정(SAP 블로그 참조)

2. php extenstion 설치
http://saprfc.sourceforge.net/
saprfc-1.4.1.tar.gz 다운로드
phpize
./configure
zend 오류로 인한 버전에 맞는 zendGuard 설치

계속 되는 Zend 관련 오류로인하여 다음과 같은 조치로 소스코드를 수정함. (출처: stackoverflow )
———————–
Downloaded rfcsdk 7.20 and uploaded in /usr/local/rfcsdk
Uploaded librfccm.so patch in rfcsdk/lib
Extracted saprfc-1.4.1 in my root directory
edited file saprfc-1.4.1/saprfc.c (on line no.47 changed function_entry to zend_function_entry )
in saprfc-1.4.1 executed following command

소스파일의 function_entry 라는 함수를 찾아서 zend_function_entry로 이름을 변경해야함

phpize
./configure

(이렇게해서 빌드가되지 않는다면 yum install gcc 설치)

make
make install

(소스 편집후 빌드 성공)

/etc/php.ini 파일에 익스텐션 폴더의 경로를 확인해보고 다음 내용을 추가

extension_dir = “/usr/lib64/php/modules/”
added extension=saprfc.so

3. 설치확인

php -v
오류 : (libstdc++.so.5: cannot open shared object file)

compat-libstdc 패키지 추가설치

yum install compat-libstdc++-33

php -m

[PHP Modules]

saprfc
기타등등 여러가지 모듈들

4. 웹서버 재시작

service httpd restart

끝~

기타 자세한 코드는 검색해보기 바랍니다.

(프로시저 같은것 실행하는거라 코드가 그렇게 어렵진 않음. )

오늘은 여기까지 ..

다음에 또만나요~

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.