Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Laravel
Code

Triển khai các ứng dụng web PHP bằng Laravel Forge

by
Difficulty:BeginnerLength:LongLanguages:

Vietnamese (Tiếng Việt) translation by Thai An (you can also view the original English article)

Các nhà phát triển thích tự động hóa mọi thứ — cho mọi quá trình giữa phát triển và sản xuất, họ rất muốn có một kịch bản làm cho quy trình làm việc của họ dễ dàng hơn. Đây cũng là trường hợp triển khai.

Quá trình đẩy bản xây dựng cuối cùng và triển khai ứng dụng phải dễ dàng như việc nhấn nút Triển khai ngay bây giờ, nhưng đó không phải là điều xảy ra hầu hết thời gian. Chúng tôi kết thúc việc đầu tư thời gian và nguồn lực của mình vào việc cấu hình máy chủ, thiết lập môi trường, di chuyển các tệp mà chúng tôi cho là không liên quan đến các bản dựng sản xuất, v.v.

Một số người trong chúng ta thích gửi các tập tin đến máy chủ bằng tay bằng cách sử dụng FTP hoặc có mã được đẩy vào một repo GitHub, trong khi những người khác thích một công cụ triển khai để làm cho quá trình dễ dàng hơn. Một công cụ làm cho việc triển khai PHP trở nên dễ dàng là Laravel Forge.

Đừng để tên thương hiệu Laravel đánh lừa bạn. Ngoài Laravel, bạn có thể sử dụng dịch vụ này để lưu trữ WordPress, Symphony, Statamic hoặc bất kỳ dự án web nào khác miễn là PHP. Cá nhân, tôi thích Laravel Forge vì tính đơn giản và dễ làm quen với nó.

Trong hướng dẫn này, tôi sẽ hướng dẫn bạn qua các bước để móc Laravel Forge với AWS và khám phá những gì nó cung cấp.

Tổng quan

Laravel Forge cho phép bạn xoay các máy chủ đám mây và xử lý các quy trình triển khai bằng Git và một số nhà cung cấp máy chủ phổ biến có sẵn. Quá trình này được giải thích dưới đây:

Trước tiên, bạn sẽ cần phải kết nối AWS hoặc bất kỳ nhà cung cấp đám mây nào khác với tài khoản Forge của bạn. Tiếp theo, liên kết điều khiển nguồn của bạn như GitHub để Forge. Bây giờ bạn có thể tạo máy chủ. Cài đặt kho kiểm soát nguồn của bạn trên máy chủ. Cuối cùng, nhấn nút triển khai. Đủ dễ dàng, phải không?

Các máy chủ được cấp phép với Laravel Forge được gửi kèm theo ngăn xếp sau:

  • Ubuntu 16.06
  • Nginx
  • PHP 7,2 / 7.1 / 7.0 / 5.6
  • MySQL / MariaDB / Postgres
  • Redis
  • Memcached

Khi máy chủ đã được tạo, bạn có thể cấu hình thêm mọi thứ.

Khi bạn đăng ký, bạn có thể chọn giữa các gói khác nhau mà họ cung cấp. Tôi đã chọn gói cơ bản 12 đô la / tháng; tuy nhiên, bạn sẽ được dùng thử miễn phí với quyền truy cập vào mọi thứ trong danh sách trong năm ngày.

Một khi bạn đã đăng nhập, bạn sẽ thấy một cái gì đó như thế này dưới đây.

Screenshot of Laravel Forge main screen once youre logged in

Bạn có thể chọn giữa Digital Ocean, AWS, Linode và Vultr cho nhà cung cấp dịch vụ. Ngoài ra, bạn cũng có thể sử dụng Forge với VPC tùy chỉnh. Đối với điều khiển nguồn, Forge hỗ trợ GitHub, GitLab và Bitbucket. Trong hướng dẫn này, tôi sẽ thảo luận những điều cơ bản về cấu hình AWS để làm việc với Forge và GitHub để kiểm soát nguồn. Khi bạn đã hoàn tất, bạn sẽ có thể tạo và cung cấp bất kỳ số lượng máy chủ nào.

Nếu bạn đang sử dụng một nhà cung cấp dịch vụ khác trong danh sách, bạn có thể bỏ qua bước này và bắt kịp với chúng tôi sau, sau khi chúng tôi đã định cấu hình AWS và Laravel Forge.

Thiết lập Laravel Forge và AWS

Để thiết lập Forge và AWS, dưới đây là các bước bạn cần thực hiện.

1. Đăng nhập vào Laravel Forge

Đăng nhập vào Laravel Forge và chọn AWS làm nhà cung cấp dịch vụ. Bạn sẽ được yêu cầu nhập ID khóa (khóa) và Khóa truy cập bí mật (bí mật). Bạn sẽ cần phải tạo một người dùng IAM cụ thể với một chính sách cung cấp đủ quyền truy cập vào Laravel Forge. IAM là cách thức ánh xạ của Amazon đối với mỗi người dùng để bạn có thể thu hồi quyền truy cập nếu có sự cố.

