Install Modul SAP RFC 1.4.1 Untuk PHP 5.4.0
Setelah sebelumnya sukses memasang PHP 5.4.0 dari source code, kali ini kita akan mencoba install modul SAPRFC versi 1.4.1 untuk PHP 5.4.0. Metode yang akan digunakan masih sama, yaitu kompilasi source code. FYI, saprfc itu modul ekstensi PHP yang digunakan untuk mengakses berbagai fungsi SAP ABAP melalui RFC (Remote Function Call). Source code SAPRFC bisa didapatkan dari saprfc.sourceforge.net. Selain source code SAPRFC, kita juga butuh SDK milik SAP yang hanya bisa didapatkan jika menjadi klien SAP.
Pustaka SAP SDK yang digunakan adalah versi 6.40 non-Unicode. Ekstrak pustaka ini menggunakan SAPCAR (bisa didapatkan dari SAP). Untuk keperluan kompilasi SAPRFC kita harus menyalinnya ke /opt.
Bagi pengguna CentOS 5.5 langkah ekstra berikut perlu dijalankan karena versi glibc yang digunakan tidak sesuai dengan kebutuhan SAPRFC. Glibc yang cocok dengan SAPRFC 1.4.1 adalah 2.3.4 sedangkan yang terpasang di CentOS 5.5 versi 2.5-49.
Karena ada perubahan nama di PHP 5.4.0 maka kita harus mengubah kode pada berkas saprfc.c di bari ke-47. Ganti function_entry menjadi zend_function_entry. Tanpa perubahan ini kompilasi SAPRFC dengan PHP 5.4.0 akan gagal. Lanjutkan dengan kompilasi.
Kemudian testing.
Lalu instalasi.
Jika entry SAPRFC belum tampil di phpinfo berarti masih ada yang salah ketika melakukan kompilasi :-)
Pustaka SAP SDK yang digunakan adalah versi 6.40 non-Unicode. Ekstrak pustaka ini menggunakan SAPCAR (bisa didapatkan dari SAP). Untuk keperluan kompilasi SAPRFC kita harus menyalinnya ke /opt.
./SAPCAR -xvf RFC_58-20000055.SARUnduh dan ekstrak sour cecode SAPFC.
mv rfcsdk /opt/
wget http://prdownloads.sourceforge.net/saprfc/saprfc-1.4.1.tar.gzSebelum menjalankan skrip configure, kita harus menjalankan phpize di dalam direktori source code SAPRFC.
tar -xzvf saprfc-1.4.1.tar.gz
cd saprc-1.4.1Program phpize dipanggil lengkap dari path yang merupakan hasil kompilasi source code PHP 5.4.0. Pemanggilan seperti ini untuk menghindari penggunaan PHP versi lain jika di sistem ter-install beberapa versi PHP.
/opt/bin/phpize
Bagi pengguna CentOS 5.5 langkah ekstra berikut perlu dijalankan karena versi glibc yang digunakan tidak sesuai dengan kebutuhan SAPRFC. Glibc yang cocok dengan SAPRFC 1.4.1 adalah 2.3.4 sedangkan yang terpasang di CentOS 5.5 versi 2.5-49.
export CC=gcc34Pengguna CentOS 5.5 juga perlu memastikan paket compat-glibc-2.3.4-2.26 ter-install di sistem. Setelah itu barulah kita jalankan konfigurasi.
export CFLAGS=-I/usr/lib/i386-redhat-linux4E/include:-B/usr/lib/i386-redhat-linux4E/lib/
./configure --with-php-config=/opt/bin/php-configJika sukses akan tampak seperti pada screen shot berikut.
Karena ada perubahan nama di PHP 5.4.0 maka kita harus mengubah kode pada berkas saprfc.c di bari ke-47. Ganti function_entry menjadi zend_function_entry. Tanpa perubahan ini kompilasi SAPRFC dengan PHP 5.4.0 akan gagal. Lanjutkan dengan kompilasi.
makeJika sukses akan tampak seperti pada screen shot berikut.
Kemudian testing.
make testHasilnya tampak seperti pada screen shot berikut.
Lalu instalasi.
make installSeperti halnya modul-modul PHP yang lain kita harus menambahkan baris extension=saprfc.so di php.ini sebelum me-restart server web built-in PHP 5.4.0. Cek di phpinfo untuk memastikan SAPRFC sudah ter-install dengan benar seperti tampak pada screen shot di bawah ini.
Jika entry SAPRFC belum tampil di phpinfo berarti masih ada yang salah ketika melakukan kompilasi :-)
Pak Rotua Damanik
BalasHapusSaya sudah mencoba tutorial Bapak ini. tapi saya mengalami masalah saat install.
Yaitu saat make, ada eror yaitu :
===================================================================
# make
/bin/sh /usr/src/saprfc-1.4.1/libtool --mode=link cc -DPHP_ATOM_INC -I/usr/src/saprfc-1.4.1/include -I/usr/src/saprfc-1.4.1/main -I/usr/src/saprfc-1.4.1 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/sap/rfcsdk/include -DHAVE_CONFIG_H -g -O2 -o saprfc.la -export-dynamic -avoid-version -prefer-pic -module -rpath /usr/src/saprfc-1.4.1/modules saprfc.lo rfccal.lo -Wl,-rpath,/usr/sap/rfcsdk/lib -L/usr/sap/rfcsdk/lib -lrfccm
cc -shared .libs/saprfc.o .libs/rfccal.o -L/usr/sap/rfcsdk/lib -lrfccm -Wl,-rpath -Wl,/usr/sap/rfcsdk/lib -Wl,-soname -Wl,saprfc.so -o .libs/saprfc.so
/usr/bin/ld: skipping incompatible /usr/sap/rfcsdk/lib/librfccm.so when searching for -lrfccm
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../librfccm.so when searching for -lrfccm
/usr/bin/ld: skipping incompatible /usr/lib/librfccm.so when searching for -lrfccm
/usr/bin/ld: cannot find -lrfccm
collect2: ld returned 1 exit status
make: *** [saprfc.la] Error 1
===================================================================
Spesifikasi :
- centos 5.8 32 bit
- PHP 5.3.17
- rfcsdk 6.40
kira - kira kenapa ya pak?
Mohon saran dan bantuannya pak..
--- Thanks ----
Kayaknya librfccm ga cocok itu Pak. Memang cukup repot juga kalau masih mau make PHP SAPRFC ini karena setahu saya sudah tidak diurus lagi sama pengembangnya. Akhirnya kalau mau dipasang di sistem terbaru jadi sering ga cocok, kita musti cari-cari sendiri solusinya.
HapusOwh gitu ya...
Hapuskira-kira gimana ya bagusnya?
Maaf sebelumnya barangkali bapak punya librfccm, boleh ngga saya minta.
ya untuk dicoba... :)
Bisa dicoba downgrade sistem operasinya dulu, mungkin diusahakan sama persis dengan yg ada di artikel ini. Karena ini yg terakhir saya coba dan berhasil. Atau kalau sistemnya belum jalan, mungkin Java bisa jadi pertimbangan untuk menggantikan PHP, API-nya disediakan langsung oleh SAP sehingga lebih terjamin kelangsungan hidupnya.
HapusOk akan saya coba...
BalasHapusTerima kasih atas sarannya
bagus info nya om...
BalasHapuskalo saya karena gak bisa compile akhir nya downgrade ke PHP 5.2.5 dari PHP 5.3.5 karena yang ada di internet download adanya SAPRFC untuk PHP 5.2.5 ( XAMPP 1.6.6a )