<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: nozamidotid</title>
    <description>The latest articles on DEV Community by nozamidotid (@nozamidotid).</description>
    <link>https://dev.to/nozamidotid</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1067808%2Fc4452592-dcec-434e-8a15-6922a546f57c.png</url>
      <title>DEV Community: nozamidotid</title>
      <link>https://dev.to/nozamidotid</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nozamidotid"/>
    <language>en</language>
    <item>
      <title>Cara Menjalankan/Deploy Laravel dengan Menggunakan Laravel Sail</title>
      <dc:creator>nozamidotid</dc:creator>
      <pubDate>Sun, 07 May 2023 14:24:07 +0000</pubDate>
      <link>https://dev.to/nozamidotid/cara-menjalankandeploy-laravel-dengan-menggunakan-laravel-sail-5djn</link>
      <guid>https://dev.to/nozamidotid/cara-menjalankandeploy-laravel-dengan-menggunakan-laravel-sail-5djn</guid>
      <description>&lt;p&gt;Hari ini saya belajar cara menjalankan/Deploy Laravel dengan menggunakan laravel sail. Cara deploy atau running ini menggunakan metode container (docker). Jadi membutuhkan pengetahuan tentang docker walaupun sedikit. Oke langsung saja kita praktek.&lt;/p&gt;

&lt;p&gt;Pertama pastikan anda telah mengaktifkan WSL 2 pada windows dan menginstall docker untuk instalasi docker di WSL bisa ikuti catatan saya tentang Cara Install WSL 2, Ubuntu dan Docker di WSL 2 Windows 11/10 tanpa Docker Desktop. Apabila memakai mac atau linux tinggal install docker saja.&lt;/p&gt;

&lt;p&gt;Pada kali ini saya akan mendeploy Laravel dari hasil saya mengikuti tutorial yutubnya parsinta bisa dilihat disini. Langsung saja kita buka terminal ubuntu kita lalu kita clone dari repo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone git@github.com:nozamidotid/networking.git
cd networking
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MBAxf7YX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2AqhlbRZpjjMaA1womYuscJw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MBAxf7YX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2AqhlbRZpjjMaA1womYuscJw.png" alt="Ubuntu" width="800" height="753"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;setelah itu kita lakukan instalasi package package bisa menggunakan composer install jika sudah menginstall composer di WSL. Namun saya akan menggunakan docker intul melakukan composer install ini dengan perintah (pilih salah satu)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;composer install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;atau menggunakan docker&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v "$(pwd):/var/www/html" \
    -w /var/www/html \
    laravelsail/php82-composer:latest \
    composer install --ignore-platform-reqs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Jika anda belum pernah menambahkan laravel sail, anda perlu menambahkannya dengan perintah&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;composer require laravel/sail --dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;atau menggunakan docker dengan perintah&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v "$(pwd):/var/www/html" \
    -w /var/www/html \
    laravelsail/php82-composer:latest \
    composer require laravel/sail --dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;setelah itu install sail dengan perintah&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php artisan sail:install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;atau&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run --rm -it \
    -u "$(id -u):$(id -g)" \
    -v "$(pwd):/var/www/html" \
    -w /var/www/html \
    laravelsail/php82-composer:latest \
    php artisan sail:install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;setelah itu pilih database yang akan anda gunakan dengan memilih angka 0 sampai 9. Dalam hal ini saya menggunakan postgresql jadi sayang ketikkan angka 1.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gA2mxM4---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2AR3Q9PoWA-6e9c9NAYexGvg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gA2mxM4---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2AR3Q9PoWA-6e9c9NAYexGvg.png" alt="Sail Install" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Setelah berhasil akan muncul file yang bernama docker-compose.yml&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M4lT2U7Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2ABCQkR5XpTZ2yBby-QopZYA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M4lT2U7Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2ABCQkR5XpTZ2yBby-QopZYA.png" alt="docker compose" width="800" height="91"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sekarang kita tinggal menjalankan aplikasi kita dengan perintah&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./vendor/bin/sail up
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;atau dengan menambahkan flag -d agar berjalan dalam background&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./vendor/bin/sail up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pada proses ini anda akan menunggu agak lama. Karena proses ini menginstall banyak environtmen yang dibutuhkan untuk menjalankan aplikasi laravel.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ETET1K0p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2ADq4OJu0CXTISvQJitpJfaw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ETET1K0p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2ADq4OJu0CXTISvQJitpJfaw.png" alt="laravel sail" width="800" height="430"&gt;&lt;/a&gt;&lt;br&gt;
Secara default aplikasi laravel akan berjalan di port 80. Jika anda akan meng assign ke port yang lain anda bisa menambakan APP_PORT di .env anda.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JRfqczmL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2AEI7kic3c6E7SEnbkSFTcNA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JRfqczmL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2AEI7kic3c6E7SEnbkSFTcNA.png" alt="Laravel Sail" width="800" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Demikian sharing saya tentang Cara Menjalankan/Deploy Laravel dengan Menggunakan Laravel Sail. Semoga bermanfaat.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Cara Upgrade Laravel 8 menjadi Laravel 10</title>
      <dc:creator>nozamidotid</dc:creator>
      <pubDate>Fri, 28 Apr 2023 10:15:13 +0000</pubDate>
      <link>https://dev.to/nozamidotid/cara-upgrade-laravel-8-menjadi-laravel-10-3d0h</link>
      <guid>https://dev.to/nozamidotid/cara-upgrade-laravel-8-menjadi-laravel-10-3d0h</guid>
      <description>&lt;p&gt;Berangkat dari pengalamanku yang mau install laravel 10, tapi karena aku menggunakan php 7.4 maka yang terinstall adalah Laravel 8. Trus saya googling sana sini untuk upgrade laravel 8 ke Laravel 10. Ternyata caranya cukup mudah.&lt;/p&gt;

