Belajar Debian 10 — Membuat Web Server dengan Apache, Mysql dan Php

Alfian Dwi Nugraha
Tekaje ID
Published in
7 min readAug 27, 2019

Apa yang dibutuhkan?

Web Server

Web server adalah perangkat lunak yang berfungsi sebagai penerima permintaan yang dikirimkan melalui browser kemudian memberikan tanggapan permintaan dalam bentuk halaman situs web atau lebih umumnya dalam dokumen HTML.

Aplikasi Yang Diperlukan

  • apache2
  • php7.3
  • mysql / maria-db

Disini kita akan memasang maria-db, mariadb meruakn versi open-surce dari mysql. Jad anda juga bisa memaka mysql jika perlu.

Ingat!!!

Ingat untuk selalu melihat note yang saya cantumkan dibawah, php7.3 secara default telah tersematkan di repo Debian10. Jadi jika Debian yang anda gunakan belum Debian 10 maka wajib untuk mengganti beberapa kode instalasi php7.3 ke php biasa, seperti :

# Debian 10 :
apt install php7.3
apt install php7.3-mysql
apt install libapache2-mod-php7.3
# Under Debian 10 :
apt install php
apt install php-mysql
apt install libapache2-mod-php

Memasang Aplikasi Apache2

apt install apache2

Uji Coba Web Server Apache2

Gunakan komputer client lain yang terhubung ke jaringan yang sama, lalu buka browser dan maskan ip server debian kita.

# url :
http://alamat_ip_server

# contoh :
http://10.0.0.1

Akan keluar halaman default yang diberikan oleh apache, ni menandakan apache2 sudah berhasil berjalan dengan baik.

File Web Apache

Default file web apache berada pada /var/www/html , file web ini berfungsi sebagai tempat penyimpanan web yang akan di buka secara default di browser nantinya. Lalu bagaimana kalau kita ingin merubah lokasi penyimpanan web tadi ?
Pertama tama kita edit file konfigurasi berikut :

nano /etc/apache2/sites-available/000-default.conf

Cari bagian DocumentRoot dan ubah value sesuka hati kalian

Sebagai contoh saya ubah ke /home/alfiandwi/web , pastikan folder yang kalian tuju benar dan ada. Jika belum ada gunakan perintah mkdir untuk membuat folder tersebut.

Setelah dirubah, save dengan cara ctrl + x ketik Y lalu enter untuk keluar dan save.

Setelah merubah suatu konfigurasi, pastinya anda jangan lupa untuk merestart service apache2 :

/etc/init.d/apache2 restart

Dan sekarang coba akses url http://localhost kembali dan pastikan sudah berhasil berpindah folder, agar folder yang diganti tadi memiliki isi singkat untuk tes saja, gunakan perintah dibawah ini untuk membuat file tes :

echo "<h1>TES SAJA</h1>" >> /home/alfiandwi/web/index.html

Ganti /home/alfiandwi dengan folder yang kalian ubah di DocumentRoot tadi.

Memasang PHP

apt install php7.3

Note : php7.3 tersedia secara default di Debian 10, jika anda mengguakan Deian dibawah 10 silahkan ganti menjadi apt install php .

sebenarnya kita juga perlu memasang aplikasi lagi yang bernama libapache2-mod-php7.3 yang berfungsi sebagai jembatan penghubung antara php dengan apache2, tetapi bisa diliat di gambar diatas, dimana ketika saya menginstall php7.3 saya juga akan di instalasikan secara otomatis aplikasi libapache2-mod-php7.3. (lihat lingkaran merah di gambar)

Jika belum terpasang, anda bisa memasang nya sendiri dengan kode berikut :

apt install libapache2-mod-php7.3

Note : Jika menggunakan versi Debian dibawah 10, ganti libapache2-mod-php7.3 menjadi libapache2-mod-php

Ceck Apakah PHP sudah Terhubung dengan Apache2

gunakan perintah singkat dibawah untuk membuat file php. gunakan root untuk membuat file berikut.

echo "<?php phpinfo(); ?>" >> /var/www/html/info.php

Note : Jika anda sudah mengubah DocumentRoot di virtualhost apache2 tadi, maka ubah juga kode diatas sesuai dengan folder yang dituju.

Lalu coba akses di komputer client, akses alamat url :

# url :
http://alamat_ip_server/info.php
# contoh :
http://10.0.0.1/info.php

Jika muncul halaman seperti gambar diatas, maka selamat, php sudah terhubung dengan Apache2.

Memasang Mysql / Maria-db

apt install mariadb-server

Konfigurasi Standar Mysql / Maria-db dengan Wizzard

Jalankan perintah berikut :

mysql_secure_installation

setelah mengetik perintah diatas, kalian ikutilah wizzardnya step by step, step pertama adalah kita disuruh memasukan password lama root kita :, enter saja karena baru pertama kali kita pasang.

tekan enter aja untuk melanjutkan

lalu, ketik y untuk melanjutkan :