2. Tạo người dùng IAM mới

Đăng nhập vào AWS Console và tạo người dùng IAM mới.

Create an IAM user on AWS with programmatic access

Cung cấp cho người dùng tên có ý nghĩa và chọn hộp có nội dung Truy cập có lập trình.

3. Chọn chính sách phù hợp

Đặt quyền phù hợp cho người dùng IAM Laravel giả mạo. Tạo nhóm người dùng mới vì nhóm người dùng lý tưởng để quản lý quyền. Bây giờ câu hỏi tự nhiên là,

Create a user group with the right permissions

Nếu bạn cần Forge để tạo và cung cấp máy chủ nhân danh bạn, bạn sẽ cần phải thêm hai chính sách:

  1. AmazonEC2FullAccess
  2. AmazonVPCFullAccess

4. Lưu thông tin xác thực và xác nhận

Xác nhận tài khoản IAM và, trên trang tiếp theo, bạn sẽ tìm thấy Khóa Truy cập và Mã Bí mật.

Newly generated Access key and secret

Đi đến trang Laravel Forge và dán chúng vào đó. Đó là nó.

5. Liên kết tài khoản GitHub của bạn với Forge

Kết nối tài khoản GitHub / Bitbucket của bạn với Forge nếu bạn chưa thực hiện điều đó. Forge sẽ thêm khóa công khai vào tài khoản của bạn khi bạn tạo máy chủ. Nếu bạn cần thêm nhà cung cấp dịch vụ mới và / hoặc cập nhật điều khiển nguồn, bạn có các tùy chọn đó trong hồ sơ của mình.

Tạo một máy chủ mới

Truy cập trang Tạo máy chủ để thêm máy chủ mới.

Laravel Forges interface for adding a new server

Chọn t2.micro với RAM 1 GB nếu bạn đang ở cấp AWS miễn phí. Đối với các thiết lập khác, tôi sẽ đi với các giá trị mặc định. Điều này bao gồm MySQL cho cơ sở dữ liệu và phiên bản PHP 7.2. Bạn có thể tùy chỉnh tên cơ sở dữ liệu sau này. Để giữ cho mọi thứ đơn giản, tôi đã quyết định không sử dụng cân bằng tải. Nếu bạn đang băn khoăn về công thức hậu sản xuất, tôi đã đề cập đến phần cuối của hướng dẫn này.

Có thể mất tối đa năm phút để máy chủ được tạo. Bạn sẽ nhận được thông tin đăng nhập cho truy cập sudo. Lưu trữ chúng ở một nơi an toàn để bạn có thể sử dụng chúng trong tương lai. Để thấy rằng mọi thứ đang hoạt động như mong đợi, hãy vào địa chỉ IP của máy chủ và bạn sẽ thấy kết quả đầu ra của phpinfo () trên màn hình của bạn.

Giao diện quản lý máy chủ

Giao diện mà bạn thấy sau khi tạo máy chủ là bảng điều khiển quản lý máy chủ.

Server management dashboard

Bạn có thể làm rất nhiều thứ ở đây, chẳng hạn như:

  • quản lý trang web
  • thêm các khóa SSH
  • cấu hình cơ sở dữ liệu
  • cập nhật cài đặt PHP
  • lên lịch một nhiệm vụ
  • bắt đầu một daemon
  • quản lý mạng và cấu hình tường lửa
  • ứng dụng giám sát sử dụng Blackfire hoặc Papertail
  • định cấu hình cài đặt meta

Đó là rất nhiều tính năng đi kèm trong đó. Tôi đã trình bày những điều quan trọng trong hướng dẫn này. Hãy bắt đầu với việc quản lý trang web. Theo tài liệu Forge:

Trang web đại diện cho từng trang web Trang web "mặc định" được bao gồm trong mỗi máy chủ được cấp phép mới; tuy nhiên, bạn nên xóa nó và tạo một trang mới với tên miền hợp lệ khi bạn sẵn sàng khởi chạy trang web sản xuất của mình.

Như bạn có thể thấy, Forge đã thiết lập một trang web mặc định cho chúng tôi. Bạn có thể tạo bất kỳ số lượng trang web nào và định tuyến chúng đến tên miền phụ của bạn. Với mục đích của hướng dẫn này, tôi sẽ dính vào trang mặc định. Thư mục web được đặt thành / công khai theo mặc định. Đây là cách nó sẽ được cấu hình cho Laravel và hầu hết các ứng dụng web khác.

Nếu bạn nhấp vào một trang web cụ thể, bạn sẽ thấy giao diện quản lý trang web. Bạn có thể quản lý, triển khai và định cấu hình các trang web riêng lẻ từ đây.

