Setup Apache2 Server dan PHP 8 di Android menggunakan Termux

Halo semuanya, selamat datang di blog saya. Sebelumnya saya sempat membahas beberapa hal tentang pemrograman Java, nah kali ini saya akan membahas hal yang sedikit berbeda nih, yaitu cara untuk menyiapkan server lokal di Android menggunakan Apache2 dan PHP.

Jadi jika kalian ingin mempraktekkan pembuatan website dengan PHP, namun belum memiliki akses ke perangkat desktop dapat menggunakan cara ini. 

Kali ini aplikasi yang akan digunakan adalah Termux.

Apa itu Termux?

Termux adalah aplikasi terminal android dan lingkungan linux. Termux dikembangkan sebagai proyek open source oleh Fredrik Fornwall. Kode sumber untuk aplikasi dan package-nya dapat ditemukan di Github.

Pada dasarnya Termux ini merupakan terminal emulator yang dapat mengemulasikan terminal Linux pada perangkat Android. Jadi kita bisa menjalankan beberapa perintah terminal Linux pada perangkat Android.

Untuk pemasangan aplikasi Termux, disarankan untuk memasang dari situs web F-Droid (klik di sini untuk mengunduh Termux dari F-Droid), karena Termux di Google Play Store sudah tidak lagi menerima update dan kemungkinan sudah usang sehingga memiliki beberapa isu.

Saya sarankan juga untuk membaca post ini dimana saya membahas seputar Termux, pemasangannya, dan penggunaanya.

Setup Apache2 dan PHP 8

Untuk memasang server apache2 beserta php8 di Termux, kita perlu memasang paket php-apache pada termux. Sebelum itu, jika ini adalah pertama kalinya kalian membuka termux ada baiknya jalankan perintah berikut ini terlebih dahulu,

$
 pkg update && pkg upgrade

Jika ditanyakan pernyataan seperti "Do you want to continue? [Y/n]" ketik y saja lalu enter.

Dan saat melakukan upgrade, jika menemukan pertanyaan seperti berikut ini, bisa ketik Y lalu Enter,

Setelah itu dapat jalankan perintah berikut ini,

$
 pkg install php-apache

Jika meminta konfirmasi, bisa ketik y lalu enter.

Maka termux akan mengunduh arsip php-apache dan semua paket yang dia butuhkan untuk kemudian memasangnya.

Setelah proses instalasi selesai, selanjutnya diperlukan sedikit konfigurasi agar server dapat digunakan dengan baik.

Persiapan konfigurasi apache2

Untuk melakukan konfigurasi ini yang pada dasarnya "hanya" mengubah file teks, maka diperlukan suatu teks editor. Pada tutorial kali ini saya akan menggunakan nano, secara default nano sudah terinstall di Termux, untuk mengecek-nya dapat menjalankan perintah berikut ini,

$
 nano --version

Jika outputnya seperti berikut ini, maka nano sudah terinstall.

Load module PHP dan Nama Server

Tahap selanjutnya adalah mengkonfigurasi apache2 agar memuat atau me-load modul php. Memang dalam package php-apache sudah tersedia modul php, tapi secara default belum "terhubung" dengan apache.

File konfigurasi apache (httpd.conf) terletak di folder /data/data/com.termux/files/usr/etc/apache2, jadi akan lebih mudah jika kita berpindah ke folder tersebut terlebih dahulu.

$
 cd $PREFIX/etc/apache2

$PREFIX adalah variabel global di termux yang bernilai "/data/data/com.termux/files/usr", jadi kita dapat menggunakan variabel tersebut dan "menyambungkan" dengan jalur lain untuk mengakses folder-folder di jalur tersebut.

Berikut adalah isi dari folder tersebut.

Yang akan kita lakukan adalah mengedit file httpd.conf, untuk itu jalankan perintah berikut,

$
 nano -l httpd.conf

Catatan: switch -l digunakan untuk menampilkan nomor baris pada file saat mengedit di nano.

 
-l             --linenumbers           Show line numbers in front of the text

Ini akan membuka file httpd.conf dengan teks editor nano.


Setelah itu, scroll ke baris nomor 53, dan tambahkan baris kode berikut (atau tekan ALT + G dan masukkan nomor 53 lalu enter).

ServerName localhost

Sehingga menjadi seperti berikut ini,

