Kali ini, saya akan share pengalaman saya dalam hal Instalasi aplikasi dengan menggunakan Framework Laravel + Database PostgreSQL + Git + PHP 7.1 dengan Nginx di CentOS 7. Beberapa kondisi aplikasinya sebagai berikut:
  1. Aplikasi menggunakan Framework Laravel
  2. Database yang digunakan adalah PostgreSQL
  3. Menggunakan GitLab sebagai Source Control
  4. Web Server yang digunakan adalah Nginx
  5. PHP yang digunakan minimal versi 7.1

Daftar Isi: 

Step 1. Setup Yum-Repositories

Langkah pertama yang harus dilakukan adalah mengaktifkan REMI dan EPEL repositories di Linux Distribution supaya mendapatkan update packages terbaru.

sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
view rawsetup-yum.sh hosted with ❤ by GitHub


Step 2. Install Nginx & PHP

Selanjutnya install Nginx dengan Command berikut: 

sudo yum install nginx
Apabila Nginx sudah selesai ter-install, selanjutnya jalankan web server dan buat menjadi enable supaya berjalan pada saat system boot:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
Supaya kita dapat mengakses nginx dari jaringan public, kita perlu membuka port 80 dari system firewall supaya dapat menerima rikues dari luar. 

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd –reload
view rawopen-port.sh hosted with ❤ by GitHub
Langkah selanjutnya adalah install PHP v71:

sudo yum install yum-utils
sudo yum-config-manager --enable remi-php71
sudo yum install php php-fpm php-common php-xml php-mbstring php-json php-zip php-pgsql
Setelah itu, aktifkan service PHP-FPM dan check apakah service-nya sudah berjalan atau tidak:

sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo systemctl status php-fpm

Step 3. Install Git, Nano & Composer

Install Git, Nano, dan Driver PostgreSql dengan command dibawah:

sudo yum install git nano
Kemudian Install Composer (dependency manager untuk PHP) untuk meng-install dependencies yang diperlukan oleh aplikasi Laravel yang sudah dibuat:

sudo curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
Setelah Git dan Composer selesai di install, selanjutnya clone aplikasi dari GIT dan arahkan ke folder yang kita inginkan:

cd /usr/share/nginx/html
sudo git clone http://github.com/priawadi/project-laravel-postgresql.git laravel
view rawclone-git.sh hosted with ❤ by GitHub
Selanjutnya install semua dependencies menggunakan Composer:

sudo composer install


Step 4. Konfigurasi Laravel

Langkah selanjutnya adalah konfigurasi file .env Laravel. Karena default-nya sudah ada file .env.sample,  maka yang perlu kita lakukan adalah copy file tersebut dan ubah namanya menjadi .env  

cd laravel
sudo cp .env.sample .env
sudo nano .env
view rawkonfig-env.sh hosted with ❤ by GitHub
Ubah dan sesuaikan konfigurasi .env seperti dibawah:

DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=project-laravel
DB_USERNAME=postgres
DB_PASSWORD=priawadi
view rawkonfig-db.env hosted with ❤ by GitHub
Setelah selesai, generate key Laravel dengan command:

sudo php artisan key:generate
Ubah permission untuk directory storage dan bootstrap/cache aplikasi Laravel:

sudo chgrp -R nginx storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache


Step 5. Konfigurasi Nginx Server

Langkah selanjutnya adalah konfigurasi Nginx Server untuk mengakses aplikasi yang sudah kita buat. Yang kita lakukan adalah cukup mengedit file konfigurasi default nginx, dan mengubahnya sesuai keperluan:

Keterangan:
root: Ubah ke folder public aplikasi
fastcgi_pass: Ada 2 kondisi (Apabila di dalam folder /var/run/php-fpm/ ada file phpfpm.sock maka yang digunakan adalah fastcgi_pass unix:/var/run/php-fpm/phpfpm.sock. Apabila di dalam folder tersebut hanya ada file php-fpm.pid maka kita bisa menggunakan fastcgi_pass 127.0.0.1:9000)

server {
listen 80 default_server;
server_name _;
root /usr/share/nginx/html/laravel/public;
index index.php;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php {
include fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
}
location ~ /\.ht {
deny all;
}
}
view rawnginx.conf hosted with ❤ by GitHub
Kemudian Restart Nginx dan PHP-FPM dengan menggunakan command:

sudo systemctl restart nginx php-fpm
SELESAI. Sekarang tinggal cek apakah aplikasi sudah dapat diakses dengan mengetikkan IP Server di browser.