Giao diện quản lý trang web

Đây là giao diện ban đầu của giao diện.

You can add the Git repo from this screen

Bạn có thể cài đặt từ kho lưu trữ Git hoặc cài đặt WordPress. Với mục đích của hướng dẫn này, tôi đã tạo một mẫu Liên hệ với chúng tôi ứng dụng mà bạn có thể ngã ba vào tài khoản của bạn. Bạn có thể chỉ định tên của dự án và nhánh. Khi bạn đã hoàn tất, bạn sẽ có các điều khiển để triển khai ứng dụng của mình.

Site management dashboard with deployment controls

Tôi sẽ cung cấp cho bạn một tour du lịch nhanh chóng của các tùy chọn có sẵn.

Triển khai ngay và triển khai nhanh

Để triển khai, bạn có thể triển khai thủ công bằng cách sử dụng nút Deploy now. Ngoài ra, bạn có thể kích hoạt tùy chọn Quick Deploy, nó sẽ tự động triển khai dự án khi bạn đẩy mã vào nhánh chính của repo GitHub đã chọn.

Kịch bản triển khai

Kịch bản triển khai mặc định kéo mã từ kho lưu trữ, cài đặt các phụ thuộc, khởi động máy chủ và chạy các lần di chuyển mỗi khi ứng dụng được triển khai. Đây là kịch bản triển khai thực tế.

Nếu bạn cần phải tinh chỉnh nó và thêm một cái gì đó thêm, bạn có thể.

URL kích hoạt triển khai

Bạn có thể sử dụng điều này để tích hợp ứng dụng của mình vào dịch vụ của bên thứ ba hoặc tạo tập lệnh triển khai tùy chỉnh. Khi URL nhận được yêu cầu, tập lệnh triển khai được kích hoạt.

Cập nhật Repo và Chi nhánh

Nếu bạn cần cập nhật chi nhánh hoặc cài đặt phiên bản mới hơn của cùng một dự án trên một kho lưu trữ khác, bạn có thể sử dụng các tùy chọn này. Nếu bạn đang cập nhật nhánh, bạn có thể phải cập nhật tên chi nhánh trong kịch bản triển khai.

Môi trường

Forge tự động tạo một tệp môi trường cho ứng dụng. Một số chi tiết như thông tin đăng nhập cơ sở dữ liệu được tự động thêm vào môi trường. Tuy nhiên, nếu ứng dụng sử dụng API, bạn có thể đặt khóa API một cách an toàn trong môi trường. Ngay cả khi bạn đang chạy một ứng dụng web PHP chung, bạn có thể truy cập các biến ENV bằng phương thức getenv ().

Công nhân xếp hàng

Bắt đầu một công nhân xếp hàng trong Forge cũng giống như chạy hàng đợi: lệnh Artisan work. Forge quản lý công nhân hàng đợi bằng cách sử dụng một trình giám sát quy trình được gọi là Giám sát để quá trình này tiếp tục chạy vĩnh viễn. Bạn có thể tạo nhiều hàng đợi dựa trên mức ưu tiên hàng đợi hoặc bất kỳ phân loại nào khác mà bạn thấy hữu ích.

SSL

Bảo mật SSL cho một trang web là bất cứ điều gì nhưng dễ dàng và miễn phí trong quá khứ. Forge cho phép bạn cài đặt chứng chỉ hiện có hoặc bạn có thể lấy chứng chỉ miễn phí từ LetsEncrypt. Nó nhanh chóng và dễ dàng. Nếu bạn cần SSL cho các tên miền phụ ký tự đại diện, bạn có thể thêm chứng chỉ Cloudflare miễn phí vào Forge.

Quay lại giao diện quản lý máy chủ, chúng ta có các khóa SSH.

Thêm khóa SSH

Mặc dù hầu hết các tùy chọn cấu hình có sẵn trên bảng điều khiển, nếu bạn cần kết nối với máy chủ, bạn nên làm điều đó bằng cách sử dụng SSH. SSH là cách an toàn hơn để đăng nhập vào VPS và cung cấp bảo vệ nhiều hơn mật khẩu.

Để truy cập máy chủ thông qua SSH, bạn cần phải tạo một cặp khóa nếu bạn chưa có. Khóa công khai sẽ được truy cập vào máy chủ và khóa riêng tư sẽ nằm trong máy chủ lưu trữ của bạn. Sau đó, bạn có thể sử dụng thiết lập để kết nối với cá thể máy chủ.

Adding SSH keys to Forge server

Lưu ý: Khóa SSH được thêm từ trang tổng quan quản lý máy chủ sẽ được cụ thể cho máy chủ đó. Nếu bạn cần tự động thêm khóa cho tất cả các máy chủ từ đây, bạn có thể thêm chúng từ cài đặt Hồ sơ của mình.

