{"id":1,"date":"2026-08-18T11:55:04","date_gmt":"2026-08-18T11:55:04","guid":{"rendered":"http:\/\/4rsadject.my.id\/?p=1"},"modified":"2026-08-18T12:11:02","modified_gmt":"2026-08-18T12:11:02","slug":"halo-dunia","status":"publish","type":"post","link":"http:\/\/4rsadject.my.id\/index.php\/2026\/08\/18\/halo-dunia\/","title":{"rendered":"4rsadject_Lesson"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Oleh: arsad<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Selamat datang di <code>4rsadject.my.id<\/code>! Jika kamu bisa membaca tulisan ini, berarti kamu sedang mengakses sebuah <em>website<\/em> yang berjalan di atas infrastruktur server yang dibangun dari nol.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Artikel pertama ini bukan sekadar sapaan, melainkan sebuah <em>engineering logbook<\/em> (catatan teknis) tentang bagaimana saya mendeploy <em>website<\/em> ini melintasi berbagai rintangan <em>troubleshooting<\/em> jaringan dan sistem operasi.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83c\udfd7\ufe0f Spesifikasi Infrastruktur Kami<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Website ini tidak berjalan di <em>hosting<\/em> instan (<em>shared hosting<\/em>), melainkan dikonfigurasi secara manual dengan arsitektur <em>Distributed System<\/em> berskala lab:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Hypervisor:<\/strong> Baremetal Proxmox VE 9 (Cluster Node).<\/li>\n\n\n\n<li><strong>Mesin Inti (Web Server):<\/strong> Virtual Machine (VM) Ubuntu 22.04 LTS.<\/li>\n\n\n\n<li><strong>Web Engine:<\/strong> LAMP Stack (Apache2, MySQL 8, PHP 8).<\/li>\n\n\n\n<li><strong>Pintu Gerbang (Gateway):<\/strong> LXC Container menjalankan Nginx sebagai <em>Reverse Proxy<\/em>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udea7 Catatan Troubleshooting: Rintangan yang saya Taklukkan<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Membangun <em>server<\/em> dari nol berarti harus siap berhadapan dengan <em>error<\/em> dan <em>bug<\/em>. Berikut adalah beberapa drama teknis yang berhasil kami selesaikan selama proses <em>deployment<\/em>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Insiden &#8220;Salah Kamar&#8221; &amp; Bentrok Port 80<\/strong> Di awal konfigurasi, saya sempat secara tidak sengaja menginstal Nginx di dalam mesin VM yang sama dengan Apache. Hasilnya? Keduanya &#8220;berkelahi&#8221; memperebutkan Port 80 (<em>Address already in use<\/em>). Solusinya: Kami merancang ulang topologi dengan memisahkan Nginx ke dalam <em>LXC Container<\/em> terpisah agar murni bertugas sebagai makelar (<em>Reverse Proxy<\/em>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Misteri HTTP Error 500 (Internal Server Error)<\/strong> Saat mengatur URL dinamis, Apache tiba-tiba mati dan memunculkan <em>Error 500<\/em>. Setelah melakukan investigasi ke dalam file <em>log<\/em> Apache (<code>\/var\/log\/apache2\/error.log<\/code>), kami menemukan <em>Fatal Error<\/em>. Ternyata, file inti <code>wp-config.php<\/code> bawaan WordPress tidak sengaja terhapus seluruhnya dan hanya menyisakan kode buatan kami. Solusinya: Melakukan <em>restore<\/em> file <em>sample<\/em> dan mengonfigurasi ulang secara hati-hati.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Bencana &#8220;Error Establishing a Database Connection&#8221;<\/strong> Ini adalah <em>error<\/em> yang paling keras kepala. Meskipun <em>database<\/em>, <em>user<\/em>, dan <em>password<\/em> sudah dikonfigurasi, PHP tetap menolak terhubung ke MySQL. Masalah ini berakar dari <em>typo<\/em> karakter gaib dan bentroknya enkripsi <em>password<\/em> MySQL 8. Solusi pamungkas: Kami meratakan seluruh instalasi LAMP Stack (<em>Search and Destroy<\/em> mode), lalu membangunnya ulang menggunakan skrip otomatisasi (memanfaatkan perintah <code>sed -i<\/code> di Linux) untuk menjamin presisi 100% tanpa campur tangan <em>keyboard<\/em> manusia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. Seni Routing Reverse Proxy (Aman Tanpa Menumbalkan Teman)<\/strong> Karena <em>Container<\/em> Nginx yang kami gunakan adalah <em>Shared Proxy<\/em> (dipakai bersama dalam satu jaringan sekolah), kami harus sangat berhati-hati. Alih-alih mengedit konfigurasi <code>default<\/code> yang bisa membuat web tim lain <em>down<\/em>, kami membuat file konfigurasi spesifik (<code>arsad.conf<\/code>) dan merutekan IP Publik langsung menuju IP Lokal VM kami (<code>10.10.10.205<\/code>). <em>Reload<\/em> Nginx dilakukan secara halus tanpa memutus koneksi jaringan lain.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\ud83c\udfc6 Kesimpulan<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Membangun infrastruktur <em>web<\/em> sendiri mengajarkan kami tentang pentingnya ketelitian membaca <em>log error<\/em>, kesabaran dalam <em>troubleshooting<\/em>, dan pemahaman mendalam tentang arsitektur <em>server<\/em> dan keamanan jaringan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kini, mesin sudah menyala stabil, sistem sudah bersihkan dari <em>bug<\/em>, dan <code>4rsadject.my.id<\/code> siap mengudara!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Stay tuned<\/em> untuk <em>update<\/em> dan eksperimen teknologi kami selanjutnya!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oleh: arsad Selamat datang di 4rsadject.my.id! Jika kamu bisa membaca tulisan ini, berarti kamu sedang mengakses sebuah website yang berjalan di atas infrastruktur server yang dibangun dari nol. Artikel pertama ini bukan sekadar sapaan, melainkan sebuah engineering logbook (catatan teknis) tentang bagaimana saya mendeploy website ini melintasi berbagai rintangan troubleshooting jaringan dan sistem operasi. \ud83c\udfd7\ufe0f [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":8,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tak-berkategori"],"_links":{"self":[{"href":"http:\/\/4rsadject.my.id\/index.php\/wp-json\/wp\/v2\/posts\/1","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/4rsadject.my.id\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/4rsadject.my.id\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/4rsadject.my.id\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/4rsadject.my.id\/index.php\/wp-json\/wp\/v2\/comments?post=1"}],"version-history":[{"count":3,"href":"http:\/\/4rsadject.my.id\/index.php\/wp-json\/wp\/v2\/posts\/1\/revisions"}],"predecessor-version":[{"id":10,"href":"http:\/\/4rsadject.my.id\/index.php\/wp-json\/wp\/v2\/posts\/1\/revisions\/10"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/4rsadject.my.id\/index.php\/wp-json\/wp\/v2\/media\/8"}],"wp:attachment":[{"href":"http:\/\/4rsadject.my.id\/index.php\/wp-json\/wp\/v2\/media?parent=1"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/4rsadject.my.id\/index.php\/wp-json\/wp\/v2\/categories?post=1"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/4rsadject.my.id\/index.php\/wp-json\/wp\/v2\/tags?post=1"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}