Maklumat

Tulisan-tulisan terkini dapat juga didapatkan di halaman Kompasiana di alamat https://kompasiana.com/didikaha

Khusus untuk konten-konten sastra seperti puisi, cerpen dan esai silahkan kunjungi http://blog.edelweis-art.com. Terima kasih (Penulis)

Minggu, September 29, 2019

Menguji Instalasi Server Web dan Koneksi ke Database

Pada tulisan sebelumnya, saya telah membahas tentang cara menginstal Apache, PHP & MariaDB untuk keperluan server web. Indikasi instalasi tersebut sukses atau tidak bisa kita lihat melalui Windows Services apakah masing-masing service-nya telah/dapat berjalan atau belum (dalam hal ini: service dari Apache & MariaDB). Jika masing-masing service telah berjalan, maka saatnya kita melakukan pengujian.

Pengujian yang pertama kita lakukan untuk Apache dan PHP. Pertama, kita coba cek log error untuk Apache & PHP. Nama dan lokasi file log error untuk Apache bisa dilihat pada baris ErrorLog "logs/error.log" pada file http.conf. Sementara file log error untuk PHP bisa dilihat pada baris error_log = php_errors.log pada file php.ini.

Apa yang tertulis di file log error Apache tergantung dari LogLevel yang ada, yaitu debug, info, notice, warn, error, crit, alert & emerg (lihat tabel di bawah ini).


Jika pada httpd.conf yang kita temukan adalah LogLevel warn artinya, sesuai tabel di atas, Apache akan mencatatkan kondisi-kondisi yang terjadi. Kita dapat mengubah LogLevel yang ada sesuai dengan kebutuhan kita. Sementara untuk log error PHP, secara bawaan PHP akan membiarkannya kosong jika tidak terjadi masalah. Artinya, jika kita tidak atau belum menemukan file log error PHP berarti baik-baik saja adanya.

Sekarang kita coba lihat file log error Apache.


Untuk proses instalasi yang telah kita lakukan, pada file log error Apache terlihat adanya sebuah warning saat service Apache dijalankan: [ssl:warn] [pid 4628:tid 652] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]. Ini sepertinya berkaitan dengan module ssl yang telah kita aktifkan namun belum kita atur konfigurasi ssl-nya. Untuk itu, sementara kita nonaktifkan kembali module ssl-nya dengan memberikan kembali tanda pagar (#) pada dua baris berikut:

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so

Setelah kita restart Apache-nya, warning itu tidak lagi muncul (lihat gambar di bawah).


Adapun file log error PHP, ternyata belum ditemukan, artinya settingan pada file php.ini tidak ada yang bermasalah.

Berikutnya kita buat file index.php yang kita letakkan di root dokumen web dengan isian sebagai berikut:


Lalu kita coba buka melalui browser web di komputer server pada alamat http://localhost/index.php atau cukup http://localhost saja, maka akan nampak tampilan seperti di bawah ini.


Ya, phpinfo() memang berfungsi untuk menampilkan semua informasi terkait PHP yang kita gunakan. Sekarang kita coba buka halaman index.php tersebut dari komputer atau perangkat lain, yaitu cukup dengan mengetikkan alamat IP server pada browser web yang ada.


Yang muncul pada halaman kemudian berbeda dari apa yang ditampilkan saat mengaksesnya dari komputer server. Yang muncul hanyalah tulisan Hello, World! karena memang telah kita atur demikian. Dan memang sebaiknya informasi yang didapat dari phpinfo() janganlah ditampilkan untuk publik karena memang informasi yang ada bersifat krusial menyangkut data konfigurasi server kita.

Sekarang kita akan melakukan pengujian koneksi ke MariaDB menggunakan mysqli. Untuk itu kita buat file db_conn.php dengan isian sebagai berikut:


Setelah itu kita coba buka halamannya.



Ups! Ternyata error. Dan setelah kita cek di file log error PHP ditemukan keterangan: PHP Fatal error:  Uncaught Error: Call to undefined function mysqli_connect() in D:\htdocs\db_conn.php:11 Stack trace: #0 {main} thrown in D:\htdocs\db_conn.php on line 11.

Dari keterangan error yang ada, ternyata mysqli tidak atau belum dikenali. Sekarang kita coba cek php.ini. Ternyata mysqli-nya belum diaktifkan. ;extension=mysqli. Begitu pun dengan semua extention lainnya. Untuk itu, kita aktifkan dulu mysqli dengan membuang tanda titik-koma (;) yang berada di depannya. Sekalian juga kita aktifkan beberapa extention lainnya yang kita perlukan, seperti curl, fileinfo, pdo_mysql dan lain-lain. Setelah itu kita restart service Apache, dan kita coba buka kembali halaman db_conn.php.



Yess! Sekarang kita telah bisa tersambung ke database MariaDB.

Penting untuk selalu memperhatikan dan memahami log error jika sewaktu-waktu terjadi kendala, karena memang fungsi dari log error adalah membantu kita untuk mengetahui kondisi yang ada agar dapat diperbaiki

Untuk pengelolaan database lebih lanjut, kita akan menggunakan phpMyAdmin yang bisa diunduh di situs www.phpmyadmin.net. Saat ini versi stable terakhir yang tersedia adalah phpMyAdmin 4.9.1. Setelah kita unduh, ekstrak file phpMyAdmin-4.9.1-all-languages.zip lalu kita tempatkan di root dokumen web. Agar tidak sulit saat kita akan membukanya karena namanya terlalu panjang, ubahlah namanya menjadi misalnya phpmyadmin saja.


Ada beberapa settingan yang perlu kita lakukan. Pertama, secara default phpmyadmin tidak mengijinkan akses ke database tanpa password. Untuk itu kita perlu mengubahnya, jika saat instalasi MariaDB kita membiarkan password untuk root tetap kosong. Cari file config.sample.inc.php kemudian kita copy atau rename menjadi config.inc.php. Buka file tersebut lalu cari baris $cfg['Servers'][$i]['AllowNoPassword'] = false; dan ubah nilai false menjadi true. Kedua, ini sebenarnya opsional namun jika Anda tidak ingin phpmyadmin diakses dari luar komputer server, maka kita perlu membatasi aksesnya dengan mengubah sedikit isi pada file index.php dengan menambahkan beberapa baris berikut pada bagian paling atas:


Dengan pembatasan akses di atas, maka jika ada yang berusaha mengakses phpmyadmin dari luar komputer server akan otomatis diarahkan ke halaman utama web kita.

Demikian, mudah-mudahan bisa menambah pencerahan. Salam!

Tidak ada komentar:

Posting Komentar