Kembali ke Beranda
Android

Bangun Web Server Pro di Android pake WordPress dan Cloudflare Tunnel

ubah android jadi web server pro wordpress cloudflare - Media Gambar Resmi Ikymomo

Setelah sukses ubah Android jadi PC desktop, sekarang kita upgrade HP kamu jadi infrastruktur server yang beneran pro. Kita bakal pasang WordPress dan bikin website kamu bisa diakses dari mana aja tanpa sewa VPS. Cukup pake HP yang ada di kantong aja!

Instalasi LEMP Stack & Cloudflared ARM64

Kita butuh Nginx, MariaDB, PHP 8.4, dan Cloudflared. Untuk Cloudflared, kita pake paket .deb biar terkelola rapi sama sistem Ubuntu ARM64 kamu.

Jalankan perintah ini di terminal:

[SYS://BASH]
sudo apt update && sudo apt install nginx mariadb-server cron php8.4-fpm php8.4-mysql php8.4-curl php8.4-gd php8.4-mbstring php8.4-xml php8.4-zip php8.4-intl -y

Lalu instal Cloudflared ARM64:

[SYS://BASH]
sudo wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64.deb && sudo dpkg -i cloudflared-linux-arm64.deb && rm cloudflared-linux-arm64.deb

Jangan lupa aktifin layanannya biar semuanya jalan:

[SYS://BASH]
sudo service nginx start && sudo service mariadb start && sudo service php8.4-fpm start && sudo service cron start

Setting MariaDB Database

Jalankan perintah ini buat setup awal:

[SYS://BASH]
sudo mysql_secure_installation

Kalo gak bisa atau error Command Not Found. Kamu bisa coba ini.

[SYS://BASH]
sudo mysql-secure-installation

terus ikutin kaya dibawah ini:

  • Enter current password for root: Langsung tekan Enter.
  • Switch to unix_socket authentication?: Ketik Y.
  • Change the root password?: Ketik Y. masukin password database yang kuat.
  • Remove anonymous users?: Ketik Y.
  • Disallow root login remotely?: Ketik Y.
  • Remove test database & Reload?: Ketik Y.

Kalo udah selesai, login ke MySQL pake user root buat bikin database WordPress:

[SYS://BASH]
sudo mysql -u root -p

Terus masukin perintah SQL ini satu-satu:

[SYS://SQL]
CREATE DATABASE wordpress_db;
CREATE USER 'nama_user'@'localhost' IDENTIFIED BY 'password_kamu';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'nama_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Instalasi WordPress & Set Permissions

Bikin direktori baru di /var biar struktur file kamu rapih:

[SYS://BASH]
sudo mkdir -p /var/namadomain/wordpress && cd /var/namadomain/wordpress

Setelah direktori dibuat dan masuk ke direktori itu selanjutnya unduh WordPress dari sumber aslinya menggunakan wget dan ekstrak.

[SYS://BASH]
https://wordpress.org/latest.tar.gz && sudo tar -xzvf latest.tar.gz --strip-components=1 && sudo rm latest.tar.gz

Oh iya, biar gak error pas proses instalasinya, jangan lupa kamu harus atur permissionnya dulu. Karena kalo gak diubah pas mau install bakalan error atau gak jalan.

[SYS://BASH]
sudo chown -R www-data:www-data /var/namadomain/wordpress
[SYS://BASH]
sudo find /var/namadomain/wordpress/ -type d -exec chmod 755 {} \;
sudo find /var/namadomain/wordpress/ -type f -exec chmod 644 {} \;

Konfigurasi Nginx Hardening Simpel & Gzip

Bikin file config baru:

[SYS://BASH]
sudo nano /etc/nginx/sites-available/web-pro

Masukin kode ini biar server kamu aman, kalo kamu mau lebih advance lagi kamu bisa ngulik sendiri atau cari-cari di google ya:

[SYS://NGINX]
server {
listen 80;
server_name www.webkamu.com;
root /var/namadomain/wordpress;
index index.php index.html;
# Optimasi Gzip biar makin ngebut
gzip on;
gzip_static on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 5;
gzip_min_length 100;
gzip_buffers 16 8k;
gzip_types
text/plain
text/css
text/javascript
text/xml
text/x-component
application/javascript
application/x-javascript
application/json
application/xml
application/rss+xml
application/atom+xml
application/vnd.ms-fontobject
application/x-font-ttf
application/x-font-opentype
application/x-font-truetype
application/wasm application/x-web-app-manifest+json
image/svg+xml
image/x-icon
image/vnd.microsoft.icon
font/ttf
font/eot
font/otf
font/opentype;
location ~* \.(svn|hg|bzr|sh|git|json|env|php_bak|sql|yaml|bak|swp|dist|passwd)$ {
deny all;
access_log off;
error_log off;
log_not_found off;
}
location ~* /(wp-config|wp-config-sample|config|stripe) {
deny all;
access_log off;
error_log off;
log_not_found off;
}
location ~* ^/swagger {
location ~* \.(json|yaml|yml|xml|txt)$ {
deny all;
access_log off;
error_log off;
log_not_found off;
}
allow all;
access_log off;
error_log off;
log_not_found off;
}
location ~* /(node_modules|backup|db|logs)/.*\.php$ {
deny all;
access_log off;
error_log off;
log_not_found off;
}
location / {
try_files $uri $uri/ /index.php?$args;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $realip_remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port 443;
access_log off;
error_log off;
log_not_found off;
}
location ~ \.php$ {
access_log off;
error_log off;
log_not_found off;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;
}
}

Aktifkan:

[SYS://BASH]
sudo rm /etc/nginx/sites-enabled/default && sudo ln -s /etc/nginx/sites-available/web-pro /etc/nginx/sites-enabled/ && sudo service nginx restart

Hubungkan ke Cloudflare

Biar website online secara profesional, ikutin langkah dashboard dan terminal ini:

A. Otorisasi & Dashboard Setup

  1. Jalankan cloudflared tunnel login di terminal, terus klik link otorisasi domain kamu.
  2. Jalankan cloudflared tunnel create nama-tunnel terus catet ID Tunnel-nya.
  3. Login ke Cloudflare dashboard, pilih sidebar Zero Trust.
  4. Pilih Networks > Connectors > klik titik tiga pada tunnel kamu > Configure.
  5. Di tab Public Hostname, klik Add a public hostname:

1. Hostname: Pilih domain kamu (Subdomain opsional). 2. Service: Type HTTP, URL 127.0.0.1:80. 3. Save.

B. Konfigurasi & Eksekusi Background Service

Biar gak mati pas kamu tekan CTRL+C, kamu jalankan sebagai Service. Buat file /root/.cloudflared/config.yml terus isi kaya gini.

Terus jalanin perintah ini:

[SYS://YAML]
tunnel: <ID_TUNNEL_KAMU>
credentials-file: /root/.cloudflared/<ID_TUNNEL_KAMU>.json
metrics: 127.0.0.1:4444
ingress:
- hostname: domainkamu.com
service: http://127.0.0.1:80
- service: http_status:404
[SYS://BASH]
cloudflared service install
service cloudflared start
service cloudflared status

Setup Akhir wp-config

Ini bagian paling penting buat ngubungin WordPress kamu sama database-nya. Edit wp-config.php kamu dan sesuaikan bagian ini:

[SYS://PHP]
// --- Koneksi Database ---
define( 'DB_NAME', 'wordpress_db' );
define( 'DB_USER', 'nama_user' );
define( 'DB_PASSWORD', 'password_kamu' );
define( 'DB_HOST', 'localhost' );
// --- Pengaturan URL & SSL Proxy ---
define('WP_HOME','https://www.webkamu.com');
define('WP_SITEURL','https://www.webkamu.com');
define('FS_METHOD', 'direct');
/* Cron via HTTP internal biar irit bandwidth aja */
define('WP_CRON_URL', 'http://127.0.0.1/wp-cron.php');
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $_SERVER['HTTPS'] = 'on'; }

Modul Magisk & KSUN

Biar server otomatis nyala pas HP reboot, gunain tiga file ini di folder modul Magisk kamu:

module.prop

[SYS://PROP]
id=ikymomo_server
name=Ikymomo Web Server By Liaviora
version=v2.7
versionCode=2
author=Liaviora
description=Layanan Start Otomatis, (Nginx|PHP-FPM|MariaDB|Cron|Cloudflared) & Remount suid /data

post-fs-data.sh

[SYS://BASH]
#!/system/bin/sh
MODDIR=${0%/*}
UBUNTU_PATH="/data/local/os/ubuntu"
# Persiapan Mount Point
mkdir -p $UBUNTU_PATH/dev
mkdir -p $UBUNTU_PATH/dev/pts
mkdir -p $UBUNTU_PATH/proc
mkdir -p $UBUNTU_PATH/sys
# Eksekusi Mount
mount -o bind /dev $UBUNTU_PATH/dev
mount -o bind /dev/pts $UBUNTU_PATH/dev/pts
mount -o bind /proc $UBUNTU_PATH/proc
mount -o bind /sys $UBUNTU_PATH/sys
# Remount suid /data
mount -o remount,suid /data
# Set Prop agar sistem tahu mount sudah beres
#setprop ikymomo.ubuntu.ready 1

service.sh

[SYS://BASH]
#!/system/bin/sh
MODDIR=${0%/*}
CHROOT_PATH="/data/local/os/ubuntu"
# Tunggu sistem Android siap
sleep 30
# Eksekusi chroot
chroot $CHROOT_PATH /usr/bin/env -i HOME=/root TERM=xterm PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c "
# KONFIGURASI ULIMIT
ulimit -n 46080
echo 'Starting MariaDB...'; service mariadb start;
echo 'Starting PHP-FPM...'; service php8.4-fpm start;
echo 'Starting Nginx...'; service nginx start;
echo 'Starting Cron...'; service cron start;
echo 'Starting Cloudflared...'; service cloudflared start;
"
# KONFIGURASI DALVIK VM
setprop dalvik.vm.dex2oat-Xms 56m
setprop dalvik.vm.dex2oat-Xmx 112m
setprop dalvik.vm.heapgrowthlimit 112m
setprop dalvik.vm.heapmaxfree 28m
setprop dalvik.vm.heapsize 112m
setprop dalvik.vm.heapstartsize 14m
setprop dalvik.vm.image-dex2oat-Xms 56m
setprop dalvik.vm.image-dex2oat-Xmx 56m
# END KONFIGURASI DALVIK VM
# KONFIGURASI SYSCTL
sysctl -w net.ipv4.tcp_fin_timeout=15
# Optimasi jalur tunnel
sysctl -w net.ipv4.tcp_keepalive_time=60
sysctl -w net.ipv4.tcp_keepalive_intvl=10
sysctl -w net.ipv4.tcp_keepalive_probes=6
# Memperbesar buffer untuk traffic tinggi (16MB max)
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"
# Mengurangi beban saat handshake TLS/SSL
sysctl -w net.ipv4.tcp_fastopen=3
# Jangan terlalu sering memindahkan data ke Swap (zRAM)
sysctl -w vm.swappiness=10
# Atur agar penulisan log tidak membuat sistem "macet" (I/O Wait)
# Menulis ke disk hanya jika data kotor di RAM sudah mencapai 5-10%
sysctl -w vm.dirty_background_ratio=5
sysctl -w vm.dirty_ratio=10
# Meningkatkan batas pembacaan file simultan (sesuai ulimit kamu)
sysctl -w fs.file-max=650000
# Mempercepat pembersihan cache inode (bagus untuk F2FS)
sysctl -w vm.vfs_cache_pressure=125
# Optimasi jalur backlog
sysctl -w net.core.netdev_max_backlog=5000
sysctl -w net.ipv4.tcp_max_syn_backlog=8192
sysctl -w net.ipv4.tcp_max_tw_buckets=2000000
# END KONFIGURASI SYSCTL
Disclaimer
Aku ingetin, segala resiko yang terjadi pas kamu ngikutin tutorial ini ditanggung sendiri ya. Pastiin kamu udah backup data penting sebelum eksekusi kode-kode di atas.

Gimana? Gak nyangka kan kalau HP yang biasanya cuma buat scrolling medsos sekarang udah bertransformasi jadi server WordPress yang pro dan bisa diakses dari seluruh dunia? Dengan kombinasi LEMP Stack, Cloudflare Tunnel, dan modul Magisk & KSUN, kamu udah selangkah lebih maju dalam dunia self-hosting.

Kalau ada yang bingung atau mau pamer hasil deploy website kamu, langsung aja mampir ke kolom komentar ya. Kapalia tunggu cerita seru kamu!

Bagikan Artikel:
Randi2026-10-19 17:12:15

Sudah beehasil install tapi pas buka dashboard tidak bisa kenapa ya?

Andi2026-10-19 17:04:44

Selain wordpress buat cms lainnya bisa tidak?

Adam Marlin2026-09-24 12:32:21

Selain WordPress apakah CMS seperti Strapi bisa?