Triển khai web trên Heroku

Tổng quan

Bạn có 1 website. Bạn muốn triển khai cho mọi người có thể xem. Bạn không có host

=> Bạn có thể lựa chọn Heroku để triển khai vì nó miễn phí và cung cấp Database cho bạn đủ dùng @@

Tài liệu sẽ hướng dẫn bạn

  • Cài đặt quản lý code trên Heroku (qua git và Heroku với các thao tác pull, push)
  • Kết nối database (DB) vào ứng dụng
  • quản lý database (insert, view, create database như phpMyAdmin nhưng ở chế độ dòng lệnh 😄)

1. Đăng kí tài khoản với heroku

Tài liệu: https://devcenter.heroku.com/articles/getting-started-with-laravel

1.1. Cài đặt: Heroku CLI (quản lý chế độ dòng lệnh)

https://devcenter.heroku.com/articles/heroku-cli

1.2. Tạo git như bình thường, commit, add

1.3. Tạo file Procfile để tạo quyền admin trên server cho đúng thư mục

$ echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
$ git add .
$ git commit -m "Procfile for Heroku“

1.4. Login vào Heroku

Sau khi cài Heroku CLI, chạy lệnh Heroku ngon lành rồi. (Chạy cmd dưới quyền admin)

$ heroku login

1.5. Tạo ứng dụng Heroku:

$ heroku create

anh Heroku, anh tạo cho em 1 cái app (bước này tạo trên giao diện cũng được mà tạo bằng lệnh cho nguy hiểm 😄)

Sau bước này git sẽ liên kết remote đến 1 repository nữa là Heroku

Remove remote: https://help.github.com/articles/removing-a-remote/

1.6. Đẩy code lên server để chạy thôi: Push code như git, nó sẽ tự cài composer 😄

$ git push heroku master

Phải là nhánh master, nhánh khác nó sẽ không hoạt động

1.7. Chạy thôi

$ heroku open

1.8. Cài đặt .env

Khi cài đặt các biến, các file môi trường trong .env, có thể cài trên giao diện cho dễ (APP_URL, APP_KEY) (phần settings)

Tham khảo: https://www.youtube.com/watch?v=R8A3h3y5Z8c

2. Kết nối DB

$heroku addons:create heroku-postgresql:hobby-dev
  • Câu lệnh này sẽ sinh ra 1 DB cho ứng dụng: https://data.heroku.com/ đồng thời khai báo DATABASE_URL vào app cho ta. Một công đôi việc
  • Việc tiếp theo là cần thực hiện migrate trong Laravel

2.1. Trong file config/database.php thêm các câu lệnh lên đầu

$url = parse_url(getenv('DATABASE_URL'));
$host = $url['host']??null;
$username = $url['user']??null;
$password = $url['pass']??null;
$database = substr($url['path'], 1);

2.2. Chỉnh sửa config

'default' => env('DB_CONNECTION', 'pgsql_production’),

2.3. Chạy lệnh thôi

$ heroku run php artisan migrate

3. Chèn dữ liệu DB, quản lý DB

4. Một vài câu lệnh hữu ích khác

$ git remote rm Heroku: xóa remote hiện tại
$ heroku git:clone -a cert-hust: clone repository về
$ heroku git:remote cert-hust: thêm 1 remote
$ heroku run php artisan migrate:refresh

Tài liệu tham khảo

https://devcenter.heroku.com/articles/getting-started-with-laravel

https://www.youtube.com/watch?v=R8A3h3y5Z8c