- vừa được xem lúc

Bạn đã biết cách deploy project Laravel lên Heroku?

0 0 149

Người đăng: Vương Minh Thái

Theo Viblo Asia

Lời mở đầu

Đối với developer nói chung và web developer nói riêng thì việc có thể show off sản phẩm của mình làm ra cho nhiều người biết tới và sử dụng là vô cùng tuyệt vời. Và cũng có khá nhiều cách để có thể thực hiện được việc này:

  • Gọi người khác đến xem sản phẩm chạy trên máy local của bạn (ngày xưa sinh viên mình toàn dùng kiểu này ? ?)
  • Public localhost giống như bài viết này.
  • Sử dụng host free: cái này phù hợp với những anh em đang mày mò tìm hiểu, học tập là chính và nó không mất phí ????
    • Nếu site của bạn là static web: hãy deploy trong 1 nốt nhạc theo như bài viết này.
    • Nếu site của bạn là dynamic web: hãy đọc tiếp bài viết này
  • Xịn hơn nữa thì bạn có thể mua hosting, domain để deploy (mua ở đâu thì các bạn tự google nhé, giờ list vào đây thì lại mang tiếng là quảng cáo ???)

Nội dung

Tìm hiểu về Heroku

Heroku is a platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud.

  • Theo như định nghĩa trên trang chủ https://www.heroku.com/ thì heroku là một dịch vụ cung cấp cho người dùng (developers) môi trường để xây dựng, phát triển ứng dụng của mình trên cloud. Và cũng tiện nói về PaaS thì nếu bạn nào muốn tìm hiểu thêm thì có thể thao khảo bài viết này (có đề cập đến các dịch vụ đám mây khác như là IaaS, PaaS, SaaSDaaS)

  • Nói tóm lại là bạn có thể deploy trang web của bạn lên heroku hoàn toàn miễn phí. Ngoài lý do miễn phí ra thì một nguyên nhân nữa giúp Heroku trở nên phổ biến là nó hỗ trợ khá nhiều ngôn ngữ (Ruby, Python, Java, PHP, ...).

  • Do phần nội dung phía sau (deploy project lên Heroku) sẽ khá là dài nên lý thuyết tạm dừng ở đây nhé các bạn. Nếu các bạn muốn tìm hiểu sâu hơn có thể đọc trong phần document (mình đã để link ở phần tài liệu tham khảo).

Cách deploy một project lên Heroku

1. Chuẩn bị

  • Chuẩn bị một project Laravel mà bạn muốn deploy.
  • Đăng ký tài khoản trên Heroku (tất nhiên rồi, bạn sử dụng dịch vụ của họ mà)
  • Cài đặt Heroku CLI (command line interface): để cài đặt Heroku CLI thì bắt buộc máy của bạn đã có cài đặt Git, cái này thì chắc anh em cũng đã quen thuộc rồi đúng không? Tuỳ vào OS mà bạn đang sử dụng thì có thể có các cách khác nhau để cài Heroku CLI:
    • Window: tải file exe tương ứng vs 64bit32bit rồi cài đặt như một ứng dụng bình thường.
    • Ubuntu:
      sudo snap install --classic heroku
      
    • MacOS:
      brew tap heroku/brew && brew install heroku
      
  • Như vậy là những thứ cần thiết đã được chuẩn bị xong, chúng ta sẽ bắt đầu từng bước deploy project Laravel của chúng ta lên Heroku.

