Tutorial PHP Web
Konfigurasi Server
Materi ini memiliki 1 buah lampiran. Namun Anda tidak dapat mengakses lampiran karena belum terdaftar di kursus ini. Klik disini untuk mendaftar.
Kita memasuki materi kedua dari PHP Web. Namun sebelum kita melanjutkan ke materi pemograman, ada baiknya kita mengetahui dahulu beberapa hal mengenai konfigurasi server.
Yang pertama adalah phpinfo. Ini adalah salah satu fungsi yang penting untuk mengetahui konfigurasi server yang sedang kita gunakan saat ini. Ada 2 cara untuk memanggil fungsi ini. Apabila kita menggunakan command line atau terminal, maka kita bisa mengetik perintah php –info. Sedangkan kalau kita sedang menggunakan PHP Web atau Server Side Scripting, maka kita bisa memanggil fungsi phpinfo(). PHP akan menampilkan seluruh informasi yang berkaitan dengan server kita.
Kita coba praktek. Pertama kita coba yang dari terminal dulu ya. Kita buka terminal. Lalu kita ketik php –info. Nah, kita mendapatkan hasilnya banyak sekali ya. Akan repot sekali kalau kita mesti melihat informasinya satu per satu dari terminal.
Oleh karena itu kita coba menggunakan cara web ya. Kita buat file baru dengan nama phpinfo.php. Di dalamnya kita buka tag php. Lalu kita panggil fungsinya yaitu phpinfo().
Kita buka browser dan kita akses ke url http://localhost/php/phpinfo.php. Disini kita bisa lebih nyaman untuk melihat informasi server ya, karena sudah di-format dalam bentuk web. Kita bisa melihat informasi-informasi yang berkaitan dengan server yang sedang kita gunakan. Apa yang teman-teman lihat disini, mungkin akan berbeda dari yang teman-teman lihat pada komputer masing-masing. Dan biasanya juga berbeda dengan server akan digunakan di hosting.
Sebagai contoh, pada bagian paling atas kita bisa melihat sistem operasi yang sedang digunakan. Kebetulan saya menggunakan Windows 11 ya. Nanti teman-teman bisa melihat sendiri informasi apa saja yang disajikan pada phpinfo. Namun disini saya akan membahas beberapa informasi yang penting.
Yang pertama adalah Loaded Configuration File, yang menunjukkan lokasi file php.ini yang sedang digunakan. Ini adalah file yang paling penting untuk mengatur konfigurasi php yang sedang kita gunakan. Berhubung saya melakukan instalasi menggunakan xampp dan saya taruh pada folder d:\xampp, maka file php.ini yang sedang digunakan berada di d:\xampp\php\php.ini. Nantinya kalau kita hendak mengganti konfigurasi server php, kita harus mengubah php.ini.
Kita lanjutkan ke bagian Apache Environment. Nanti teman-teman bisa lihat lagi informasi apa saja yang ada ya. Namun yang ingin saya garis bawahi disini adalah DOCUMENT_ROOT, yaitu folder yang digunakan untuk menyimpan source code PHP Web. Secara default foldernya adalah htdocs yang berada di folder instalasi xampp. Namun kalau kita mau, kita bisa memindahkannya ke tempat lain.
Kita coba ya. Kita buka Control Panel XAMPP. Lalu kita pilih Apache, tekan tombol Config. Berhubung konfigurasi ini berada pada apache, maka yang kita buka adalah Apache httpd.conf. Di dalamnya kita cari DocumentRoot. Perhatikan tulisannya disini Pascal Case ya. Setelah ketemu, kita ubah nilainya menjadi d:\php. Kemudian kita ubah juga nilai di dalam directory yang berada di bawahnya.
Setelah kita simpan. Kita harus restart dahulu apache, baru perubahannya bisa diimplementasikan. Sekarang kalau kita refresh browser, kita sudah tidak bisa menemukan phpinfo.php ya. Kita ubah URL-nya menjadi localhost. Kebetulan folder ini adalah folder yang saya gunakan untuk coding PHP Object Oriented Programming. Jadi kita bisa menemukan file validation.php yang terakhir kita tulis. Kita bisa klik file tersebut untuk menjalankan. Dan kita mendapatkan hasilnya di browser. Kita kembalikan dahulu DocumentRoot ke nilai sebelumnya.
Kita restart kembali apache. Dan browser-nya kita kembalikan ke halaman phpinfo. Kita lanjutkan ke bawahnya yaitu bagian core. Disini kita bisa menemukan informasi lebih lengkap mengenai PHP yang sedang kita gunakan. Di bagian paling atasnya adalah versi yang sedang digunakan.
Yang penting disini adalah bagian display_errors. Konfigurasi ini akan menentukan apakah PHP akan menampilkan pesan error di layar atau tidak. Nilai yang seharusnya disini adalah On pada komputer yang sedang kita gunakan untuk coding. Karena kita perlu melihat pesan kesalahannya langsung di layar agar bisa lebih cepat dalam memperbaiki bugs.
Namun nilai ini harus Off pada server yang kita gunakan di hosting. Karena kalau pesan kesalahannya kelihatan oleh user, maka tampilan website kita menjadi tidak profesional. Selain itu, terkadang pesan kesalahan ini juga mengandung informasi sensitif yang bisa digunakan untuk menyerang situs kita. Oleh karena itu sebaiknya pesan kesalahan tidak ditampilkan.
Bagaimana cara mengubah nilai display_errors? Berhubung hal ini adalah konfigurasi dari core PHP, maka file yang perlu kita ubah adalah php.ini. Kita bisa mengetahui lokasi dari file ini dari bagian awal phpinfo. Namun kalau ingin mengubah dengan lebih gampang, kita tinggal buka control panel xampp dan tekan tombol config pada apache. Kita pilih php.ini.
Di dalamnya, kita cari display_errors. Saat ini bernilai On. Kita ubah menjadi Off. Lalu kita simpan.
Perubahan hanya terjadi setelah kita restart apache. Namun sebelumnya kita sengaja membuat error dahulu ya. Kita buka lagi file hello-world.php. Dengan sengaja kita buat agar source code ini menjadi error ya. Kita hapus semua tanda titik komanya. Lalu kita buka menggunakan browser. URL-nya adalah http://localhost/php/hello-world.php.
Dan hasilnya kita mendapatkan parse error. Error seperti ini kalau dilihat pada komputer programmer akan mempercepat programmer untuk memperbaiki kesalahan. Namun kalau dilihat oleh user, maka websitenya menjadi tidak profesional. Oleh karena itu pada server production seharusnya nilai display_errors adalah Off. Sekarang kita restart Apache.
Kita refresh browser. Sekarang kita mendapatkan halaman kosong ya. Berhubung kita mendapatkan fatal error, maka script tidak dilanjutkan. Browser tidak menampilkan apa-apa.
Pertanyaan berikutnya, apabila browser tidak menampilkan error, darimana kita bisa tau pesan errornya? Nah, pesan error harus ditulis di dalam file. Kita lihat kembali phpinfo. Disini ada konfigurasi yang bernama error_log. Jadi semua error PHP akan disimpan di dalam file ini. Kita bisa lihat lokasi file-nya adalah di folder instalasi XAMPP, kemudian di dalamnya ada folder php dan folder logs.
Teman-teman bisa memeriksa folder tersebut pada komputer masing-masing. Apabila di dalam folder php masih belum ada folder logs, maka bisa kita tambahkan secara manual. Kemudian kita buka kembali file php.ini. Pastikan konfigurasi log_errors bernilai On. Jadi kalau ada pesan kesalahan pada PHP, akan ditulis di dalam file.
Kita restart PHP dan kita refresh browser. Lalu kita buka kembali folder logs. Disini sudah ada file baru php_error_log. Kalau kita buka, maka kita mendapatkan tulisan pesan errornya disini. Jadi kalau di server production, kita mesti secara berkala memeriksa file ini untuk mengetahui apakah ada fatal error yang terjadi pada server kita.
Namun perhatikan bahwa zona waktu yang digunakan disini adalah ‘Europe/Berlin’. Jadinya nilai jam-nya berbeda dengan nilai jam yang sedang kita gunakan sekarang. Apabila teman-teman yang ingin memperbaiki hal ini, maka kita harus mengubah timezone.
Kita kembalikan dahulu konfigurasi display_errors menjadi On. Kita restart Apache.
Kita lihat kembali phpinfo. Konfigurasi penting yang perlu kita atur berikutnya adalah timezone. Konfigurasi ini berada pada extension date. Perhatikan nilai timezone disini adalah Europe/Berlin.
Kita buka kembali php.ini. Kita cari konfigurasinya yaitu date.timezone. Setelah ketemu, kita ubah. Kebetulan posisi saya berada di Jakarta. Jadi nilai yang saya gunakan adalah Asia/Jakarta. Bagi teman-teman yang berada di kota lain, mungkin nilainya berbeda ya. Untuk melihat zona waktu yang didukung oleh PHP, bisa membuka link berikut ini:
https://www.php.net/manual/en/timezones.asia.phpBagi teman-teman yang berada di wilayah Waktu Indonesia Barat bisa menggunakan Asia/Jakarta. Bagi yang berada di Waktu Indonesia Tengah bisa menggunakan Asia/Makassar. Sedangkan yang berada di Waktu Indonesia Timur bisa menggunakan Asia/Jayapura.
Setelah kita ubah dan simpan. Kita restart Apache. Kemudian kita jalankan lagi error pada file hello-world.php. Kemudian kita cek ke file php_error_log. Zona waktu yang digunakan sekarang sudah Jakarta ya. Perhatikan waktu nilai jam-nya sudah berubah kalau kita bandingkan dengan error pada saat masih menggunakan zona waktu Berlin.
Kita lanjutkan materi. Pada PHP, terdapat global variable $_SERVER, yang berisikan informasi yang berhubungan dengan server dan request, misalkan nama dan ip server, document root, nama script, browser dan ip yang digunakan oleh user dan lain-lain. Nilai di dalam variable $_SERVER ini akan berubah-ubah sesuai dengan request.
Kita coba praktek ya. Kita buat file baru dengan nama server.php. Di dalamnya, selalu ingat buka tag PHP dulu ya. Setelah itu kita panggil var_dump dengan argument variable $_SERVER.
Kita buka browser lalu kita ketik URL-nya http://localhost/php/server.php. Dan kalau kita jalankan, hasilnya berantakan ya. Karena var_dump dirancang untuk text, bukan HTML. Kalau mau lebih rapi, kita bisa klik kanan dan view source. Namun kalau mau lebih enak lagi, kita bisa melihat dari halaman phpinfo. Kita scroll ke bagian bawah sampai ke variable SERVER.
Kita bisa melihat apa saja nilai pada variable SERVER. Ada banyak nilai ya. Saya akan sebutkan beberapa yang penting. Yang pertama adalah HTTP_USER_AGENT. Disini kita bisa melihat browser yang digunakan oleh user untuk mengakses web. Kemudian ada beberapa informasi mengenai server-nya. Seperti SERVER_SOFTWARE menunjukkan software apa yang digunakan sebagai web server. Kemudian SERVER_NAME menunjukkan nama domain server, yaitu localhost. SERVER_ADDR menunjukkan alamat atau IP Address dari server. SERVER_PORT menunjukkan nomor port yang sedang digunakan. Dan REMOTE_ADDR menunjukkan IP address dari user yang sedang mengakses server.
Kemudian ada DOCUMENT_ROOT yaitu nilai dari konfigurasi DocumentRoot yang barusan kita coba ubah pada Apache ya. Biasanya nilai ini berguna pada saat kita ingin menyimpan file yang diupload oleh user. Dan kemudian di bagian bawah ada REQUEST_URI dan SCRIPT_NAME yang menunjukkan file yang sedang diakses oleh user. Perhatikan nilainya ada pada URL, yaitu tulisan yang berada dibelakang localhost.
Apabila kita ingin mengakses nilai dari variable ini, kita tinggal tambahkan kurung siku dan nama index-nya. Misalkan kita ingin tau browser yang digunakan oleh user. Kita tinggal copy paste nama index HTTP_USER_AGENT. Lalu kita pindah ke source code. Pada variable $_SERVER, kita tambahkan tanda kurung siku dan tanda kutip. Lalu kita paste HTTP_USER_AGENT. Kalau kita refresh browser, maka kita mendapatkan nilai browser yang sedang digunakan.
Untuk melihat perbedaan nilai $_SERVER pada request lain, kita akan mencoba untuk mengubah konfigurasi server agar dapat diakses dari device lain.
Untuk saat ini, kita mengatur ServerName kita menggunakan nama localhost, karena cara ini adalah cara pengaturan yang paling mudah untuk digunakan. Misalkan kita meng-install web server pada laptop. Pada saat kita ingin mengakses web server, kita menggunakan alamat URL localhost, dan kemudian browser menghubungi laptop itu sendiri. Berhubung web server dan browser berada di laptop yang sama, maka browser berhasil tersambung ke web server.
Namun hal yang berbeda terjadi apabila kita ingin mengakses web server dari device lain. Misalkan ingin mengakses dari smartphone. Pada saat kita membuka browser menuju localhost, maka browser malah menghubungi smartphone itu sendiri. Berhubung pada smartphone tidak ada web server, maka koneksinya gagal.
Untuk mengatasi masalah ini, maka kita mesti mengubah ServerName menjadi IP Address. Pada saat kita membuka browser pada laptop yang sama, dan kita menggunakan IP Address pada URL, maka browser akan mengakses ke laptop yang sama, sehingga web page berhasil terbuka.
Dan pada saat kita ingin mengakses web server menggunakan smartphone, kita juga menggunakan IP Address pada URL. Dengan cara ini, maka browser smartphone akan terhubung ke web server yang berada pada laptop, sehingga web page berhasil dibuka dari smartphone.
Kita coba praktek ya. Pertama laptop kita harus terhubung ke salah satu jaringan LAN terlebih dahulu ya. Kalau sudah terhubung, barulah kita memiliki IP Address. Pertanyaannya adalah bagaimana cara melihat IP Address milik server? Salah satu caranya adalah kita bisa membuka terminal pada VS Code, lalu mengetik perintah ipconfig. Pada sistem operasi Windows, nama perintahnya adalah ipconfig. Kalau pada sistem operasi Linux, nama perintahnya adalah ifconfig, depannya menggunakan huruf i dan f. Dari hasilnya kita bisa melihat ada IP Address dari server kita. Kita copy nilainya.
Kemudian kita buka xampp control panel. Pilih config httpd. Lalu kita cari ServerName. Kita ganti kata localhost menjadi IP Address server. Kita restart apache.
Kalau kita coba pada browser, yang tadinya kita bisa mengakses website kita menggunakan url localhost, sekarang kita ganti kata localhost menjadi IP Address. Nah, kita bisa mengakses web server ya.
Kemudian kita coba akses web server dari tablet ya. Disini saya menggunakan program GlideX untuk melihat tampilan dari tablet saya. Misalkan saya buka Chrome. Lalu saya akses URL IP Server, dengan folder php dan nama script phpinfo.php. Nah, disini kita bisa mengakses web server kita.
Yang menariknya disini, ada beberapa nilai pada $_SERVER yang berbeda ya. Karena request dilakukan dari tablet. Misalkan HTTP_USER_AGENT disini adala browser chrome dari os android. Kemudian kita bisa melihat SERVER ADDRESS adalah IP Server. Sedangkan Remote Address adalah IP tablet.
Menarik ya. Jadi kita sudah belajar cara agar web server dapat diakses dari device lain pada jaringan yang sama. Namun konfigurasi disini sangat bergantung pada jaringan yang sedang kita gunakan. Ada jaringan tertentu yang mengubah IP Server setiap kali restart. Oleh karena itu cara menggunakan IP seperti ini lebih repot dibandingkan dengan menggunakan localhost. Di video berikutnya saya akan kembali menggunakan localhost, dan hanya menggunakan IP kalau ada kebutuhan untuk mengakses web server dari device lain.
Dengan menggunakan fasilitas tanya jawab, maka Anda bisa bertanya dan akan dijawab langsung oleh instruktur kursus.
Anda belum terdaftar pada kursus ini sehingga tidak bisa mengajukan pertanyaan.