Ini akan memberitahu apache2 untuk menggunakan nama server localhost untuk servernya.

Setelah itu, scroll sedikit lagi ke baris 66, kemudian tambahkan baris baru setelah itu,

Lalu, tambahkan baris kode berikut,

LoadModule php_module libexec/apache2/libphp.so

Sehingga akan menjadi seperti berikut,

Ini akan memuat module php (libphp.so) setiap server dijalankan.

Tips: Untuk memindahkan kursor pada teks editor nano, dapat menggunakan tombol panah pada bagian atas keyboard kalian yang disediakan oleh Termux (info: tombol HOME untuk berpindah ke awal baris dan END untuk berpindah ke akhir baris).

Menetapkan Handler

Setelah baris ke 67 (bagian LoadModule php), tambahkan baris kosong lagi dan isi dengan kode berikut,

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

Sehingga menjadi seperti berikut,

Bisa dibilang bagian kode ini digunakan untuk memberitahu apache untuk menangani file dengan akhiran .php sebagai kode php (application/x-httpd-php), bukan teks biasa.

Menetapkan index

Setelah itu, pergi ke baris 283 dan cari potongan kode berikut,

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

Lalu tambahkan index.php setelah index.html,

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

Ini akan memberitahu apache bahwa jika kita mengakses folder pada suatu server, maka apache akan mencari file index.html atau index.php pada folder tersebut untuk diproses.

Jika tidak ada file index.html atau index.php pada suatu folder maka apache hanya akan menampilkan isi folder itu saja.

Menjalankan server Apache

Setelah semua pengeditan tadi dilakukan selanjutnya simpan perubahan tadi dengan menekan CTRL + S pada keyboard, lalu keluar dari nano dengan menekan CTRL + X.

Kemudian jalankan perintah berikut untuk memulai server apache.

$
 apachectl start

Maka akan tampil error seperti berikut ini,

 
[Thu Mar 24 05:15:43.295929 2022] [php:crit] [pid 2975:tid 480073284008] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP.
AH00013: Pre-configuration failed

Untuk mengatasi error ini buka lagi file httpd.conf tadi dengan nano

$
 nano -l httpd.conf

Cari bagian awal LoadModule (sekitar baris ke 66). Kemudian berikan komentar pada baris kode berikut,

LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so

Sehingga menjadi seperti ini,

#LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so

Sebagai tambahan, hapus komentar pada baris kode berikut,

#LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so

Sehingga menjadi seperti berikut ini,

LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so

Sebelum pengeditan,

Setelah pengeditan,

Lalu simpan dan keluar. Setelah itu dapat dicoba untuk memulai server apache lagi, kali ini seharusnya tidak ada error.

$
 apachectl start

Jika setelah menjalankan perintah tersebut tidak ada output apapun, maka server berhasil dijalankan. Untuk melihatnya bisa kunjungi http://localhost:8080 pada browser kalian.


Yay, it works! :D

Untuk menghentikan servernya, bisa gunakan perintah berikut ini,

$
 apachectl stop

Mengubah Document Root (htdocs) server.

Secara default, apache diatur untuk menggunakan folder di /data/data/com.termux/files/usr/share/apache2/default-site/htdocs sebagai folder awal server. Yang artinya jika kita menginginkan website kita untuk dapat diakses melalui server apache, maka kita harus menyimpan website kita di folder tersebut.

Untuk menggantinya ke penyimpanan Internal yang bisa diakses dengan mudah, dapat dilakukan dengan mengedit file konfigurasi apache (httpd.conf).

Buka file httpd.conf menggunakan nano seperti yang sudah dibahas sebelumnya.

Perintah untuk membuka file httpd.conf

Pergi ke baris 249, lalu ubah jalur setelah keyword DocumentRoot dan Directory menjadi "/storage/emulated/0/htdocs".

Sebelum pengeditan

Setelah pengeditan

Pastikan kalian sudah membuat folder bernama htdocs di penyimpanan Internal kalian.

Setelah disimpan dan keluar dari nano, kemudian dapat dimulai lagi server apachenya (dihentikan dulu servernya jika sudah dijalankan sebelumnya kemudian mulai lagi).

Untuk mengetesnya silahkan buat file baru bernama index.php di folder htdocs kemudian edit menggunakan nano. Dapat dilakukan dengan menjalankan perintah perintah berikut ini,