tekan Y untuk lanjut

Barulah masukan password baru yang akan kalian gunakan nantinya :

masukan password yang ingin kalian gunakan, pastikan selalu ingat

Lalu opsi hapus akun anonymous, disarankan untuk hapus saja, karena ini mengijinkan orang tanpa akun bisa login.

tekan Y untuk menghapus akun anonymous

Lalu apakah ingin mematikan remote?, disini saya akan menginjinakn remote, jadi kita ketik N saja

ketik N untuk tetap membiarkan database dapat di remote

Lalu kita diberi pilihan apakah mau menghapus database “test”, database itu hanya sekadar demo saja, kalian bisa menghapusnya juga.

disini saya menekan N untuk tetap ada

Disini kita akan mereload database privileges, tekan Y saja agar beberapa informasi dapat diperbarui

Tekan Y untuk melakukan reload

Dan yups selesai!!

Uji Coba Mengakses Database Mysql / Mariadb

masukan perintah berikut untuk masuk ke database dengan user root :

mysql -u root -p

Jika ditanya masukan password, masukan password yang sudah kita buat tadi

lalu enter setelah memasukan password :

Dan yups, kita sudah dapat mengakses mysql dengan user root. Ketik “exit” lalu enter atau ctrl + d untuk keluar dari akses mysql.

Menghubungkan PHP dengan Database Mysql / Mariadb

apt install php7.3-mysql

Note : jika anda menggnakan Debian dibawah Debian 10, gunakan apt install php-mysql

Karena tadi kita menginstall php7.3, jadi disini kita bisa tuliskan php7.3-mysql

setelah instalasi selesai, sekarang php sudah dapat terkoneksi ke mysql.

Uji Coba PPHP terhubung dengan Mysql / Mariadb

Membuat User Baru untuk Mysql / Mariadb

masuk dahulu ke mysql :

mysql -u root -p

Buat database baru untuk contoh :

CREATE DATABASE tes;

lalu gunakan perintah berikut untuk membuat user baru :

CREATE USER 'NAMA_USER'@'%' IDENTIFIED BY 'PASSWORD_USER';

sebagai contoh :

CREATE USER 'viandwi24'@'%' IDENTIFIED BY '12345';

Lalu beri hak akses database yang kita buat tadi ke user yang kita buat baru juga :

GRANT ALL PRIVILEGES ON *.* TO 'NAMA_USER'@'%' WITH GRANT OPTION;

Contoh :

GRANT ALL PRIVILEGES ON *.* TO 'viandwi24'@'%' WITH GRANT OPTION;

Setelah itu bisa keluar dengan menekan ctrl + d atau ketik exit lalu enter.

Membuat File PHP Untuk Tes Terhubung Ke DB

Buat sebuah file baru bernama tes.php dengan apliakasi text editor seperti nano atau vi

touch /var/www/html/tes.php

Note : Jika anda sudah mengubah DocumentRoot di virtualhost apache2 tadi, maka ubah juga kode diatas sesuai dengan folder yang dituju.

lalu :

nano /var/www/html/tes.php

Note : Jika anda sudah mengubah DocumentRoot di virtualhost apache2 tadi, maka ubah juga kode diatas sesuai dengan folder yang dituju.

lalu isi file tersebut dengan :

<?php 
if (!mysqli_connect('localhost', 'USER_ANDA', 'PASSWORD_ANDA', 'mysql')) {
die('Koneksi gagal: ' . mysqli_connect_error());
}
echo 'Koneksi berhasil';
?>

Ganti tulsian USER_ANDA diatas dengan user baru yang anda buat tadi dan tulisan PASSWORD_ANDA gnti dengan password kalian yang kalian buat tadi di mysql, sebagai contoh saya menggunakan password “12345" untuk passwrod dari user “viandwi24” tadi maka saya ganti dengan 1 :

<?php 
if (!mysqli_connect('localhost', 'viandwi24', '12345', 'mysql')) {
die('Koneksi gagal: ' . mysqli_connect_error());
}
echo 'Koneksi berhasil';
?>

Save file tersebut dengan ctrl + x lalu tekan Y untuk menyimapn dan keluar dari nano.

Lalu lakukan uji coba di komputer client, ketikan url berikut :

http://ALAMAT_IP_SERVER/tes.php

contoh :

http://10.0.0.1/tes.php

dan yups, pastiakn tulisan “koneksi berhasil” keluar.

Terima kasih!

Terima kasih sudah mengikuti artikel kali ini tentang “Belajar Debian 10 — Membuat Web Server dengan Apache, Mysql dan Php” di seri “Belajar Debian 10”. Jangan lupa lihat artikel kita selanjutnya untuk meneruskan materi kita kali ini, Sampai Jumpa!
Lihat Daftar Materi : Belajar Debian 10

--

--

Alfian Dwi Nugraha
Tekaje ID

Fullstack Web 🧑🏼‍💻 • Blockchain Developer 🌐 • Pixel Arts Enthusiast 👾