Rumahweb Journal
banner - cara upload laravel ke VPS Ubuntu

Cara Upload Laravel ke VPS Ubuntu Pada Nginx Web Server

Pada artikel sebelumnya, kami telah menjelaskan cara upload Laravel ke cPanel hosting. Dalam artikel ini, kami akan berbagi tutorial tentang cara upload Laravel ke VPS Ubuntu dengan Nginx sebagai Web server.

Sebelum mengupload Laravel di VPS Ubuntu, pastikan bahwa Anda telah menyiapkan VPS dengan sistem operasi Ubuntu 20.04 atau 22.04. Setelah itu, ada beberapa konfigurasi awal yang perlu dilakukan untuk persiapan sistemnya. Berikut langkah-langkahnya.

Step 1. Mempersiapkan VPS Ubuntu

Berikut adalah beberapa hal yang perlu anda lakukan, sebelum mengupload file laravel ke VPS Ubuntu. Dalam artikel ini, kami menggunakan VPS KVM dari Rumahweb Indonesia.

1. Install Nginx

Silakan menginstall Nginx di Ubuntu 20.04 Anda terlebih dahulu. Anda dapat mengikuti panduan instalasinya disini.

2. Konfigurasi tambahan UFW

Cek Status UFW dengan perintah berikut:

sudo ufw status

Apabila Anda belum mengaktifkan “Nginx HTTPS” dan “OpenSSH”, silakan diaktifkan terlebih dahulu. Contoh perintah untuk mengaktifkannya adalah sebagai berikut.

sudo ufw allow 'Nginx HTTPS'
sudo ufw allow 'OpenSSH'

Aktifkan UFW menggunakan perintah berikut:

sudo ufw enable

Untuk memastikan bahwa service Nginx telah berjalan, kita bisa melakukan pengecekan status dengan perintah berikut ini:

systemctl status nginx

Jika semuanya berjalan, maka akan tampil informasi berikut ini:

Output
 ? nginx.service - A high performance web server and a reverse proxy server
    Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
    Active: active (running) since Fri 2020-02-20 16:08:19 UTC; 3 days ago
      Docs: man:nginx(8)
  Main PID: 2369 (nginx)
     Tasks: 2 (limit: 1153)
    CGroup: /system.slice/nginx.service
            ??2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
            ??2380 nginx: worker process

3. Konfigurasi Virtual Host

Setelah menginstal Nginx web server, Anda perlu melakukan konfigurasi virtual host Nginx. Virtual host ini diperlukan untuk memetakan domain yang sudah Anda pointing sebelumnya ke IP address server.

Untuk membuat konfigurasi virtual host Nginx, jalankan perintah berikut:

nano /etc/nginx/sites-available/namadomain.com

Ubah namadomain.com pada perintah diatas menjadi nama domain yang Anda setting. Kemudian isikan baris konfigurasi berikut:

server { 
listen 80;

root /var/www/namadomain.com; 
index index.html index.htm; #
server_name namadomain.com www.namadomain.com; # Domain name of this site 
location / { 
try_files $uri $uri/ =404; 
} 
}

Simpan file dengan menekan tombol Ctrl+X, ketik Y, Enter. Pada bagian root bisa disesuaikan dengan lokasi yang Anda sukai. Semisal, ingin diarahkan ke /var/www/namadomain.com, maka Anda harus membuat terlebih dahulu direktori tersebut:

mkdir /var/www/namadomain.com

Buat file sampel, dan isi dengan tulisan apapun yang Anda suka

nano /var/www/namadomain.com/index.html

Aktifkan konfigurasi virtual host yang sudah dibuat dengan menjalankan perintah berikut:

ln -s /etc/nginx/sites-available/namadomain.com /etc/nginx/sites-enabled/ 

Terakhir, reload servis Nginx dengan menjalankan perintah berikut:

sudo systemctl reload nginx

4. Install Database MySQL

Untuk install database mysql, Anda bisa menggunakan perintah berikut:

sudo apt install mysql-server

Saat diminta konfirmasi instalasi, silakan klik Y. Kemudian klik ENTER. Setelah instalasi selesai, Anda akan diminta untuk menjalankan skrip keamanan yang sudah diinstall. Skrip ini akan menghapus beberapa pengaturan default yang tidak aman.

Perintah instalasinya sebagai berikut:

sudo mysql_secure_installation

Setelah itu ada tawaran untuk membuat password MySQL, tekan Y.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y

Setelah itu akan ada parameter level kekuatan password. Pilih 1 untuk yang Medium, 2 untuk yang strong.

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

Hapus pengaturan standar dengan tekan Y.

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y

Lanjutkan tekan Y.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y

Lanjutkan tekan Y.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.

Hapus tables, tekan Y.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

Bila sudah menjumpai tampilan All done! , maka sudah selesai setup MySQLnya.

5. Install PHP dan dependensi tambahan

Langkah selanjutnya, Anda dapat melakukan install php dan dependensi tambahan. Pada perintah berikut, kami akan menginstall php 8.2. Berikut perintah lengkapnya untuk update package manager dan upgradenya.

# sudo apt update && sudo apt upgrade -y
# sudo apt install software-properties-common
# sudo add-apt-repository ppa:ondrej/php
# sudo apt update

# sudo apt install php8.2-fpm
# php-fpm8.2 -v
# sudo apt install php8.2-sqlite3

Selanjutnya, Anda perlu menginstall versi php dengan modul ekstensi yang dibutuhkan dengan perintah:

sudo apt install php8.2-common php8.2-mysql php8.2-xml php8.2-xmlrpc php8.2-curl php8.2-gd php8.2-imagick php8.2-cli php8.2-dev php8.2-imap php8.2-mbstring php8.2-opcache php8.2-soap php8.2-zip php8.2-redis php8.2-intl php8.2-fpm php8.2-bcmath -y

6. Membuat Database dan User Database

Untuk membuat database dan usernya, silakan anda login terlebih dahulu ke database server Anda dengan perintah berikut:

sudo mysql

Buat database baru dari MySQL Console. Ganti example_database dengan nama database yang akan Anda gunakan.

CREATE DATABASE example_database;

Membuat user databases. Ganti example_user dengan nama user database yang akan Anda gunakan. Untuk bagian password, silakan ditulis password user database Anda.

CREATE USER 'example_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

Memberi permission pada database. Ganti example_database dan example_user menjadi nama database dan user database Anda.

GRANT ALL ON example_database.* TO 'example_user'@'%';

Sampai tahap ini, proses pembuatan database dan usernya telah selesai. Selanjutnya, Anda dapat keluar dari MySQL dengan perintah:

exit

Pastikan Anda telah mencatat nama database, user database, dan password yang telah dibuat di perintah sebelumnya.

Step 2. Download dan Install Composer

Tahap selanjutnya adalah melakukan download dan install composer di VPS. Caranya, masuk ke Home Directory Website Anda. (Ganti namadomain.com dengan nama domain Anda).

# cd /var/www/namadomain.com

Install Composer menggunakan perintah Curl berikut:

# curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php

Untuk menginstal composer secara global, gunakan perintah berikut yang akan mendownload dan menginstal Composer sebagai perintah seluruh sistem bernama composer, di /usr/local/bin:

# sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

Test Instalasi

composer

Step 3. Create Project Laravel

Langkah selanjutnya Anda membuat project Laravel di VPS.

  1. Masuk ke folder kerja Laravel Anda.
# cd /var/www/namadomain.com
  1. Hapus file index.html yang telah dibuat tadi.
# rm index.html
  1. Buat Projek Laravel.
# composer create-project --prefer-dist laravel/laravel .
  1. Set Permission chwon dan chmod pada folder dan file laravelnya.
# sudo chown -R www-data:www-data /var/www/namadomain.com
# sudo chmod -R 755 /var/www/namadomain.com/storage
  1. Edit file hosts.
# nano /etc/nginx/sites-available/namadomain.com

Ubah menjadi berikut:

server {
    listen 80;
    server_name namadomain.com;
    root /var/www/namadomain.com/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/php8.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}
  1. Cek Syntaks konfigurasi dengan perintah:
sudo nginx -t

Output yang diharapkan adalah sebagai berikut:

Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
  1. Reload service NGINX.
sudo systemctl reload nginx
  1. Tes Akses websitenya menggunakan url namadomain.com.
install laravel ubuntu 20.04

Sampai disini server Ubuntu dengan web server Nginx sudah siap digunakan untuk laravel. Langkah selanjutnya adalah upload laravel ke VPS Ubuntu yang telah Anda siapkan.

Step 4. Upload Laravel ke VPS Ubuntu

Berikut adalah cara upload file Laravel dari localhost ke server. Pastikan bahwa Anda telah membuat project laravel di localhost terlebih dahulu. Jika belum, pelajari panduan berikut untuk membuat project laravel di localhost.

Setelah itu, ikuti langkah berikut:

1. Upload project Laravel

Silakan upload semua file projek laravel Anda beserta databasenya ke Google Drive. Silakan di zip dahulu supaya tidak ada file yang tertinggal.

2. Kosongkan Directory /var/www/namadomain.com

Directory /var/www/namadomain.com adalah directory letak file laravel yang akan diupload di server. Sebelum upload file laravelnya disana, silakan hapus semua file dan folder di directory tersebut. Langkahnya Masuk ke directory /var/www/ dengan perintah.

cd /var/www/

Hapus namadomain.com Anda sebelumnya.

rm -rf namadomain.com

Buat folder nama domain Anda kembali.

mkdir namadomain.com

Masuk ke folder nama domain Anda.

cd /var/www/namadomain.com

Set permission dengan perintah:

sudo chown -R www-data:www-data /var/www/namadomain.com

3. Download File Laravel Anda

Masuk ke folder nama domain Anda.

cd /var/www/namadomain.com

Download file laravel dari Google Drive. Panduannya bisa dicek di link cara download file Google Drive ke hosting.

4. Lakukan Konfigurasi Laravel

Extract file laravel Anda.

unzip namafileAnda.zip

Pastikan file website Laravel berada tepat di dalam direktory /var/www/namadomain.com

Edit file .env kemudian sesuaikan konfig databasenya

nano .env

Sesuaikan nama database, user database, dan passwordnya sesuai yang telah dibuat pada langkah Membuat Database dan User Database.

5. Akses website Anda

Selamat sampai disini langkah upload file Laravel di Ubuntu 20.04 dengan web server Nginx sudah selesai diproses. Akses website Anda melalui browser.

hasil test upload laravel ke VPS Ubuntu

Sampai tahap ini, proses upload laravel ke VPS Ubuntu telah selesai. Selanjutnya, Anda bisa mengelola file project laravel Anda di VPS.

Demikian tadi panduan kami tentang cara upload Laravel ke VPS Ubuntu 20.04, semoga bermanfaat.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 0 / 5. Vote count: 0

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Pindah Hosting ke Rumahweb Gratis

Anggit TS

Selamat membaca, Semoga tulisan saya bermanfaat.
Bila ada salah kata, mohon maaf.

"tak ada gading yang tak retak, maafkan kesalahan keluarga Gajah". :D