Lagi-lagi mendapat ujian saat menggunakan CentOS sebagai server untuk aplikasi yang sedang dibangun. Memang, berangkat dengan pengetahuan yang cukup minim tentang linux CentOS, membuat saya menemui banyak tantangan saat menggunakannya. Tapi dengan ini, alhamdulillah membuat saya mendapatkan ilmu yang bermanfaat lagi. Ibarat tiada hari tanpa tantangan, ibarat tiada hari tanpa ilmu.
Permasalahan kali ini datang dari istilah “System V IPC” dan “POSIX” di PHP untuk CentOS 6.3. Istilah apa lagi itu? Bisa Anda baca pada manual-nya PHP tentang Semaphore, Shared Memory & IPC Functions dan POSIX Functions. Sebagai tambahan tentang implementasi fungsi POSIX di PHP dapat dibaca pada tulisan saya sebelumnya, Multiproses (Forking) di PHP (Bagian 1), Multiproses (Forking) di PHP (Bagian 2), dan Multiproses (Forking) di PHP (Bagian 3), sedangkan untuk implementasi tentang fungsi System V IPC dapat dibaca pada tulisan PHP Semaphore (Bagian 1), PHP Semaphore (Bagian 2), dan Shared Memory Segments (IPC) di PHP.
Permasalahan yang sekarang saya hadapi adalah ketika aplikasi yang saya bangun dicoba untuk dimigrasikan dari Ubuntu ke CentOS. Ada beberapa fungsi yang disediakan System V IPC dan POSIX di PHP tersebut yang memang saya gunakan dalam pengembangan proyek kantor. Aplikasi yang sebelumnya berjalan dengan mulus pada server Ubuntu, ternyata mengalami gagal running saat dicoba di CentOS.
Setelah di-debug beberapa jam, ternyata permasalahan itu muncul karena PHP yang saya gunakan telah menonaktifkan fungsi posix, sysvmsg, sysvshm, dan sysvsem saat meng-compile-nya (saya menggunakan PHP repository package). Ini terlihat pada tampilan PHP Info
yang saya jalankan melalui browser.
Dalam pikiran langsung terlintas untuk meng-uninstall PHP dan meng-compile-nya sendiri dari source. Tapi sebelum melakukannya, ada baiknya mencari solusi yang lebih gampang dan cepat. Cari solusi di Google, ternyata fungsi-fungsi System V IPC dan POSIX dapat diaktifkan hanya dengan meng-install komponen untuk PHP-nya (PHP Extension). Hanya dengan satu perintah saja sudah beres.
$ yum install php-process
Selesai! Sekarang fungsi-fungsi posix, sysvmsg, sysvshm, dan sysvsem sudah aktif.