Related Posts Plugin for WordPress, Blogger...

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 :-)

6 komentar:

  1. Pak Rotua Damanik
    Saya 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 ----

    BalasHapus
    Balasan
    1. 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.

      Hapus
    2. Owh gitu ya...

      kira-kira gimana ya bagusnya?
      Maaf sebelumnya barangkali bapak punya librfccm, boleh ngga saya minta.
      ya untuk dicoba... :)

      Hapus
    3. 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.

      Hapus
  2. Ok akan saya coba...

    Terima kasih atas sarannya

    BalasHapus
  3. bagus info nya om...
    kalo 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 )

    BalasHapus

Tuliskan komentar, saran, maupun kritik di sini: