Saya saat ini sedang senang-senangnya menggunakan distro Void Linux. Berbeda dengan distro-distro mainstream lainnya, Void ini tidak menggunakan systemd sebagai init systemnya, tetapi menggunakan runit. Jadi perintah-perintah seperti systemctl
tidak dapat digunakan di Void ini. Tetapi, runit ini sangat lebih cepat jika dibandingkan dengan systemd (setidaknya pada sistem operasi Void Linux ini).
Saat artikel ini saya buat, versi PHP di Void Linux ini masih berada di versi 7.4. Saya menemukan masalah ketika beberapa project yang saya buat menggunakan PHP 8, antara program yang saya buat harus di downgrade atau kita compile sendiri PHP 8 ini.
Melakukan Kompilasi PHP 8 di Void Linux
Informasi
Saat ini PHP versi 8 sudah tersedia di repository Void Linux, sehingga anda tidak perlu melakukan kompilasi secara manual lagi.
Kita akan melakukan kompilasi PHP dengan menyertakan beberapa ekstensi php yang biasa digunakan.
Persiapan Package sebagai Compiler
Sebelum melakukan kompilasi, kita harus menginstall terlebih dahulu beberapa package yang dibutuhkan untuk melakukan kompilasi:
sudo xbps-install -Su base-devel \
libxml2-devel \
libcurl-devel \
libjpeg-turbo-devel \
libpng-devel \
libwebp-devel \
libmysqlclient-devel \
libzip-devel \
openssl-devel \
sqlite-devel \
oniguruma-devel
Perintah itu akan menginstall beberapa package yang dibutuhkan untuk melakukan kompilasi pada program C dan C++ (php dibuat dengan bahasa pemrograman C) dan juga beberapa library yang dibutuhkan oleh beberapa ekstensi php yang akan kita embed saat kompilasi.
Mengunduh Source Code PHP
Silahkan unduh source code dari php 8.1. Selain dari halaman resminya, anda juga dapat mengclone repository resmi php di github. Saat artikel ini diterbitkan, versi terbaru berada di 8.1.0. Silahkan unduh salah satu berkas source codenya (saya mengunduh format .tar.gz). Lalu ekstrak berkas tersebut dengan aplikasi archive manager kesayangan anda, boleh menggunakan Ark, file-roller, atau apapun itu. Contoh hasil ekstraknya:
Melakukan Konfigurasi untuk Kompilasi PHP
Silahkan buka terminal, lalu masuk ke direktori tempat ekstrak source code php anda. Lalu jalankan perintah berikut ini:
./configure \
--enable-mbstring \
--with-curl \
--with-openssl \
--with-zip \
--enable-gd \
--with-jpeg \
--with-webp \
--with-mysqli \
--enable-exif \
--enable-ftp \
--enable-bcmath \
--with-bz2
Perintah tersebut untuk melakukan konfigurasi pada compiler, extension php apa saja yang akan di embed saat melakukan kompilasi. Jika anda ingin melihat konfigurasi ataupun extension apa saja yang dapat dikonfigurasi silahkan jalankan perintah berikut ini:
./configure --help
Misalnya ingin menambah ekstensi pdo mysql, silahkan tambah parameter --with-pdo-mysql
.
Ketika melakukan konfigurasi kompilasi, anda mungkin akan menemukan masalah package tidak ada, silahkan cari package tersebut di Void Linux Packages lalu install development (package-devel) versionnya.
Ketika konfigurasi telah berhasil dilakukan akan menampilkan hasil kurang lebih seperti berikut ini:
Melakukan Kompilasi
Untuk melakukan kompilasi PHP sama saja seperti program C lainnya:
make
Kompilasi akan berlangsung sedikit lama, tergantung kemampuan hardware anda. Silahkan ditunggu hingga selesai. Tips : tambahkan parameter -jN
untuk mengubah core yang digunakan untuk kompilasi, ubah N dengan angka core CPU yang akan digunakan contoh : -j4
.
Jika proses kompilasi berhasil kurang lebih akan menampilkan output seperti berikut ini:
Menginstall Hasil Kompilasi
Setelah kompilasi selesai kita harus menginstallnya, silahkan gunakan perintah berikut ini:
sudo make install
Perintah itu berguna untuk menginstall hasil kompilasi source code php tadi. Output perintah tersebut kurang lebih berikut ini:
Salin file php.ini
yang disediakan di source code ke direktori installasi php kita:
sudo cp php.ini-development /usr/local/lib/php.ini
Untuk mengecek apakah php sudah terinstall silahkan cek versi phpnya:
php -v
Selamat PHP Versi 8 telah berhasil diinstall di Void Linux anda!
Langkah Opsional
Menginstall dan Mengkonfigurasi Apache Web Server
Terkadang kita perlu web server untuk menjalankan program PHP kita, salah satunya adalah Apache. Cara menginstallnya di void:
sudo xbps-install apache
Symlink apache control kita ke service Void Linux agar dapat dikelola:
sudo ln -s /etc/sv/apache /var/service/apache
Karena kita menggunakan php hasil build kita sendiri, dimana saat ini repository void belum menyediakan libapache untuk php8. Silahkan unduh libphp8.1.so
:
Silahkan unduh salah satu file diatas, sesuaikan dengan platform hardware anda. Saya hanya menyediakan versi 8.1 untuk 64bit dan arm. Jika anda membutuhkan versi lainnya silahkan cari sesuai dengan versi php 8 anda dan ekstrak hasilnya, cari library php berformat .so nya.
Copy libphp8.1.so
hasil unduhan tadi ke folder /usr/libexec/httpd/
:
sudo cp libphp8.1.so /usr/libexec/httpd/
Selanjutnya, edit file /etc/apache/httpd.conf
dengan teks editor kesayangan anda, tambahkan baris:
LoadModule php_module /usr/libexec/httpd/libphp8.1.so
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
Lalu komen baris:
#LoadModule mpm_event_module /usr/libexec/httpd/mod_mpm_event.so
Uncoment baris:
LoadModule mpm_prefork_module /usr/libexec/httpd/mod_mpm_prefork.so
Langkah terakhir jalankan servicenya :
sudo sv start apache
Kesimpulan
Menginstall PHP 8 di Void Linux memang sedikit susah, kita harus melakukan kompilasi php dari source codenya sendiri. Hal ini tak lepas dari Void Linux yang memiliki komunitas yang masih sedikit. Saat ini sudah ada diskusi tentang Manajemen versi PHP di void linux yang patut kita tunggu.
Jika anda malas untuk melakukan kompilasi, sebaiknya gunakan saja versi yang sudah tersedia di Void Linux. Sekian artikel ini, Terima Kasih sudah membaca!