&lt;p&gt;Pertama langsung saja masuk ke applikasi laravel 8 kita, dalam hal ini aku menggunakan app dari repoku yang salah install itu.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/nozamidotid/laravel-10.git
cd laravel-10
composer install
cp .env.example .env
php artisan key:generate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Selanjutnya edit file .env sesuai dengan database yang digunakan dan pastikan apps Laravel 8 nya berjalan dengan normal. Untuk mengecek versi framework Laravelnya bisa gunakan perintah&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php artisan -V
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PfYCa4IK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2ANYTcJoxykIzXwp_Y2OVlig.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PfYCa4IK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2ANYTcJoxykIzXwp_Y2OVlig.png" alt="laravel version" width="800" height="44"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Setelah kita pastikan apps berjalan dengan normal, selanjutnya kita buka dokumentasi laravel untuk upgrade versi laravelnya. Lansung saja menuju ke &lt;a href="https://laravel.com/docs/10.x/upgrade#main-content"&gt;link ini&lt;/a&gt; untuk melihat dokumentasi upgrade laravel 10.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--750vdM4C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2A4hID6ikJ6C2u-4BMeaMpHA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--750vdM4C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2A4hID6ikJ6C2u-4BMeaMpHA.png" alt="Dokumentasi Laravel" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;selanjutnya cek versi PHP dan composer yang digunakan di lokal. Karena Laravel 10 ini mengharuskan menggunakan minimal php 8.1.0 dan composer 2.2.0&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php -v
composer --version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MFu2o0Gj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2ALxChUPsJM8FyymkY0nWl-g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MFu2o0Gj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2ALxChUPsJM8FyymkY0nWl-g.png" alt="Composer Vesion" width="800" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;selanjutnya kita edit file composer.json nya sesuai dengan panduan dari dokumentasi laravelnya.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NMeTuao2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2A2rW5qg-8ESZUakUOZtjVrQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NMeTuao2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2A2rW5qg-8ESZUakUOZtjVrQ.png" alt="Upgrade Laravel Documentation" width="800" height="764"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;bagian laravel frameworknya jadi 10.0 dan seterusnya. Ada satu hal yang menjadi catatan yaitu pada laravel 8 ignitionya menggunakan facade/ignition namun pada laravel 10 ini menggunakan spatie/laravel-ignition dan untuk handling corsnya sudah tidak menggunakan fruitcake/laravel-cors. Jadi dua dependencies itu bisa diremove. Dan untuk setting handling cors perlu disesuaikan pada file app/Http/Kernel.php&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ganti \Fruitcake\Cors\HandleCors::class,
dengan \Illuminate\Http\Middleware\HandleCors::class,
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dan pada app saya ini menggunakan dependencies tambahan yaitu laravel breeze jadi pada laravel breeze juga perlu diupdate menggunakan versi yang support laravel 10, dalam hal ini saya menggunakan versi 1.20.2.&lt;/p&gt;

&lt;p&gt;Satu lagi pada minimum-stability di composer.json dirubah menjadi stable atau bisa dihapus juga minimun-stability nya.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7reby41I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2ASLpRDdCBTuAit7IOvXvtjA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7reby41I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2ASLpRDdCBTuAit7IOvXvtjA.png" alt="minimum stability Laravel" width="800" height="275"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;proses selanjutnya yaitu jalankan perintah composer update dan tunggu prosesnya selesai. Akhirnya apps laravel 8 telah terupgrade menjadi laravel 10. Bisa di cek lagi dengan menjalankan perintah php artisan -V.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;composer update
php artisan -V
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I7r-PBe0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2A1gSJ8A2A6PwiaCFPqNYmKQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I7r-PBe0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:828/format:webp/1%2A1gSJ8A2A6PwiaCFPqNYmKQ.png" alt="Laravel 10" width="800" height="58"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Cara Deploy Aplikasi Laravel ke VPS Ubuntu (EC2 AWS)</title>
      <dc:creator>nozamidotid</dc:creator>
      <pubDate>Sun, 23 Apr 2023 16:42:21 +0000</pubDate>
      <link>https://dev.to/nozamidotid/cara-deploy-aplikasi-laravel-ke-vps-ubuntu-ec2-aws-53a0</link>
      <guid>https://dev.to/nozamidotid/cara-deploy-aplikasi-laravel-ke-vps-ubuntu-ec2-aws-53a0</guid>
      <description>&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=tEKwtzOuNQs"&gt;&lt;strong&gt;Cara Deploy Laravel, nginx, mysql ke VPS full dengan SSL Domain&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mendeploy app ke VPS merupakan suatu pekerjaan yang susah-susah mudah. Apalagi kalau kita kurang familiar dengan linux, mendeply aplikasi ke VPS merupakan suatu pekerjaan yang menakutkan (curhat). Maka dari itu aku mendokumentasikan apa yang telah ku pelajari dalam mendeploy app ke VPS. Dalam hal ini aku mendeploy aplikasi laravel ke VPS EC2 AWS.&lt;/p&gt;

&lt;p&gt;Hal pertama yang harus kita lakukan adalah masuk ke dalam ssh vps kita dengan perintah&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh user@host.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Setelah masuk lakukan update vps ubuntu kita dengan mengetikkan perintah&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Install Web Server (Nginx)
Setelah update selesai kita lanjutkan dengan install webserver. Dalam hal ini aku menggunakan nginx. Nginx selain bisa menjadi web server,bisa juga berfungsi menjadi load balancer, reverse proxy dan reverse email. Untuk install nginx ini cukup mudah yaitu dengan menjalankan perintah
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install nginx -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0pzQYvFl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p6opywzc9kli1y40bwju.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0pzQYvFl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p6opywzc9kli1y40bwju.png" alt="nginx" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;flag -y merupakan opsi untuk menjawab yes pada pertanyaan ketika instalasi. Setelah instalasi selesai kita bisa mengecek dengan mengetikkan IP public kita di browser maka akan muncul halaman nginx. Selain itu kita juga bisa melihat status nginx dengan perintah&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl status nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Install PHP
Selanjutnya kita harus menginstall php pada vps kita. Dalam hal ini aku menginstall php versi 8.2. Berikut adalah perintah perintah yang perlu dijalankan.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php
sudo apt install php8.2-fpm php8.2-common php8.2-dom php8.2-intl 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-soap php8.2-zip php8.2-bcmath -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Setelah dirun semua untuk memastikan php telah terinstall, anda bisa jalankan perintah&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl status php8.2-fpm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yP9dY5u9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dn8nkb9tatskbp6bl31g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yP9dY5u9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dn8nkb9tatskbp6bl31g.png" alt="php fpm" width="800" height="242"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Untuk keluar tekan ctrl + c.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install MYSQL
Selanjutnya kita install database management system dalam hal ini kita menggunakan mysql. Langsung saja
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install mysql-server -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Seperti biasa check apakah mysql sudah berjalan atau belum dengan perintah&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl status mysql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Selanjutnya akses mysql dan buat database yang akan digunakan untuk aplikasi laravel. Pada defaultnya user root tidak mempunyai password.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo mysql -u root
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Buat database dan user password untuk aplikasi laravel kita&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE DATABASE laravel;
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'adminspassword';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost';
FLUSH PRIVILEGES;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Install Composer
Selanjutnya install composer untuk mendukung aplikasi laravel kita dengan perintah
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install composer -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Jbah1aoQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mzgxv04jofn15peft4dz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Jbah1aoQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mzgxv04jofn15peft4dz.png" alt="composer version" width="719" height="73"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;untuk mengecek version composer silahkan jalankan command&lt;/p&gt;

&lt;p&gt;composer — version&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Deploy Laravel ke VPS
Nah lengkap sudah persiapan deploy kita, sekarang tinggal up web app laravel kita. Langsung saja clone project anda dari repository anda ke VPS anda. Oh iya pastikan anda masuk ke /var/www/html untuk lokasi clone laravelnya. Setelah itu jalankan
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo composer install
sudo cp .env.example .env
sudo nano .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Edit .env anda dengan menggunakan nano&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IHMaqrKi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9u7eqak45j8qc6jb6ez0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IHMaqrKi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9u7eqak45j8qc6jb6ez0.png" alt=".env example" width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Setelah itu jalankan migrate dan key:generate&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo php artisan migrate
sudo php artisan key:generate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;selanjutnya yaitu setting configurasi nginx&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /etc/nginx/sites-available/laravel
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;server {
    listen 80;
    listen [::]:80;
    server_name 13.229.120.244;
    root /var/www/html/laravel-10/public;

    add_header X-Frame-Options "SAMEORIGIN";
    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/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Setelah itu buat sym link ke /etc/nginx/sites-enabled dan restart nginx&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/
sudo systemctl restart nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;refresh halaman public ip kita dan kita akan mendapatkan error seperti berikut.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DHLl7Wrw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qqwh7if6tzc0fnhlyaiq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DHLl7Wrw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qqwh7if6tzc0fnhlyaiq.png" alt="public IP" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;setelah itu ubah mode untuk folder public storage dan bootstrap dengan cara&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo chmod -R 777 public/ storage/ bootstrap/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;lalu refresh lagi halaman tersebut dan kita akan mendapatkan halaman aplikasi laravel kita&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TLf-NoJs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ccd3eetqf2zgpss2qybq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TLf-NoJs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ccd3eetqf2zgpss2qybq.png" alt="web app laravel" width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;dan app laravel pun berhasil di deploy di vps&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Setting Domain
Selanjutnya yaitu kita assign IP public kita ke sebuah domain. Dalam hal ini kita gunakan domain gratisan fitur dari dcdg.xyz. Caranya cukup mudah kita tinggal assign mengguanakn command line (cli) saja.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -X POST -H "Content-type: application/json" -d "{ \"ip\": \"&amp;lt;public IP VPS&amp;gt;\" }" "https://sub.dcdg.xyz/dns/records"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rm3e66rE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z0ftx4n21ctfe7qmchmx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rm3e66rE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z0ftx4n21ctfe7qmchmx.png" alt="domain" width="800" height="65"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;setelah berhasil kita akan mendapatkan response json yang berisi nama domain kita dan IP.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "status":"success",
  "message":"Record berhasil dibuat. Bila hostname belum bisa digunakan tunggu 1 jam untuk proses propagate.",
  "data":
        {
          "addedDNS":
                    [{
                      "hostname":"upset-worlds-stare-truly.a276.dcdg.xyz",
                      "ip":"13.212.27.100"
                    },
                    {
                      "hostname":"www.upset-worlds-stare-truly.a276.dcdg.xyz",
                      "ip":"13.212.27.100"
                    }]
        }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Selanjutnya kita adjust lagi untuk configurasi nginx nya. Pada bagian servername nya kita rubah dengan nama domain hasil dari generate tadi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /etc/nginx/sites-available/laravel
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gvq66orA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sq60w1r73xwk44r1b3mw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gvq66orA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sq60w1r73xwk44r1b3mw.png" alt="laravel nginx config" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kemudian akses alamat domain tersebut dan hasilnya akan sama seperti kita mengakses IP public sebelumnya.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qIHuzyTU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9bt2hpo7sbrgliskgsbp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qIHuzyTU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9bt2hpo7sbrgliskgsbp.png" alt="nginx config" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Enkripsi Domain (SSL) dengan Let’s Encrypt
Kita sudah bisa mengakses web app via subdomain gratisan dari dcdg.xyz, namun masih ada tanda not secure yang berarti domain tersebut belum terenkripsi. Nah kita akan gunakan fitur enkripsi (SSL) gratisan dari let’s encrypt. Langsung saja kita eksekusi perintah perintahnya.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get install python3-certbot-nginx -y
sudo certbot --nginx -d &amp;lt;yourdomain.com&amp;gt; -d &amp;lt;www.yourdomain.com&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Catatan: Ganti  dan  dengan subdomain yang Anda miliki. Pada pertanyaan terbut jawan saja yes semua dan isi dengan nama email anda pada pertanyaan email.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IdFbjfLg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/inrpnbzojlwwx16788h1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IdFbjfLg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/inrpnbzojlwwx16788h1.png" alt="SSL let's encrypt" width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;penampakan setelah berhasil enkripsi&lt;br&gt;
Setelah itu refresh halaman web anda maka yang sebelumnya not secure akan menjadi secure dengan ditandai gambar gembok. Selamat domain anda telah terenkripsi via let’s encrypt. Perlu diingat enkripsi ini berlaku untuk 3 bulan jadi setelah 3 bulan anda harus me renewal lagi. Kalau mau auto renewat anda bisa menggunakan cron.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--At7i9uOq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aq1mm8cdqghq2tktjw43.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--At7i9uOq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aq1mm8cdqghq2tktjw43.png" alt="laravel web" width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;akhir aplikasi laravel kita sudah terenkripsi.&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>deployment</category>
      <category>webdev</category>
      <category>ubuntu</category>
    </item>
  </channel>
</rss>
