Laravel merupakan salah satu framework php yang paling banyak digunakan oleh developer saat ini. Ada banyak sekali fitur yang dimiliki oleh framework ini yang dapat mempermudah pekerjaan developer dalam membuat suatu website. Tutorial kali ini akan membahas, Cara Instalasi Laravel pada Layanan Server Private Cloud dengan menggunakan OS Ubuntu 20.04 dengan webserver menggunakan nginx.

Requirements

  1. Instance server Ubuntu 20.04 yang terupdate dengan minimal 1 vCPU dan RAM 2 GB
  2. Pengguna sudo non-root

 

Cara Instalasi VM Pada Layanan Server Private Cloud dengan menggunakan OS Ubuntu 20.04

  1. Login ke dashboard Layanan Server Private Cloud di console.idcloudhost.com
  2. Create virtual machine pada layanan Server Private Cloud


  3. Pilih OS, paket, username, password dan hostname sesuai dengan kebutuhan Anda.


  4. Proses instalasi VM


  5. Login ke vm anda terlebih dahulu IP dan password sesuai dengan yang sudah dibuat sebelumnya.


 

Instalasi Syarat-syarat Komponen Laravel pada Layanan Server Private Cloud

  1. Instal perangkat lunak dan dependensi

    $ sudo apt install -y php-mbstring php-xml php-fpm php-zip php-common php-fpm php-cli unzip curl nginx


  2. Instal Composer:

    $ sudo curl -s https://getcomposer.org/installer | php


    $ sudo mv composer.phar /usr/local/bin/composer

  3. Verify the Composer installation.

    $ composer diagnose


  4. Install MariaDB.

    $ sudo apt install -y mariadb-client mariadb-server


  5. Start MariaDB.

    $ sudo systemctl enable –now mariadb.service

  6. The root password is blank for a newly installed MariaDB server. Configure the MariaDB security by answering these questions appropriately for your server.

    $ sudo mysql_secure_installation


 

Cara Install Laravel

Ganti example dengan nama project Anda yang ada di panduan ini.

  1. Buat sebuah project Laravel dengan Composer.

    $ cd /var/www/html
    $ sudo composer global require laravel/installer
    $ sudo composer create-project –prefer-dist laravel/laravel example



  2. Berikan permission non-root user access yang sudah kita buat/tentukan dalam hal ini, usernya adalah example

    $ sudo chmod -R 755 /var/www/html/example
    $ sudo chown -R example:example /var/www/html/example

  3. Install the example project.

    $ cd example
    $ composer install


  4. Test the Laravel application manually in the /var/www/html/example folder. Replace the example IP address with your server’s IP.

    $ cd /var/www/html/example
    $ php artisan serve –host=0.0.0.0 –port=8080

    To access this example: http://103.214.113.66:8080/


    Ketik CTRL+C pada session di SSH Anda untuk menonaktifkan aplikasi Laravel.

  5. Berikut tampilan dari browser setelah diaktifkan Laravel


 

Konfigurasi Nginx

Berikut langkah konfigurasi nginx untuk produksi:

  1. Setting file permission. Ganti example sesuai dengan project Laravel project Anda.

    $ sudo chmod -R 755 /var/www/html/example
    $ sudo chown -R www-data:www-data /var/www/html/example

  2. Buat file konfigurasi Nginx.

    $ sudo nano /etc/nginx/sites-available/example

  3. Tempelkan contoh konfigurasi berikut
    • Ganti server_name example.com; menggunakan domain atau IP dari server. Anda juga dapat menggunakan underscore untuk wildcard, contohnya: server_name _;
    • Ganti /var/www/html/example/public sesuai dengan nama project.

    Jika melakukan instalasi menggunakan versi PHP yang berbeda, ubah /var/run/php/php7.4-fpm.sock sesuai dengan kebutuhan. Anda juga melakukan pengecekan di in /var/run/php/.

    server {
    listen 80;
    server_name example.com;
    root /var/www/html/example/public;

    add_header X-Frame-Options “SAMEORIGIN”;
    add_header X-XSS-Protection “1; mode=block”;
    add_header X-Content-Type-Options “nosniff”;

    index 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.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
    deny all;
    }
    }

  4. Aktifkan konfigurasi pada Nginx.

    $ sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/

  5. 5. Hapus default konfigurasi pada nginx server..

    $ sudo rm /etc/nginx/sites-enabled/default

  6. Restart Nginx.

    $ sudo systemctl restart nginx

  7. Test aplikasi Laravel Anda.


 

Konfigurasi MariaDB

  1. Login pada root MariaDB.

    # mysql -p -u root

  2. Buat database dengan nama laravelexample.

    MariaDB [(none)]> CREATE DATABASE `laravelexample` CHARACTER SET utf8 COLLATE utf8_general_ci;

  3. Buat database user.

    MariaDB [(none)]> CREATE USER ‘laravelexampleuser’@’%’ IDENTIFIED BY ‘password’;

  4. Beri hak akses pada database.

    MariaDB [(none)]> use laravelexample;
    MariaDB [laravelexample]> GRANT ALL ON `laravelexample.*` TO ‘laravelexampleuser’@’%’;
    MariaDB [laravelexample]> FLUSH PRIVILEGES;
    MariaDB [laravelexample]> EXIT;

  5. Ubah konfigurasi aplikasi Laravel application .env.

    $ sudo nano /var/www/html/example/.env

  6. Setting database variable dari koneksi.

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=laravelexample
    DB_USERNAME=laravelexampleuser
    DB_PASSWORD=password

  7. Simpan dan kluar dari file tersebut.