Skip navigation

Kebetulan dapat tugas untuk mendampingi seorang rekan di kantor yang sedang mengurusi aplikasi pembayaran daring dengan salah satu bank terbesar di dunia. Setelah minggu sebelumnya harus ke Jakarta untuk membereskan masalah SMimeTool yang digunakan untuk enkripsi di aplikasi ini, yang ternyata masalahnya sepele: SMimeTool tidak dapat berjalan baik pada Java Runtime Environment bawaan CentOS yang menggunakan gcj. Nah cerita berlanjut, demi mempermudah proses enkripsi berkas yang akan dipertukarkan maka saya buatkan shell script kecil yang nantinya akan dipanggil dari PHP menggunakan fungsi shell_exec(). Isi skrip ini sangat sederhana, ia akan memanggil program berbasis Java untuk mengenkripsi berkas teks yang dikirim oleh SAP, lalu menghapusnya setelah enkripsi berhasil dijalankan.

Ketika dicoba dijalankan dari baris perintah sudah tidak ada masalah, namun hasilnya nihil ketika dicoba dijalankan dari PHP. Program PHP berjalan dengan mulus dan tidak ada pesan error sama sekali. Wajarnya shell script itu harus mengirimkan pesan error ketika terjadi sesuatu yang tidak diinginkan. Awalnya saya curiga dengan masalah permission, terutama ketika saya sadar bahwa saya mencoba menjalankan skripnya di terminal menggunakan root. Benar saja, ada error ‘Permission denied’ ketika skrip dijalankan oleh user biasa. Setelah membereskan masalah permisi ternyata hasilnya masih sama, nihil.

Otakpun berputar, lalu sebuah kata muncul: ‘redirect’. Ya, mengapa tidak me-redirect message error yang dihasilkan program Java tadi ke suatu berkas log? Saya yakin pasti ada pesan galat ketika program itu tidak berjalan dengan semestinya. Akhirnya setelah Googling sebentar untuk memastikan cara me-redirect stderr ke file, saya minta rekan saya untuk mengubah program yang dipanggil di PHP menjadi

/opt/enkripsi/run_enkripsi.sh > error.log 2>&1

Dengan membaca error.log, saya akhirnya tahu bahwa program Java tadi harus dijalankan dari direktori tempat ia disimpan. Masalah ini diselesaikan dengan mengubah run_enkripsi.sh untuk masuk terlebih dahulu ke direktori di mana Java class yang akan dijalankan disimpan.

Iklan

3 Comments

  1. bagaimna cra cepat mngaplikasikn linux d komputer…

    • M. Ishak: Langsung aja di-install ke komputernya gan

  2. hmmm, agak membingungkan juga


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: