[email protected] +62818-738-628

Langkah-Langkah Deploy Laravel di Almalinux Server

  • Admin
  • Linux

Laravel adalah salah satu framework PHP yang populer untuk pengembangan aplikasi web. Dalam artikel ini, kami akan membahas langkah-langkah untuk melakukan deployment Laravel di Almalinux Server. Kami akan memandu Anda melalui langkah-langkah dari awal hingga akhir, termasuk setup server, instalasi komponen yang diperlukan, dan konfigurasi server web. Mari kita mulai!

Langkah Pertama: Update dan Upgrade Server

Langkah pertama yang perlu Anda lakukan adalah memastikan server Anda diperbarui dengan versi terbaru dan paket yang diperlukan. Jalankan perintah berikut pada terminal :

sudo yum update
sudo yum upgrade
sudo dnf install epel-release
sudo dnf install neofetch

Langkah Kedua: Install Nginx

Setelah server Anda diperbarui, instal Nginx sebagai server web. Jalankan perintah berikut :

sudo yum install nginx
sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl status nginx

Langkah Ketiga: Install Firewall

Untuk meningkatkan keamanan server Anda, instal firewall dan konfigurasikan akses HTTP dan HTTPS. Gunakan perintah berikut :

sudo dnf install firewalld
sudo systemctl unmask firewalld
sudo systemctl start firewalld
sudo systemctl status firewalld
sudo firewall-cmd --zone=public --add-service=http
sudo firewall-cmd --zone=public --add-service=https
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload

Langkah Keempat: Setup DNS

Selanjutnya, atur DNS untuk mengarahkan domain Anda ke alamat IP server publik Anda. Tambahkan pengaturan DNS berikut :

Nama: @
Tipe: A
TTL: 14400
RDATA: IP publik VPS Anda

Langkah Kelima: Install PHP 8.0 RPM

Setelah mengatur DNS, instal PHP dan modul yang diperlukan. Pastikan Anda menginstal PHP versi 8.0. Jalankan perintah berikut :

sudo dnf update -y
sudo dnf install -y epel-release
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo dnf module install -y php:remi-8.0
php -v
sudo dnf install php-devel php-cli php-fpm php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imap php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml php-dom php-redis php-memcached php-memcache -y
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo systemctl status php-fpm
sudo firewall-cmd --list-all

Langkah Kedelapan: Install Composer

Composer adalah manajer paket PHP yang digunakan untuk mengelola dependensi proyek Laravel. Jalankan perintah berikut untuk menginstal Composer :

cd ~
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
HASH=`curl -sS https://composer.github.io/installer.sig`
echo $HASH
php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
composer

Langkah Kesembilan: Install MySQL

Laravel membutuhkan basis data untuk menyimpan informasi aplikasi. Install MySQL dan konfigurasikan pengguna dan aksesnya dengan perintah berikut :

sudo dnf install wget
sudo dnf install mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl status mysqld
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
exit
sudo mysql_secure_installation
mysql -u root -p
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, INDEX, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'username'@'localhost' WITH GRANT OPTION;
exit

Langkah Kesepuluh: Deploy Project

Sekarang saatnya untuk mendeploy proyek Laravel Anda ke server. Pastikan Anda telah mengunggah proyek ke repositori git. Jalankan perintah berikut :

sudo dnf install git -y
git clone url-git-project.git
sudo mv url-git-project /var/www/webapp
cd /var/www/webapp
sudo dnf install nano
sudo nano .env
sudo chmod -R ugo+rw storage
sudo chmod -R ugo+rw bootstrap/cache
composer install --optimize-autoloader --no-dev
php artisan config:cache
php artisan event:cache
php artisan route:cache
php artisan view:cache

Setelah itu, buat konfigurasi Nginx untuk proyek Laravel Anda dengan perintah berikut :

cd /etc/nginx/conf.d
sudo nano webapp.conf
server {
       listen 80;
       server_name example.com;
       root        /var/www/webapp/public;
       index       index.php;
       charset utf-8;
       gzip on;
       gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
       
       location / {
            try_files $uri $uri/ /index.php?$query_string;
       }

       location ~ \.php {
            include fastcgi.conf;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/run/php-fpm/www.sock;
       }
       
       location ~ /\.ht {
            deny all;
       }
}

Pastikan untuk mengganti example.com dengan nama domain Anda. Kemudian, lakukan pengecekan konfigurasi Nginx dengan perintah berikut :

sudo nginx -t

Jika tidak ada kesalahan, reload konfigurasi Nginx dengan perintah berikut :

sudo systemctl reload nginx

Langkah Kesebelas: Install Certbot dan Aktifkan SSL

Terakhir, kita akan menginstal Certbot untuk mengamankan situs web dengan SSL. Gunakan perintah berikut :

sudo dnf install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com

Pastikan untuk mengganti example.com dengan nama domain Anda.

sudo certbot renew --dry-run

sudo certbot renew --dry-run adalah perintah yang digunakan untuk memperbarui sertifikat SSL dengan Certbot dalam mode "dry-run". Mode "dry-run" digunakan untuk menguji pembaruan sertifikat tanpa benar-benar memperbarui atau memperpanjang sertifikat yang ada. Ini berguna untuk mengidentifikasi masalah potensial atau kesalahan konfigurasi sebelum Anda melakukan pembaruan sertifikat yang sebenarnya. Di bawah ini adalah penjelasan lebih rinci tentang perintah ini:

1. sudo : Ini adalah perintah yang digunakan untuk menjalankan perintah sebagai superuser atau dengan hak akses administratif. Anda perlu memiliki izin administratif untuk memperbarui sertifikat SSL.

2. certbot : Certbot adalah perangkat lunak yang digunakan untuk mengotomatisasi pengelolaan sertifikat SSL. Ini memungkinkan Anda untuk meminta, memperbarui, dan menginstal sertifikat SSL dengan mudah.

3. renew : Ini adalah sub-perintah Certbot yang digunakan untuk memperbarui sertifikat SSL yang sudah ada. Ketika Anda menjalankan perintah ini, Certbot akan memeriksa semua sertifikat SSL yang sudah ada dan mencoba memperbarui yang mana yang akan segera berakhir.

4. --dry-run : Opsi ini mengaktifkan mode "dry-run". Dalam mode ini, Certbot akan mencoba memperbarui sertifikat SSL, tetapi tidak akan mengubah sertifikat yang ada. Ini berguna untuk menguji apakah pembaruan akan berjalan dengan sukses atau jika ada masalah yang perlu diperbaiki sebelum pembaruan sebenarnya.

Jadi, ketika Anda menjalankan perintah `sudo certbot renew --dry-run`, Certbot akan mencoba memperbarui sertifikat SSL yang sudah ada dalam mode uji coba tanpa membuat perubahan aktual pada sertifikat. Hasil dari operasi ini akan memberikan informasi tentang apakah pembaruan berjalan lancar atau jika ada masalah yang perlu diatasi sebelum Anda menjalankan perintah untuk pembaruan sertifikat yang sebenarnya.

Sampai di sini, Anda telah berhasil mendeploy aplikasi Laravel di Almalinux Server. Sekarang situs web Anda dapat diakses melalui nama domain yang Anda atur. Selamat mencoba!