2. Các bước thực hiện:

  • Bước 1: Tạo repository

    • Sau khi đăng nhập, ở màn hình dashboard, ấn vào "Create new app" để chuyển sang màn tạo repository bao gồm điền tên và chọn khu vực (United States hoặc Europe)
    • Sau đây là màn quản lý của ứng dụng của bạn:
  • Bước 2: Tạo database

    • Để tạo database cho project của bạn, từ màn quản lý ứng dụng như trong ảnh phía trên, chọn sang tab Resources. Ở phần Add-ons bạn tìm kiếm Heroku Postgres
    • Một popup hiện lên cho bạn lựa chọn các gói tương ứng (cứ free mà triển thôi nhé các bạn)
    • Tiếp theo ấn vào tên Heroku Postgres để di chuyển đến trang chi tiết quản lý database. Như các bạn có thể thấy ở trong ảnh thì database mới tạo ra có dung lượng 7,9Mb, chưa có bảng nào và không hỗ trợ bảo trì và rollback database (do bạn đang sử dụng gói free nên sẽ không thể sử dụng 2 chức năng này, nếu muốn trải nghiệm thì bạn có thể thử thay đổi sang gói trả phí)
    Để sử dụng 2 chức năng trên, bạn sẽ phải nâng cấp lên gói Standard hoặc Premium
    • Tiếp theo, chọn tab Settings và click vào View Credentials để lẩy thông tin cấu hình cho database:
  • Bước 3: Settings cấu hình repositories trên Heroku:

    • Nếu như các bạn đã biết thì khi đẩy source code lên github thì một số file sẽ không được đẩy lên mà phải cho vào list .gitignore. Vì vậy, Heroku sẽ không thể nhận được những biến môi trường trong file .env. Vì lý do đó mà chúng ta sẽ phải khai báo những biến môi trường ấy ở trong phần Settings/Config Vars:
    • Thêm Buildpack: như trong project Laravel của mình thì sẽ tạo thêm Buildpack PHP:
  • Bước 4: Cấu hình Heroku trong source code:

    • Trong thư mục public, chúng ta sẽ tạo file Procfile với nội dung như sau:
      web: vendor/bin/heroku-php-apache2 public/
      
  • Bước 5: Heroku login và tiến hành deploy

    • Trong giao diện commandline,

      heroku login
      

      nếu thu được kết quả giống như hình ảnh bên dưới thì tức là bạn đã login thành công:

    • Thêm remote repositories trên Heroku:

      heroku git:remote -a vuong-thai-95
      

    • Push code lên remote heroku vừa add:

      git push heroku master
      

      Sau khi push code thành công và chờ build lại thì kết quả thu được sẽ giống như hình bên dưới

  • Bước 6: chạy command trên Heroku:

    • Sau khi bạn build code thành công giống như ảnh phía trên, quay trở lại màn hình dashboard quản lý repositories của bạn. Click vào More và chọn vào dòng Run console
    • Chạy câu lệnh php artisan migrate để tiến hành tạo bảng trong database.
  • Bước 7: cuối cùng bạn click vào Open App để xem thử thành quả của mình nhé. Còn đây là của mình. Chúc các bạn thành công!

Tổng kết

Như vậy là mình đã hướng dẫn các bạn cách để có thể deploy một project lên host free là Heroku.

  • Nếu cảm thấy bài viết này hữu ích với bạn, hãy upvote ủng hộ giúp mình nhé.
  • Còn nếu các bạn gặp phải khó khăn gì trong quá trình thực hiện thì hãy comment xuống dưới, mình sẽ cố gắng hỗ trợ giúp bạn.

Hãy cùng nhau xây dựng một cộng đồng chia sẻ kiến thức IT đông đảo và mạnh mẽ nhé.

Tài liệu tham khảo

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 367

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 460

- vừa được xem lúc

Sử dụng Swagger để xây dựng API documentation

Giới thiệu về Swagger. RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web (thiết kế Web services) để tiện cho việc quản lý các resource.

0 0 1k

- vừa được xem lúc

Ví dụ CRUD với Laravel và Vuejs.

1. Cài đặt Laravel. composer create-project --prefer-dist laravel/laravel vuelaravelcrud. .

0 0 163

- vừa được xem lúc

Một số tips khi dùng laravel (Part 1)

1. Show database query in raw SQL format. DB::enableQueryLog(); // Bật tính năng query logging. DB::table('users')->get(); // Chạy truy vấn bạn muốn ghi log.

0 0 84

- vừa được xem lúc

Inertiajs - Xây dựng Single Page App không cần API

Tiêu đề là mình lấy từ trang chủ của https://inertiajs.com/ chứ không phải mình tự nghĩ ra đâu nhé :v. Lâu lâu rồi chưa động tới Laravel (dự án cuối cùng mình code là ở ver 5.8), thế nên một ngày đẹp trời lượn vào đọc docs ver 8.

0 0 242