Cara Setup VPS dengan Mudah dan Murah di IDCloudhost

5 November 2022 3.390x
Cara Setup VPS dengan Mudah dan Murah di IDCloudhost
LAMP adalah akronim yang menunjukkan salah satu tumpukan perangkat lunak paling umum untuk banyak aplikasi web paling populer. Adapun LAMP Stack sendiri terdiri dari Linux, Apache, MySQL / MariaDB dan PHP. Adapun penyedia layanan VPS yang dipakai adalah IDCloudhost, salah satu provider layanan Domain, Hosting, Server yang berasal dari Indonesia. Jika kamu mau menggunakan provider lain, pada dasarnya tidak akan menjadi masalah karena nanti pengoperasiannya akan banyak berada di console terminal.

Pada artikel ini kita akan belajar mengenai cara setup VPS (Virtual Private Server) mulai dari pembuatan resource, konfigurasi atau pemilihan spesifikasi VPS, setting SSH, setup Apache sebagai web server, virtual host, FTP, Firewall, PHP, Database MySQL dengan engine MariaDB, setup SSL dengan Let's Encrypt dan masih banyak lagi.

Kamu cuma perlu menyiapkan investasi sebesar +- Rp 60.000 saja untuk mulai belajar setup yang biayanya terdiri dari VPS bulanan sebesar Rp 50.000 dan domain berekstensi .my.id sebesar Rp 10.000 saja.

Tanpa panjang lebar lagi silahkan tonton video yang ada dibawah ini dengan memperhatikan atau copy paste perintah yang sudah saya siapkan juga setelah video ini.



Tahapan Install VPS dengan LAMP STACK (Linux, Apache, MySQL dan PHP)

Pastikan sudah membuat resource seperti pada video diatas. Jika belum, maka silahkan daftar melalui link berikut: 

https://bit.ly/server-lokal-murah-cepat-handal 

Jika kamu mendaftar menggunakan link diatas maka akan mendapatkan bonus saldo tambahan sebesar Rp 25.000.

Login via SSH

Login ke server via koneksi SSH dengan format:
ssh username@ip_public

Setelah berhasil login, maka update dan upgrade dulu OSnya dengan perintah:
sudo apt update
sudo apt upgrade

SSH

Ganti Port SSH dengan perintah:
sudo nano /etc/ssh/sshd_config

Cari baris opsi #Port 22, hapus simbol # dan ganti nomor 22 ke yang lain, misalnya: 60000.
Port 60000 merupakan custom port sesuai pilihan Anda, pilihannya mulai dari 49152 - 65535.

Tutup akses login user ROOT
sudo nano /etc/ssh/sshd_config

Ganti nilai PermitRootLogin menjadi no

Restart service ssh, cek status SSH, keluar dari akses SSH dan coba login kembali ke SSH
sudo systemctl restart ssh
sudo systemctl status ssh
exit
ssh username@ip_public

APACHE

sudo apt install apache2
sudo systemctl status apache2

Buat Folder Web
sudo mkdir /var/www/belajarvps.my.id

Buat User FTP Baru
sudo adduser namauser

Set Permission
sudo chown -R www-data:ftpbelajarvps /var/www/belajarvps.my.id
sudo chmod -R 775 /var/www/belajarvps.my.id

Virtual Host
sudo nano /etc/apache2/sites-available/belajarvps.my.id.conf

Lalu isikan baris dibawah ini di dalam file belajarvps.my.id.conf:
<VirtualHost *:80>
    ServerName belajarvps.my.id
    ServerAlias www.belajarvps.my.id
    ServerAdmin [email protected]
    DocumentRoot /var/www/belajarvps.my.id
    ErrorLog /var/log/apache2/belajarvps.my.id_error.log
    CustomLog /var/log/apache2/belajarvps.my.id_access.log combined
</VirtualHost>

Tekan tombol CTRL + S untuk menyimpan dan CTRL + X untuk keluar dari text editor nano

Kemudian masukkan perintah berikut di terminal:
sudo a2ensite belajarvps.my.id;
sudo systemctl restart apache2

FTP

Install VSFTPD
sudo apt install vsftpd

Backup Settingan Original
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original

Supaya user bisa login ke root folder per akun website saja:
sudo usermod -d /var/www/belajarvps.my.id/ -m ftpbelajarvps

Setting VSFTPD
sudo nano /etc/vsftpd.conf

Atur/Edit:
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES

Tambah:
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
user_sub_token=$USER
allow_writeable_chroot=YES

