Khmer Coders
KhmerCoders

របៀប deploy Laravel project នៅលើ Vercel ជាមួយ Database D1 ដោយមិនអស់ប្រាក់១សេន 🚀

0 Comments
របៀប deploy Laravel project នៅលើ Vercel ជាមួយ Database D1 ដោយមិនអស់ប្រាក់១សេន 🚀

Deploy Laravel Project ដោយមិនអស់ប្រាក់១សេន 🚀

ចង់ Deploy Laravel project របស់អ្នកឲ្យអ្នកផ្សេងឃើញអត់? តោះខ្ញុំមកប្រាប់អំពីរបៀប Deploy Project ដោយមិនអស់លុយ១សេន ហាសហាៗៗៗ

ដំបូងយើងត្រូវភ្ជាប់ Project របស់យើងទៅក្នុង Github

បន្ទាប់មកបង្កើតឯកសារទាំងនេះ:

1. បង្កើត file api/index.php

<?php require __DIR__ . "/../public/index.php";

2. បង្កើត file .vercelignore

/vendor

3. បង្កើត file vercel.json

{ "version": 2, "framework": null, "functions": { "api/index.php": { "runtime": "vercel-php@0.7.3" } }, "routes": [ { "src": "/build/(.*)", "dest": "/build/$1" }, { "src": "/(.*\\.(?:css|js|png|jpg|jpeg|gif|svg|ico|ttf|woff|woff2|eot|otf|webp|avif|txt))$", "dest": "/public/$1" }, { "src": "/(.*)", "dest": "/api/index.php" } ], "outputDirectory": "public", "env": { "APP_ENV": "production", "APP_DEBUG": "true", "APP_URL": "https://ah-toch-store-laravel.vercel.app", "APP_KEY": "base64:SB9NTkLD4xlbWsqishQ/ctmaOc0iT6pLEuzeaMpANPM=", "APP_CONFIG_CACHE": "/tmp/config.php", "APP_EVENTS_CACHE": "/tmp/events.php", "APP_PACKAGES_CACHE": "/tmp/packages.php", "APP_ROUTES_CACHE": "/tmp/routes.php", "APP_SERVICES_CACHE": "/tmp/services.php", "VIEW_COMPILED_PATH": "/tmp", "CACHE_DRIVER": "array", "LOG_CHANNEL": "stderr", "SESSION_DRIVER": "cookie", "DB_CONNECTION": "d1", "CLOUDFLARE_D1_DATABASE_ID": "your-database-id", "CLOUDFLARE_TOKEN": "your-cloudflare-token", "CLOUDFLARE_ACCOUNT_ID": "your-account-id" } }

បន្ទាប់មកយើងចូលទៅកាន់ https://vercel.com/ ដើម្បីធ្វើការចុះឈ្មោះ

បន្ទាប់ពីចុះឈ្មោះហើយៗ យើងចូលទៅកាន់ Dashboard ហើយចុះ Add new... -> Project -> Import Git Repository -> Framework Preset -> Other

បង្កើត Database

1. Install package

composer require ntanduy/cloudflare-d1-database

2. បន្ថែមនៅក្នុង config/database.php

'd1' => [ 'driver' => 'd1', 'prefix' => '', 'database' => env('CLOUDFLARE_D1_DATABASE_ID', ''), 'api' => 'https://api.cloudflare.com/client/v4', 'auth' => [ 'token' => env('CLOUDFLARE_TOKEN', ''), 'account_id' => env('CLOUDFLARE_ACCOUNT_ID', ''), ], ],

3. បង្កើត D1 database

npx wrangler d1 create ah-toch-store1

Config .env file

បង្កើត .env file សម្រាប់ local development:

APP_NAME=Laravel APP_ENV=local APP_KEY=base64:SB9NTkLD4xlbWsqishQ/ctmaOc0iT6pLEuzeaMpANPM= APP_DEBUG=true APP_URL=http://localhost:8000 DB_CONNECTION=d1 CLOUDFLARE_D1_DATABASE_ID=your-database-id CLOUDFLARE_TOKEN=your-cloudflare-token CLOUDFLARE_ACCOUNT_ID=your-account-id BROADCAST_DRIVER=log CACHE_DRIVER=array FILESYSTEM_DISK=local QUEUE_CONNECTION=sync SESSION_DRIVER=cookie SESSION_LIFETIME=120

Config .env នៅលើ Vercel:

ចូលទៅកាន់ Vercel Dashboard -> Your Project -> Settings -> Environment Variables បន្ថែម variables ទាំងនេះ:

APP_ENV=production
APP_DEBUG=false
APP_URL=https://your-project-name.vercel.app
APP_KEY=base64:SB9NTkLD4xlbWsqishQ/ctmaOc0iT6pLEuzeaMpANPM=
DB_CONNECTION=d1
CLOUDFLARE_D1_DATABASE_ID=your-database-id
CLOUDFLARE_TOKEN=your-cloudflare-token
CLOUDFLARE_ACCOUNT_ID=your-account-id

Run Migration

បន្ទាប់ពី config រួចហើយ អ្នកអាចរត់ migration:

php artisan migrate

ចំណាំ៖ វិធីសាស្រ្តនេះមិនអាចប្រើជាមួយ laravel version 12 បានទេ current working version is : laravel 11.x

ហេតុអ្វីត្រូវ config .env ទាំង local និង Vercel ដូចគ្នា? ពីព្រោះយើងចង់ឲ្យ database connection ដូចគ្នាទាំងពីរ environment ដើម្បីងាយស្រួលក្នុងការ develop និង deploy!

រួចហើយ! ឥឡូវ project របស់អ្នកអាច deploy បាន free 100% ហើយ! 🎉

Github Repo: https://github.com/beysach/laravel-react-starter-kit-deploy

Preview Demo: https://laravel-react-starter-kit-deploy.vercel.app

Video Deploy Below: https://www.facebook.com/share/v/15oSQC7ZFw/