Repository ini digunakan untuk mengimplementasikan tahap deployment dengan menggunakan nginx web server pada repository https://github.com/Caknoooo/ams-laravel-mvc
Karena kita akan melakukan deployment pada repository https://github.com/Caknoooo/ams-laravel-mvc dibutuhkan beberapa persiapan sebagai berikut
- PHP >= 8.0
- PHP-FPM >= 8.0
- MySQL or MariaDB >= Ver 15.1 Distrib 10.6.12-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
- Composer >= 2.4
Linux: Sistem operasi terbuka yang paling diterima oleh pengembang selama bertahun-bertahun. Ini akan menjadi OS yang mendukung aplikasi web kita.
Nginx: Aplikasi proksi yang memiliki resources yang kecil dibandingkan dengan apache. Memgunkinkannya menangani beban permintaan HTTP yang lebih tinggi. Ini akan membantu kami menangani perutean kami (permintaan/tanggap)
PHP / MySQL: Bahasa pemrograman dan program penyimpanan default di belakang laravel.
Berikut merupakan hal-hal yang akan kita siapkan untuk melakukan deployment
sudo apt-get update
sudo apt-get wget -y
sudo apt-get install git -y
sudo apt-get install nginx -y
sudo apt-get install mariadb-server -yapt-get install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2
curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt-get install php8.1-mbstring php8.1-xml php8.1-cli php8.1-common php8.1-intl php8.1-opcache php8.1-readline php8.1-mysql php8.1-fpm php8.1-curl -yLalu jalankan PHP-FPM, Nginx, MySQL
service nginx start
service php8.1-fpm start
service mysql startCek Version
php -v
composer --version
mariadb --versionCek firewall atau biasa disebut ufw dengan menjalankan perintah
ufw app listSetelah itu jalankan perintah berikut
ufw allow 'Nginx HTTP'
ufw allow 'Nginx HTTPS'
ufw allow 'Nginx Full'Setelah itu kita fokus pada MySQL terlebih dahulu dengan menjalankan perintah berikut
mysql -u root -p
CREATE USER 'testing'@'%' IDENTIFIED BY 'testing';
CREATE USER 'testing'@'localhost' IDENTIFIED BY 'testing';
CREATE DATABASE testing;
GRANT ALL PRIVILEGES ON *.* TO 'testing'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'testing'@'localhost';
FLUSH PRIVILEGES;Jika ingin melakukan testing, maka jalankan perintah berikut
mysql -u testing -p
#enter your password: testingJalankan perintah Berikut
cd /var/www && git clone https://github.com/Caknoooo/ams-laravel-mvc
cd /var/www/ams-laravel-mvc && cp .env.example .envSetelah itu buka folder ams-laravel-mvc, lalu buka file .env. Ubah konfigurasi .env tersebut menjadi berikut
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=testing
DB_USERNAME=testing
DB_PASSWORD=testing
Setelah itu jalankan beberapa perintah berikut untuk melakukan beberapa konfigurasi dan melakukan install dependencies
cd /var/www/ams-laravel-mvc && composer install
cd /var/www/ams-laravel-mvc && php artisan key:generate
cd /var/www/ams-laravel-mvc && php artisan migrate
cd /var/www/ams-laravel-mvc && php artisan db:seedSekarang kita melakukan setup web-server yang menggunakan nginx dengan menjalankan perintah berikut
cd /etc/nginx/sites-available && rm default
echo 'server {
listen 80;
root /var/www/ams-laravel-mvc/public;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}' > /etc/nginx/sites-available/ams-laravel-mvc
ln -s /etc/nginx/sites-available/ams-laravel-mvc /etc/nginx/sites-enabled/ams-laravel-mvcSetelah itu lakukan restart pada nginx dengan perintah Berikut
service nginx restart
