Tutorial: Setup/Install PHP WEB Server On Termux Android (Indonesia)

davins
5 min readAug 2, 2022

--

sample image

Hello guys ini adalah article pertama saya jadi maklum jika ada yang salah XD, banyak yang penasaran apakah termux bisa menjalankan webserver sperti apache, phpmyadmin, dan mysql database seperti xampp yang ada di PC atau tidak, jawabanya adalah iya bisa!

buat kalian yang masih belum tau apa itu TERMUX, kalian bisa baca disini https://wiki.termux.com/wiki/FAQ

sebenarnya untuk menjalankan local server tidak harus pakai termux, banyak kok aplikasi android yang tinggal pakai seperti AndroPHP, AWebAServer dan masih banyak lagi tapi tentu saja itu semua gak direkomendasikan.

loh kenapa bang? buat yang masih awam bukanya lebih mudah pakai itu ?

iya memang lebih mudah karna tinggal klik” aja server langsung jalan , tapi yang namanya aplikasi gratisan sudah tentu iklan nya sangat mengganggu apalagi kalo sudah tidak resmi ada di playstore seperti AndroPHP yang aku sebutkan tadi, sedangkan jika kalian setup sendiri di termux pasti nanti kalian bakal terbiasa dengan command line (CLI). oke langsung aja deh !!

1. Installation

https://f-droid.org/en/packages/com.termux/
klik download apk lalu install

pastikan kalian sudah download termux di F-Droid pilih yang paling atas / versi terbaru, download dan install . jika sudah, lanjut install package, buka termux lalu ketik !.

$ pkg upgrade && pkg update
$ pkg install php apache2 php-apache nano -y
jika muncul pertanyaan seperti ini, tekan enter!

2. Setup/Configure Apache

selanjutrnya pergi ke folder apche2 dengan command:

$ cd /data/data/com.termux/files/usr/etc/apache2/

buka file httpd.conf menggunakan nano yang sudah di install tadi:

$ nano httpd.conf
untuk menampilkan line number tekan ALT+#

perhatikan gambar berikut, uncomment pada line 66 (hapus tanda pagar di awal), dan comment pada line 69 (beri tanda pagar di awal), lalu load php module ke file httpd.conf dengan menambahkan:

LoadModule php_module /data/data/com.termux/files/usr/libexec/apache2/libphp.so
ubah menjadi seperti ini

lanjut ke step berikutnya:.

2.1 Set Handler

agar apache bisa membaca file php, kita perlu memberi tahu apcahe jika file yang di jalankan berextensi .php lalu akan di proses oleh handler, menggunakan syntax .htaccess.

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

2.2 Merubah Indeks

pada file httpd.conf terdapat bagian seperti ini:

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

walaupun kita baru saja mengubaah handler php, tetapi tetap saja yang akan terbaca adalah file html jika kita memiliki file index.php pada directory yang sama. ubah bagian berikut menjadi seperti ini

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

2.3 Menyalakan/ Enable .htaccess file

agar apache dapat membaca file .htacces pada directory project/root kalian, kita perlu mengubah bagian:

DocumentRoot "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs"
<Directory "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>

ubah AllowOverride None menjadi AllowOverride All

jika sudah tekan CTRL + X lalu ENTER untuk menyimpan dan keluar.

3. Start APache

3.1 Membuat dan melihat directory public

default root directory htdocs apache2 berada di:

/data/data/com.termux/files/usr/share/apache2/default-site/htdocs

kalian juga bisa mengubah directory root/ htdocs sesuai keingan kalian pada file httpd.conf dibagian :

DocumentRoot "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs"
<Directory "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs">
# contoh jika kalian ingin menyimpan project kalian di directory internal maka:DocumentRoot "/storage/emulated/0/htdocs"
<Directory "/storage/emulated/0/htdocs">
# perlu di ingat, kalian harus menyimpan project kalian di dalam folder htdocs, (buat dulu jika belum ada)

oke lanjut., buat file index.php :

$ nano index.php

isi dengan:

<?php
phpinfo();
?>

tekan CTRL + X lalu ENTER untuk menyimpan dan keluar seperti yang sudah saya jelaskan di atas tadi.

untuk memulai daemon apache kita menggunakan perintah

$ apchectl start
start apache

buka localhost:8080 pada browser kesayangan kalian.

akan terllihat seperti ini.

3.2 Membuat file .htaccess

kita buat satu file .htacess, satu aja jangan banyak” hehe XD. tujuan nya buat meriksa apakah file .htacess nya dapat terbaca atau tidak. disini saya mau membuat contoh untuk handle error page 404 yang mana jika route yang kita masukan pada url tidak ada maka menampilkan pesan error.

$ nano .htaccess

isi dengan:

ErrorDocument 404 /error.php

save , lalu kita buat file error.php

$ nano error.php

isi dengan:

<?php
echo "halaman yang anda tuju tidak ada";
?>

save, lalu buka localhost:8080/teshalo maka akan menampilkan pesan seperti ini:

htaccess sudah terbaca

server apache berfungsi dan .htaccess juga sudah terbaca, sekarang kalian sudah memiliki XAMPP di ANDROID :D.

4. Penutup/Kesimpulan/Tambahan

command list:

1. apchectl start # untuk memulai daemon apache
2. apchectl restart # untuk memulai ulang daeomon apache, misalnya jika kalian melakukan perubahan file pada directory default apache sperti httpd.conf kalian harus memulai ulang apache agar perubahan dapat diterapkan.
3. apchectl stop # untuk menghentikan server apache

Tadinya mau sekalian install phpmyadmin tapi nanti kebanyakan jadi di tunggu aja next post nya ya….

tetap semangat buat kalian yang masih stay ngoding di android :D, Makasih udah baca. berteman dengan saya di Telegram:

referrensi:

--

--