Để tạo cặp khóa, hãy chạy lệnh sau.

Bạn sẽ được hỏi một vài câu hỏi như tệp bạn muốn lưu trữ khóa và cụm mật khẩu để bảo mật bổ sung. Tiếp theo, thêm khóa SSH vào ssh-agent.

Sao chép khóa công khai và thêm nó vào danh sách các khóa SSH của Forge.

Cấu hình PHP và MySQL

Bạn có thể sử dụng giao diện để cấu hình PHP và MySQL. Đối với cơ sở dữ liệu, các tùy chọn có sẵn bao gồm:

  • Tạo cơ sở dữ liệu mới.
  • Thêm người dùng mới.
  • Cập nhật quyền truy cập của người dùng vào cơ sở dữ liệu.
  • Cập nhật kiến ​​thức của Forge về mật khẩu.

Đảm bảo rằng bạn điền dữ liệu đã cập nhật vào tệp .env của bạn.

Bạn có thể cấu hình các cài đặt PHP sau:

  • Nâng cấp lên phiên bản PHP mới nhất.
  • Thay đổi kích thước tệp tải lên.
  • Tối ưu hóa OPCache để sản xuất sao cho mã PHP được biên dịch sẽ được lưu trữ trong bộ nhớ.

Cài đặt quan trọng khác

Ở đây tôi đã liệt kê một số cài đặt khác có sẵn.

Lập kế hoạch một nhiệm vụ

Bạn có thể sử dụng trình lập lịch biểu của Forge để lên lịch các tác vụ định kỳ hoặc chạy các công việc cron. Nếu bạn cần gửi email định kỳ, dọn dẹp thứ gì đó hoặc chạy tập lệnh, bạn có thể sử dụng công cụ lên lịch tác vụ. Tác vụ được tạo theo mặc định, chạy tự động soạn trên cơ sở hàng đêm. Bạn có thể thử lên lịch một cái mới với tần suất bạn chọn.

Bắt đầu một Daemon

Một daemon là một chương trình máy tính chạy trong một tiến trình nền. Laravel Forge cho phép bạn bắt đầu một daemon và sử dụng Supervisor để đảm bảo rằng daemon vẫn chạy. Nếu daemon bị treo vì lý do nào đó, Giám sát sẽ tự động khởi động lại tập lệnh.

Giám sát ứng dụng

Laravel Forge đã hỗ trợ sẵn cho các công cụ giám sát ứng dụng của bạn để thực hiện các phép đo bằng cách thu thập dữ liệu về các tài nguyên như bộ nhớ, thời gian CPU và các hoạt động I / O. Các công cụ có sẵn là Blackfire.io và Papertrail. Để bắt đầu lược tả ứng dụng của bạn, bạn chỉ cần truy xuất thông tin xác thực phù hợp từ trang web của bên thứ ba và đó là nó.

Cấu hình mạng máy chủ và tường lửa

Nếu bạn cần cập nhật các thiết lập tường lửa, bạn không cần phải vào giao diện điều khiển AWS để thực hiện điều đó. Bạn có thể tạo quy tắc tường lửa mới từ trang tổng quan. Nếu bạn có các máy chủ khác được cấp phép sử dụng cùng một nhà cung cấp và khu vực, bạn có thể thiết lập một mạng máy chủ để chúng có thể giao tiếp không đau đớn.

Tóm lược

Laravel Forge là một công cụ đáng kinh ngạc giúp triển khai một miếng bánh. Nó có rất nhiều tính năng và giao diện người dùng dễ sử dụng cho phép bạn tạo và cung cấp các máy chủ và triển khai các ứng dụng mà không gặp bất kỳ rắc rối nào. Khi bạn đã cấu hình nhà cung cấp dịch vụ, rất có thể là bạn sẽ không cần phải truy cập vào giao diện điều khiển AWS để quản lý máy chủ một lần nữa.

Trong hướng dẫn này, tôi đã trình bày các kiến ​​thức cơ bản về cấu hình AWS với Laravel Forge và các bước để cung cấp một máy chủ và triển khai một ứng dụng. Tôi cũng đã thảo luận gần như tất cả các tính năng có sẵn trong giao diện Forge.

Đối với những người trong số các bạn, hoặc chỉ mới bắt đầu với Laravel hoặc tìm cách mở rộng kiến ​​thức, trang web hoặc ứng dụng của bạn bằng các tiện ích mở rộng, chúng tôi có nhiều thứ bạn có thể học tại Envato Market.

Bạn có kinh nghiệm nào để chia sẻ với việc triển khai các ứng dụng PHP bằng cách sử dụng Laravel Forge hay bất kỳ công cụ triển khai phổ biến nào khác không? Hãy cho chúng tôi biết trong phần bình luận.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.