Senin, 07 November 2022

Membuat Web Hosting Sendiri Gratis Menggunakan VPS Debian 11

 Apa itu Web Hosting?

Web hosting adalah sebuah ruang di internet yang bisa kita gunakan untuk menyimpan data untuk membuat aplikasi berbasis website yang dapat diakses melalui Internet.

Secara sederhana, web hosting umumnya terdiri dari beberapa aplikasi yang saling terintegrasi, seperti Web Server (Apache, Nginx, dll), Database (MySQL, MariaDB, dll) dan Bahasa pemprograman (php).

Seiring perkembangan jaman, fitur web hosting semakin bertambah. Sekarang web hosting tidak hanya bisa untuk menyimpan file untuk keperluan website saja, kita bisa juga menambahkan fitur email, ftp, dll.


Cara Kerja Web Hosting

Seperti yang sudah dijelaskan sebelumnya, web hosting terdiri dari beberapa komponen seperti Web Server, Database, Software, Storage (Media penyimpanan), dll.

Web hosting adalah kesatuan dari berbagai komponen tersebut yang berjalan di dalam sistem operasi (operating system). Jenis Operating System (OS) yang sering digunakan oleh web hosting adalah Linux, seperti Debian, Ubuntu, CentOS, Red Hat, dll.

Walaupun web hosting bisa juga berjalan di OS berbasis Windows bahkan MacOS sekalipun, tapi tidak direkomendasikan terkait kompatbilitas dan kecepatan nya.

Operating System ini juga membutuhkan resource untuk bisa berjalan (CPU, RAM, Storage) yang berupa perangkat fisik (Sever/PC/laptop) maupun virtual (Virtual Machine).

Web hosting sendiri OS nya lebih banyak dijalankan pada Virtual Machine atau yang sering disebut sebagai Virtual Private Server (VPS).

Setiap web hosting memiliki IP Address yang melekat pada Server/VPS nya. Dengan IP Address inilah website yang kita buat di web hosting ini bisa diakses melalui internet.


Namun bagi user yang mau mengakses website tersebut tentunya akan kesulitan jika harus memasukkan IP Address website nya tiap kali mau mengakses. Untuk itu kita bisa padukan web hosting dengan nama domain.

Domain ini lah yang nantinya akan diakses oleh user yang kemudian akan diarahkan ke alamat IP web hosting kita.


Cara Membuat Web Hosting Sendiri Gratis

Kita bisa membuat web hosting sendiri bahkan secara gratis dengan beberapa langkah mudah. Untuk membuat web hosting sendiri gratis tentunya kita membutuhkan server/VPS yang bisa digunakan untuk menginstall web hosting nya.

Silakan Daftar VPS di Vultr dari link berikut ini untuk mendapatkan gratis credit sebesar $100 :

Setelah daftar VPS Vultr, silakan untuk melakukan deploy instance baru untuk diinstall dengan Linux Debian 11 berulah kita akan mulai Tutorial Cara Membuat Web Hosting Sendiri Gratis Menggunakan VPS Debian 11.


Cara Install VPS Debian 11 dengan Nginx, php 8.1 & MariaDB

Untuk tutorial cara install Nginx, php 8.1 dan MariaDB di Debian 11 pada VPS Vultr sudah pernah saya bahas pada artikel sebelumnya. Silakan lihat caranya disini :


Cara Membuat Web Server di Debian 11 : Install Nginx, MariaDB, PHP 8 Terbaru

Cara Install Wordpress di Debian 11 pada VPS Vultr

Setelah melakukan instalasi Nginx, php8.1 dan Database MariaDB pada Debian 11 berarti kita sudah berhasil membuat web hosting sendiri.

Sekarang kita akan bahas cara membuat website pada web hosting tersebut menggunakan Wordpress. Website berbasis Wordpress banyak digunakan karena mudah digunakan dan yang jelas gratis.


Cara Install SSL Certificate Wordpress di Debian

Hal pertama yang akan kita lakukan adalah melakukan generate SSL Certificate untuk domain nya supaya lebih secure dan bisa diakses menggunakan protocol https.

Pada tutorial kali ini saya menggunakan domain rizkyagung.com sehingga nantinya bisa mengakses domain nya dengan protocol https://rizkyagung.com.

Caranya masuk dulu ke direktori SSL nya

cd /etc/ssl/certs/

Kemudian eksekusi perintah ini :

