Làm Thế Nào Để Triển Khai Dự Án Laravel Trên Heroku
Trong hướng dẫn nhỏ này, tôi sẽ hướng dẫn bạn cách deploy Laravel application lên Heroku. Nền tảng ứng dụng đám mây Heroku (PaaS) cho phép các nhà phát triển chạy, xây dựng và vận hành các ứng dụng hoàn toàn trên cloud
Heroku là nhà cung cấp PaaS (Platform as a Service) công khai, giúp dễ dàng triển khai các ứng dụng được viết bằng cách sử dụng một số ngăn xếp công nghệ miễn phí. Các nhà phát triển ứng dụng trên toàn cầu sử dụng các dịch vụ giống Heroku để thực hiện và kiểm tra các ứng dụng của họ từ xa mà không cần bất kì khoản thanh toán nào. Chúng ta có thẻ tạm coi heroku là một vps hoàn toàn miễn phí
Bước 1: Cài đặt Heroku CLI.
Bạn có thể tải xuống từ liên kết này tùy thuộc vào hệ điều hành của bạn. Tôi đang sử dụng Ubuntu, vì vậy tôi đang cài đặt qua snap .
$ sudo snap install --classic heroku
Sau đó, xác minh nó bằng lệnh sau.
heroku --version
Bạn sẽ nhận được một cái gì đó như thế này tùy thuộc vào phiên bản Node.js của bạn
Bước 2: Cài đặt ứng dụng Laravel.
Mở terminal của bạn và cài đặt nó bằng lệnh sau.
$ composer create-project laravel/laravel herokularavel --prefer-dist
Nó sẽ cài đặt project laravel trong vài phút.
Step 3: Tạo một Procfile.
Vào thư mục gốc dự án laravel của bạn, tạo một file Procfile.
Viết lệnh bên dưới vào file Procfile.
web: vendor/bin/heroku-php-apache2 public/
Bước 4: Khởi tạo Git repo.
Okey, khởi tạo repo Git bằng lệnh sau.
git init
Bước 5: Đăng nhập vào Heroku từ Terminal.
Đi đến thiết bị đầu cuối của bạn và nhập lệnh sau để nhập Thông tin Heroku của bạn.
heroku login
Bước 6: Tạo một ứng dụng heroku.
Gõ lệnh sau.
heroku create
Nó sẽ tạo ra một ứng dụng với một cái tên mặc định peaceful-stream-72527
Bước 7: Laravel encryption key.
Gõ lệnh sau để xem khóa.
php artisan key:generate --show
Nó sẽ hiển thị encryption key, và bạn cần sao chép nó ngay bây giờ.
Bước tiếp theo là gõ lệnh sau và điền key đã sao chép.
heroku config: set APP_KEY = {encryption key của bạn}
Bây giờ, nhấn enter và bạn được thiết lập với phím Application key.
Bước 8: Push lên Heroku.
Sau đó thêm tất cả các thay đổi bằng lệnh sau.
git add .
Đặt commit cho các thay đổi.
git commit -m "first commit"
Đẩy commit lên nháy master trên Heroku.
git push heroku master
Bạn sẽ thấy như vậy
Bước 9: Bắt đầu ứng dụng.
Nhập lệnh sau để khởi động ứng dụng trên Heroku .
heroku open
Đây là ứng dụng của tôi URL trực tiếp: https://peaceful-stream-72527.herokuapp.com/
Bước 10: Cấu hình cơ sở dữ liệu trên Heroku.
Sử dụng cơ sở dữ liệu Postgres vì nó miễn phí trên Heroku. Vì vậy, chúng ta cần sử dụng một điều khoản cơ sở dữ liệu bổ sung do Heroku cung cấp. Bạn có thể tìm thêm ở đây .
Gõ lệnh sau để tạo cơ sở dữ liệu PGQuery.
heroku addons:create heroku-postgresql:hobby-dev
Bạn có thể biết thêm về lưu trữ dữ liệu trên URL này .
Bây giờ, bạn có thể thấy URL cơ sở dữ liệu của mình bằng lệnh sau.
heroku config
Nó sẽ cho chúng ta hai giá trị.
- APP_KEY
- DATABASE_URL
Bây giờ, sao chép tệp DATABASE_URL và mở tệp config >> database.php của bạn .
Đầu tiên, thay đổi cơ sở dữ liệu theo mặc định thành pssql từ mysql .
Bây giờ, ở trên cùng, bạn cần xác định $ DATABASE_URL = parse_url (URL của cơ sở dữ liệu được tạo của bạn, sao chép tại đây).
$DATABASE_URL=parse_url('Your database URL');
Tiếp theo, sửa lại array database sẽ có dạng như vậy.
// database.php
'pgsql' => [
'driver' => 'pgsql',
'host' => $DATABASE_URL["host"],
'port' => $DATABASE_URL["port"],
'database' => ltrim($DATABASE_URL["path"], "/"),
'username' => $DATABASE_URL["user"],
'password' => $DATABASE_URL["pass"],
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'require',
],
Sau khi hoàn thành file database.php sẽ như vậy.
<?php
$DATABASE_URL = parse_url('Your database URL');
return [
/*
|--------------------------------------------------------------------------
| Default Database Connection Name
|--------------------------------------------------------------------------
|
| Here you may specify which of the database connections below you wish
| to use as your default connection for all database work. Of course
| you may use many connections at once using the Database library.
|
*/
'default' => env('DB_CONNECTION', 'pgsql'),
/*
|--------------------------------------------------------------------------
| Database Connections
|--------------------------------------------------------------------------
|
| Here are each of the database connections setup for your application.
| Of course, examples of configuring each database platform that is
| supported by Laravel is shown below to make development simple.
|
|
| All database work in Laravel is done through the PHP PDO facilities
| so make sure you have the driver for your particular database of
| choice installed on your machine before you begin development.
|
*/
'connections' => [
'sqlite' => [
'driver' => 'sqlite',
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
],
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
'pgsql' => [
'driver' => 'pgsql',
'host' => $DATABASE_URL["host"],
'port' => $DATABASE_URL["port"],
'database' => ltrim($DATABASE_URL["path"], "/"),
'username' => $DATABASE_URL["user"],
'password' => $DATABASE_URL["pass"],
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'require',
],
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', ''),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
],
],
/*
|--------------------------------------------------------------------------
| Migration Repository Table
|--------------------------------------------------------------------------
|
| This table keeps track of all the migrations that have already run for
| your application. Using this information, we can determine which of
| the migrations on disk haven't actually been run in the database.
|
*/
'migrations' => 'migrations',
/*
|--------------------------------------------------------------------------
| Redis Databases
|--------------------------------------------------------------------------
|
| Redis is an open source, fast, and advanced key-value store that also
| provides a richer set of commands than a typical key-value systems
| such as APC or Memcached. Laravel makes it easy to dig right in.
|
*/
'redis' => [
'client' => 'predis',
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],
],
];



Social Plugin