Cara Deploy Website Menggunakan VPS IDCloudHost
Kali ini saya akan membagikan tips bagaimana cara kita melakukan deployment pada VPS, terutama VPS yang dibeli dari IDCloudhost
Caranya sebenarnya cukup mudah, kita hanya perlu mensetup Nginx dan MySQL dan aplikasi lain yang dibutuhkan pada program kalian
Karena aplikasi saya merupakan aplikasi Laravel yang menggunakan PHP dan MySQL makan untuk cara kali ini saya akan mencoba menginstal PHP dan MySQL dalam VPS saya
Yuk tanpa basa basi kita langsung ikuti langkah langkah berikut
Namun jangan lupa persiapkan dulu beberapa hal
- VPS dari IDCloudhost kalian bisa langsung cusss klik link berikut
- Project aplikasi kalian yang sudah dipush ke Github. Kalian bisa lihat contohnya disini
- Putty
Langkah Langkah
Masuk ke dalam server VPS menggunakan putty. Segala detail server bisa lihat disini. Masukkan IP tersebut ke dalam Putty
Masukkan IP4 kalian seperti berikut
Lalu tampilan server akan muncul seperti berikut
Masuk sebagai root dengan perintah sudo su
Masukkan perintah berikut untuk mengaktifkan firewall
ufw allow OpenSSH
ufw enable
ufw status
Install LEMP
sudo apt update
sudo apt install nginx
sudo ufw allow 'Nginx HTTP'
sudo ufw status
Buka IP di browser maka kalian akan muncul tampilan seperti berikut
Install MySQL
sudo apt install mysql-server
sudo mysql
SELECT user,authentication_string,plugin,host FROM mysql.user;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Setelah kalian memasukkan perintah di atas, kalian harus memasukkan perintah berikut mysql -u root -p
Install PHP
sudo apt install php-fpm php-mysql
Menguji PHP apakah PHP sudah baik berjalan
sudo nano /etc/nginx/sites-available/default
Lalu tambahkan index.php disamping index.html
index index.php index.html index.htm index.nginx-debian.html;
Lalu tambahkan
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
Catatan: Sesuaikan fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; dengan versi PHP kalian
Buat file php dengan perintah berikut
sudo nano /var/www/html/info.php
Dan isi dengan perintah berikut
<?php
phpinfo();
sudo nginx -t
sudo systemctl reload nginx
Buka URL
[http://ip_server_kalian(berupa angka)/info.php](http://103.214.113.49/info.php). Maka akan muncul segala detail seputar PHP
Contohnya seperti ini
Install Composer
sudo apt update
sudo apt install curl php-cli php-mbstring git unzip
cd ~
curl -sS [https://getcomposer.org/installer](https://getcomposer.org/installer) -o composer-setup.php
HASH=xxx
xxx merupakan kode unik yang diambil dari link berikut
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
composer
Install modul PHP
sudo apt update
sudo apt install php-mbstring php-xml php-bcmath
Buat database
mysql -u root -p
CREATE DATABASE nama_database_kalian
GRANT ALL ON nama_aplikasi.* TO 'nama_aplikasi'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
exit
Setup aplikasi dari Github
sudo su
Masuk ke folder `cd /var/www`
Pull project kalian dari github `git clone URL_GITHUB_KALIAN NAMA_DOMAIN_KALIAN`
cd NAMA_DOMAIN_KALIAN`
composer install
nano .env
Copas konfigurasi kalian dari local, ganti bagian database
Ganti bagian `APP_DEBUG=false` dan `APP_ENV=production` biar kalau error ga muncul (mengamankan coding)
php artisan storage:link
Setting dulu Nginx nya
sudo chown -R www-data.www-data /var/www/NAMA_DOMAIN_KALIAN/storage
sudo chown -R www-data.www-data /var/www/NAMA_DOMAIN_KALIAN/bootstrap/cache
sudo nano /etc/nginx/sites-available/NAMA_DOMAIN_KALIAN
server {
listen 80;
server_name NAMA_DOMAIN_KALIAN;
root /var/www/NAMA_DOMAIN_KALIAN/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
Ganti bagian server_name jadi `NAMA_DOMAIN_KALIAN`
Ganti bagian root jadi `/var/www/NAMA_DOMAIN_KALIAN/public;
Save filenya
sudo ln -s /etc/nginx/sites-available/NAMA_DOMAIN_KALIAN /etc/nginx/sites-enabled/
sudo nginx -t
Sehingga akan muncul tulisan seperti ini
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
sudo systemctl reload nginx
Migration
php artisan migrate:fresh --seed
npm install
npm run build
Setting domain
Saya senditi menggunakan Hostinger untuk mengarahkan domain ke IP. Kalia bisa klik disini untuk menggunakannya
Masuk ke panel hosting kalian (contoh disini pakai IDCloudHost)
Masuk manage DNS
Tambah Add Record
Namenya isi `NAMA_DOMAIN_KALIAN.` Depannya pakai titik
Type nya ganti A
Isi selanjutnya (RDATA / IP Address) masukin nama IP server kalian (bisa dicek di dashboard nya)
Add Record / Save
Jika semua langkah langkah di atas sudah dilakukan dengan baik, maka kita bisa buka website tersebut dengan domain yang sudah disetup. Contohnya seperti berikut
Kalian bisa membaca lebih asik project yang saya deploy menggunakan cara ini disini
Kalo kalian masih terkendala, kalian bisa tanya di kolom komentar di bawah
Comments
Post a Comment