openssl req -newkey rsa:2048 -nodes -keyout rizkyagung.com.key -x509 -days 365 -out rizkyagung.com.crt

Pada perintah tersebut, silakan ganti nama domain rizkyagung.com dengan domain Anda.

Ketika perintah dieksekusi, maka akan muncul opsi yang harus kita isi, silakan isikan seperti contoh berikut ini :

Generating a RSA private key
................................................................................ .......+++++
.............................+++++
writing new private key to 'rizkyagung.com.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:Bali
Locality Name (eg, city) []:Denpasar
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Agung Channel
Organizational Unit Name (eg, section) []:admin
Common Name (e.g. server FQDN or YOUR name) []:rizkyagung.com
Email Address []:admin@rizkyagung.com

Silakan isi sesuai dengan data Anda dan pastikan pada Common Name FQDN diisi dengan nama domain Anda.

Cara Install SSL Certificate Wordpress Debian 11
Cara Install SSL Certificate Wordpress Debian 11

Sampai disini kita sudah berhasil melakukan generate SSL yang menghasilkan dua file dengan ekstensi .crt dan .key. Kedua file ini nantinya akan kita masukkan ke dalam file konfigurasi Nginx nya.


Cara Setting php-fpm untuk Wordpress di Debian

Hal kedua yang kita lakukan yaitu membuat file konfigurasi php8.1-fpm pool nya. Masuk dulu ke direktori konfigurasi php8.1-fpm pool nya dengan perintah :

cd /etc/php/8.1/fpm/pool.d/

Buat file konfigurasi baru untuk domain yang akan digunakan dengan perintah :

nano rizkyagung.com.conf
Cara Membuat file konfigurasi php8.1-fpm untuk Wordpress di Debian
Cara Membuat file konfigurasi php8.1-fpm untuk Wordpress di Debian

Copy dan paste file konfigurasi berikut ini dan pastikan mengganti nama domain nya :

[rizkyagung.com]
user = www-data
group = www-data
listen = /run/php/php8.1-rizkyagung.com-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = ondemand
pm.max_children = 100
pm.max_requests = 500
request_terminate_timeout = 6000
Cara Menambahkan Listen php8.1-fpm Nginx Debian
Cara Menambahkan Listen php8.1-fpm Nginx Debian

Jika sudah, simpan file konfigurasinya dengan menekan tombol ctrl + o –> enter –> ctrl + x untuk keluar.

Restart service php8.1-fpm nya dengan perintah :

service php8.1-fpm restart


Cara Setting Nginx untuk Wordpress di Debian

Selanjutnya kita setting Nginx nya supaya bisa terintegrasi dengan file konfigurasi SSL dan php8.1-fpm yang sebelumnya sudah kita siapkan.

Masuk ke direktori konfigurasi nginx dengan perintah :

cd /etc/nginx/conf.d/

Buat file konfigurasi nginx baru untuk domain yang digunakan dengan perintah :

nano rizkyagung.com.conf

Silakan copy & paste file konfigurasi berikut. Pastikan mengganti nama domain rizkyagung.com dengan nama domain yang digunakan :