$
$
 cd /storage/emulated/0/htdocs
 nano index.php

Dan isi dengan kode berikut ini,

<?php phpinfo();

Setelah itu simpan dan keluar (CTRL + S dan CTRL + X).

Jika setelah menyimpan kalian mendapatkan error seperti berikut,

Buka sesi Terminal baru, kemudian jalankan perintah berikut,

$
 termux-setup-storage

Dan jika ada popup muncul, pilih menu "Izinkan".

Ini akan memberi Termux izin untuk memodifikasi isi dari penyimpanan Internal kita.

Setelah itu buka Terminal baru lagi, kemudian buat lagi file index.php dengan nano. Setelah diisi dengan kode tadi, simpan dan keluar.

Kemudian lihat melalui web browser dan akan muncul seperti berikut ini,

Dan selanjutnya jika ingin membuat website php, dapat disimpan di folder htdocs di penyimpanan Internal kalian dan bisa diedit menggunakan aplikasi teks editor dari Play Store.

Bonus! Setup MariaDB di Termux

MariaDB dapat digunakan sebagai DBMS (Database Management System) untuk mengelola database lokal pada mesin untuk keperluan pengembangan website.

Untuk memasang package mariadb cukup dengan menjalankan perintah berikut di Termux.

$
 pkg install mariadb

Maka pkg akan mengunduh dan menyiapkan mariadb sehingga bisa langsung digunakan.

Saat proses penyiapan mariadb dengan perintah tadi, secara otomatis akan disiapkan dua akun serba-bisa (all-privileges) untuk mengakses MySQL, yang pertama adalah root yang tidak bisa diakses, kemudian yang kedua dengan nama pengguna Termux kalian masing-masing (bisa dicek menggunakan perintah whoami).

Untuk membuat akun root dapat diakses maka kita harus melakukan beberapa perubahan di database. Untuk itu dapat dijalankan perintah berikut ini untuk memulai server mysql,

$
 mysqld

Buka terminal baru yang dapat dilakukan dengan menggeser bilah navigasi dari sebelah kiri layar Termux, kemudian pilih tombol New Session pada bagian bawah.

Membuka terminal baru

Setelah itu di Terminal baru, jalankan perintah berikut ini untuk login ke MySQL menggunakan akun dengan username Termux masing masing (yang didapatkan dengan $(whoami)).

$
 mysql -u $(whoami)

Kemudian, setelah sudah masuk ke mysql, jalankan query-query SQL berikut satu persatu.

 
use mysql;
set password for 'root'@'localhost' = password('');
flush privileges;
quit;

Untuk password dapat diisi sesuai keinginan kalian, namun pada tutorial kali ini saya memilih untuk mengosongkan passwordnya.

Menjalankan perintah di MariaDB

Setelah itu dapat dicoba untuk login menggunakan akun root.

$
 mysql -u root

Maka akan menghasilkan output seperti berikut ini,

Dengan ini, kita bisa berinteraksi dengan database melalui Command Line, dan bisa menjalankan perintah perintah SQL dari sana.

Untuk menghentikan proses mysql, dapat menggunakan perintah berikut,

$
 kill -3 $(pgrep mysqld)

Keterangan:

  • perintah kill digunakan untuk mengirim sinyal ke sebuah proses berdasarkan Process ID-nya.
  • Switch -3 digunakan untuk memilih sinyal jenis quit (SIGQUIT) untuk dikirimkan.
  • $(pgrep mysqld) digunakan untuk mendapatkan PID (Process ID) dari mysqld.

Perlu diingat juga, sebelum keluar dari Termux, pastikan untuk menghentikan server Apache2 dan MySQL yang sedang berjalan.


Berkat kemajuan teknologi dan komunitas open source Termux, kita dapat menyiapkan server lokal dan database lokal di ponsel Android dengan mudah, sehingga dapat memudahkan kita dalam belajar pengembangan web.

Sekian untuk post kali ini, jika ada kesalahan saya mohon maaf. Terima Kasih sudah mengikuti tutorial ini sampai akhir, sampai bertemu lagi.


Referensi:

Komentar

Posting Komentar

Postingan populer dari blog ini

Memasang dan menjalankan PHPMyAdmin pada Android

Array pada Java