Tuesday, March 6, 2012

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.
./SAPCAR -xvf RFC_58-20000055.SAR
mv rfcsdk /opt/
Unduh dan ekstrak sour cecode SAPFC.
wget http://prdownloads.sourceforge.net/saprfc/saprfc-1.4.1.tar.gz
tar -xzvf saprfc-1.4.1.tar.gz
Sebelum menjalankan skrip configure, kita harus menjalankan phpize di dalam direktori source code SAPRFC.
cd saprc-1.4.1
/opt/bin/phpize
Program 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.

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=gcc34
export CFLAGS=-I/usr/lib/i386-redhat-linux4E/include:-B/usr/lib/i386-redhat-linux4E/lib/
Pengguna CentOS 5.5 juga perlu memastikan paket compat-glibc-2.3.4-2.26 ter-install di sistem. Setelah itu barulah kita jalankan konfigurasi.
./configure --with-php-config=/opt/bin/php-config
Jika 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.
make
Jika sukses akan tampak seperti pada screen shot berikut.
Kemudian testing.
make test
Hasilnya tampak seperti pada screen shot berikut.
Lalu instalasi.
make install
Seperti 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 :-)