Tambahkan User ke Daftar User VSFTPD
echo "ftpbelajarvps" | sudo tee -a /etc/vsftpd.userlist

Cek Status dan Restart VSFTPD
cat /etc/vsftpd.userlist
sudo systemctl restart vsftpd

FIREWALL

Instalasi, Check Status dan Aktivasi UFW
sudo apt install ufw
sudo ufw status
sudo ufw enable

Membuka Port Penting
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 40000:50000/tcp
sudo ufw allow 60000/tcp
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp
sudo ufw allow 3306

CATATAN:
  • 80 adalah port http
  • 443 adalah port https
  • 40000:50000 adalah passive port
  • 60000 adalah port pengganti port ssh (22)
  • 20 dan 21 adalah port FTP dan SFTP
  • 990 adalah port FTPS (FTP SSL)
  • 3306 adalah mysql

PHP

Instalasi PHP 8
sudo apt install php libapache2-mod-php php-mysql

Instalasi PHP 7.4 (opsional)
sudo add-apt-repository ppa:ondrej/php
sudo apt install php7.4 libapache2-mod-php7.4 php7.4-cli php7.4-common php7.4-mbstring php7.4-gd php7.4-intl php7.4-xml php7.4-mysql php7.4-zip php7.4-json

SETTING PHP
sudo nano /etc/php/8.1/apache2/php.ini

Sesuaikan:
upload_max_filesize = 10M
post_max_size = 10M
max_execution_time = 300
max_input_time = 300
memory_limit = 128M

MARIADB

Instalasi MariaDB
sudo apt install mariadb-server mariadb-client
sudo mysql_secure_installation

Buat Database
sudo mysql
CREATE DATABASE belajarvps_db;

Buat User MySQL Baru
Jika ingin 1 user dapat mengakses semua database, maka:
CREATE USER 'belajarvps_user' IDENTIFIED BY ‘password';
GRANT ALL PRIVILEGES ON *.* TO 'belajarvps_user';

Tapi, jika ingin 1 user di 1 database saja:
CREATE USER 'belajarvps_single_user'@'%' IDENTIFIED BY 'password';
GRANT ALL ON belajarvpssingle_db.* TO 'belajarvps_single_user'@'%';

FLUSH PRIVILEGES;

Jika ingin menghapus user:
DROP USER ‘namauser’@’host’;

Cek Status User dan Host
select user, host from mysql.user;

Cara Remote Database via Third Party Apps (Dbeaver, HeidiSQL, dll)
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Ganti nilai: Bind-address dari 127.0.0.1 menjadi 0.0.0.0
sudo systemctl restart mariadb

SSL

Install SSL dengan Let’s Encrypt
sudo apt install certbot python3-certbot-apache

Pasang SSL ke Domain
sudo certbot --apache -d belajarvps.my.id -d www.belajarvps.my.id

Belajarvps.my.id merupakan nama domain tujuan, jika subdomain maka:
sudo certbot --nginx -d subdomain.belajarvps.my.id

Semoga bermanfaat.
Bagikan

Artikel Terkait

Cara Upload Project Codeigniter ke Server Shared Hosting

Cara Upload Project Codeigniter ke Server Shared Hosting

Dalam pembuatan suatu aplikasi web, seseorang biasanya dihadapkan dengan 2 pilihan yaitu kerjakan di localhost atau langsung di server. Bagi Anda yang...

Selengkapnya
Cara Mudah Membuat Domain Website http Menjadi https dengan Let's Encrypt

Cara Mudah Membuat Domain Website http Menjadi https dengan Let's Encrypt

Pertama-tama, kita harus tahu dulu apa itu http dan https. Mengutip dari halaman wikipedia tentang http dan https.&nbsp;Hypertext Transfer Protocol (H...

Selengkapnya
Cara Install Nginx, MySQL, dan PHP di OS Linux (LEMP)

Cara Install Nginx, MySQL, dan PHP di OS Linux (LEMP)

Jika Anda ingin membuat server web berbasis Linux yang cepat dan handal, kombinasi **LEMPP** (Linux, Nginx, MySQL, PHP) adalah pilihan tepat. Artikel...

Selengkapnya
Cara Deploy Project Website atau Aplikasi di Server Linux Menggunakan LEMP Stack

Cara Deploy Project Website atau Aplikasi di Server Linux Menggunakan LEMP Stack

VPS (Virtual Private Server) dengan LEMP stack adalah pilihan tepat bagi Anda yang menginginkan aplikasi web yang ringan dan cepat. LEMPP merupakan si...

Selengkapnya