server {
listen 80;
listen 443 ssl http2;
ssl_certificate /etc/ssl/certs/rizkyagung.com.crt;
ssl_certificate_key /etc/ssl/certs/rizkyagung.com.key;
root /usr/share/nginx/html/rizkyagung.com;
index index.php index.html index.htm;
error_log /var/log/nginx/rizkyagung.com.error.log;
server_name rizkyagung.com www.rizkyagung.com;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.1-rizkyagung.com-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/rizkyagung.com$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location ~ /\.us {
deny all;
}
location = /xmlrpc.php {
return 403;
}
rewrite ^/sitemap_index\.xml$ /index.php?sitemap=1 last;
rewrite ^/([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
}
Cara Membuat file Konfigurasi Nginx Wordpress di Debian
Cara Membuat file Konfigurasi Nginx Wordpress di Debian

Jika sudah simpan file nya dengan ctrl + o –> enter dan ctrl + x untuk keluar.

Kita coba tes dulu file konfigurasinya apakah ada yang error. Masukkan perintah ini :

nginx -t

Jika ada info error silakan dicek kembali file konfigurasinya dan perbaiki sesuai info dari hasil tes ada di line berapa error nya.

Jika sudah tidak ada error kita bisa restart service nginx nya dengan perintah :

service nginx restart


Cara Download Wordpress di Linux Debian

Sekarang kita sudah siap untuk install wordpress di Nginx Debian 11 nya. Caranya kita download dulu file installer Wordpress nya.

Pastikan kita sudah masuk ke direktori html nya nginx. Jika belum masukkan perintah ini :

cd /usr/share/nginx/html/

Kemudian kita download file installer Wordpress nya dengan perintah :

wget https://wordpress.org/latest.zip
Cara Download Wordpress di Debian
Cara Download Wordpress di Debian

Extract file latest.zip nya dengan perintah :

unzip latest.zip

Jika aplikasi unzip belum ada di Debian nya, silakan install dulu dengan perintah :

apt install unzip

Setelah selesai proses unzip nya kita rename folder wordpress nya menjadi nama domain yang kita gunakan dengan perintah :

mv wordpress rizkyagung.com

Kemudian kita rubah pemilik folder nya dari root menjadi www-data yang digunakan oleh php dan nginx nya dengan perintah :

chown -R www-data:www-data .
Cara Merubah User dan Group File Wordpress Debian
Cara Merubah User dan Group File Wordpress di Debian

Cara Membuat Database untuk Wordpress di Debian

Sebelum kita bisa melakukan instalasi Wordpress di Debian 11 nya, kita harus membuat database yang akan digunakan oleh wordpress nya.

Masuk ke console Database MariaDB nya dengan perintah

mysql -u root -p

Masukkan password database mariadb yang sudah diseting sebelumnya setelah instalasi mariadb nya.

Jika sudah masuk ke console mariadb nya, masukkan perintah berikut :

CREATE DATABASE rizkyagung;

Silakan ganti rizkyagung menjadi nama database yang Anda inginkan.

Jika sudah ketikkan perintah exit untuk keluar.

Cara Membuat Database Wordpress di MariaDB Debian
Cara Membuat Database Wordpress di MariaDB Debian

Oke sampai disini konfigurasi pada web hosting nya sudah selesai. Sekarang kita lanjut setting domain nya supaya bisa terkoneksi dengan web hosting nya.


Cara Setting Domain dengan Cloudflare ke VPS Debian

Disini kita akan menggunakan Cloudflare untuk mendapatkan SSL yang valid untuk domain yang digunakan.

Jika Anda belum punya akun cloudflare silakan daftar dulu di website nya cloudflare.com. Tenang saja pakai cloudflare ini gratis juga kok.

Setelah daftar, login ke dashboard cloudflare nya. Tambahkan domain nya dengan klik menu Add a Site –> Masukkan nama domain nya –> Klik Add site.

Selanjutnya pilih plan yang gratis atau Free (paling bawah) –> klik Continue

Cloudflare akan melakukan scanning pada DNS records domain nya. Jika ditemukan ada entri DNS Records nya bisa dihapus semua.

Jika sudah kosong tidak ada DNS Records nya kita tambahkan record baru dengan klik Add record dengan detail berikut :

Type : A
Name : @
IPv4 address : IPAddressVPSnya

Tambahkan satu record lagi dengan detail :

Type : CNAME
Name : www
Target : @

Pada opsi @ bisa diganti dengan nama domain nya. Jika kedua DNS records itu sudah ditambahkan, lanjut klik Continue.

Selanjutnya copy nameserver dari cloudflare dan paste ke setingan nameserver domain nya. Silakan masuk ke pengaturan domain nya masing-masing untuk mengganti nameserver nya.

Jika sudah klik Done, check nameservers. Perubahan nameserver ini kadang bisa makan waktu yang cukup lama hingga 24 jam, tapi biasanya bisa lebih cepat cuma beberapa menit atau detik saja.

Kita bisa tes apa DNS Record nya sudah benar dengan akses domain nya via web browser. Jika semua sudah benar seharusnya akan muncul tampilan wizard instalasi Wordpress nya.

Cara Install Wordpress di VPS Debian Nginx
Cara Install Wordpress di VPS Debian Nginx

Silakan lakukan proses instalasi Wordpress nya dengan memasukkan detail database MariaDB di VPS nya.

Memasukkan data koneksi Database MariaDB di Wordpress
Cara Memasukkan data koneksi Database MariaDB di Wordpress

Kemudian tinggal masukkan detail dari website nya berupan nama, username, password, dsb.

Install Awal Wordpress
Install Awal Wordpress

Sampai disini kita sudah bisa membuat website yang jalan di web hosting yang dibuat sendiri di Debian 11 pada VPS.


referensi