Làm cách nào tôi có thể lưu trữ trang web PHP của riêng mình?
TL;DR. Có một câu thần chú phổ biến giữa các nhà phát triển là viết, kiểm tra và triển khai. Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách triển khai các ứng dụng PHP của bạn lên các nền tảng máy chủ đám mây khác nhau như Google Cloud, Microsoft Azure, Heroku, IBM Bluemix và các nền tảng khác Show
Giới thiệu về Máy chủ đám mâyMáy chủ đám mây về cơ bản là máy chủ ảo chạy trong môi trường điện toán đám mây. Có nhiều lợi ích khác nhau khi lưu trữ và triển khai các ứng dụng của bạn trên đám mây. họ đang
Trên thực tế, nhiều công ty đã chuyển cơ sở hạ tầng của họ sang đám mây để giảm chi phí và độ phức tạp. Đó là một lựa chọn tuyệt vời cho các doanh nghiệp quy mô nhỏ, vừa và doanh nghiệp. Nếu bạn viết nhiều hướng dẫn và làm POCs (Proof-of-concepts) như tôi thì nó cũng là một lựa chọn tuyệt vời cho bạn Một ứng dụng PHP chung liên quan đến ngăn xếp LAMP (Linux, Apache, Mysql và PHP) chung
Tiếp theo, hãy giới thiệu cách triển khai các ứng dụng php cho một số nền tảng máy chủ đám mây HerokuHeroku là một nền tảng đám mây giúp bạn triển khai và lưu trữ các ứng dụng của mình theo cách hiện đại. Nó làm tất cả những công việc nặng nhọc cho bạn. Hãy xem nhanh cách triển khai và bảo trì một ứng dụng PHP trên heroku Nếu bạn chưa có tài khoản, hãy tiếp tục và tạo một tài khoản trên heroku. com. Hãy tiếp tục và cài đặt heroku cli. Khi bạn đã cài đặt xong, hãy tiếp tục và sao chép ứng dụng PHP starwars đơn giản này
Hãy chắc chắn rằng bạn làm theo các bước dưới đây
Bây giờ, chúng ta có một tệp 7 chứa danh sách các gói mà ứng dụng cần. Hãy tiếp tục và chạy 8 trên máy cục bộ của bạn để cài đặt các gói này. Tải nhà soạn nhạc tại đây nếu bạn chưa cài đặt nóHãy tiếp tục và chạy ứng dụng. Ứng dụng sẽ chạy như vậy Thật tuyệt vời. Ứng dụng của chúng tôi hoạt động tại địa phương. Thời gian triển khai. Điều đầu tiên chúng tôi sẽ làm là thêm một 9 vào thư mục gốc của ứng dụng của chúng tôiTạo một tệp mới có tên 9 mà không có bất kỳ phần mở rộng tệp nào và thêm tệp này________số 8
Nếu bạn quan tâm đến việc sử dụng Nginx làm máy chủ web, thì nội dung của Procfile của bạn sẽ là
Bây giờ bạn đã thêm Procfile, hãy tiếp tục và tải dự án lên GitHub hoặc Bitbucket. Của tôi là starwazapp Đi đến bảng điều khiển. heroku. com/apps và tạo một ứng dụng mới như vậy Đặt cho nó một cái tên như vậy Chọn phương thức triển khai. Trong trường hợp của chúng tôi, chúng tôi sẽ sử dụng GitHub như vậy
Bây giờ, nhập tên của repo vào khu vực được khoanh tròn và nhấp vào Tìm kiếm. Heroku sẽ tìm kiếm repo của bạn trong tài khoản GitHub của bạn và hiển thị nó như vậy Nhấp vào 01 như vậyHeroku sẽ kết nối repo như vậy Cuộn xuống một chút. Đây là phần thú vị. Heroku cho phép bạn kích hoạt triển khai tự động chỉ bằng một nút nhấn. Nó cũng cung cấp cho bạn một tùy chọn để đợi quá trình tích hợp liên tục của bạn trôi qua trước khi triển khai vào sản xuất. Trong một ứng dụng trong thế giới thực, bạn sẽ có một bộ thử nghiệm cho cơ sở mã của mình. Mã của nhà phát triển chạy trên bộ thử nghiệm. Nếu nó vượt qua, mã sẽ được đưa vào sản xuất Nhấp để bật triển khai tự động. Chúng tôi không có bất kỳ dịch vụ CI nào, vì vậy chúng tôi không cần bật tùy chọn đó. Bây giờ, hãy triển khai nhánh chính
Nhấp vào nhánh Triển khai. Heroku sẽ quét qua tệp 02 của bạn, cài đặt các gói cần thiết và triển khaiNhấp vào nút Xem để xem ứng dụng của bạn Rất tiếc. Chúng tôi đang gặp lỗi 500. Aha, chúng tôi chưa đặt bất kỳ biến môi trường nào. Tại địa phương, chúng tôi đã có một tệp 3. Trên heroku, không có tệp 3, nhưng có cách đặt biến môi trường. Chuyển đến Cài đặt trên bảng điều khiển của bạn và thêm chúng dưới dạng biến cấu hình như vậyỒ, một điều nữa. Url gọi lại mới trong trường hợp của tôi là 05. Đảm bảo bạn thêm url gọi lại mới của mình vào URL gọi lại được phép trong bảng điều khiển Auth0 của bạnỨng dụng của bạn hiện đang hoạt động và đang hoạt động Thực hiện một thay đổi nhỏHãy thực hiện một thay đổi nhỏ đối với ứng dụng của chúng ta và xem nó dễ dàng triển khai ứng dụng đó như thế nào Mở 06 và thay đổi nội dung của thẻ 07 từ 08 thành 09. Cam kết và đẩy đến nhánh chính của bạn. Bây giờ, hãy chuyển đến tab Hoạt động của Bảng điều khiển Heroku của bạn và chú ý bản dựng. Tải lại ứng dụng của bạn và bạn sẽ thấy sự khác biệtCơ sở dữ liệu, bộ nhớ đệm & công việc định kỳHãy nói nhanh về cách xử lý cơ sở dữ liệu, bộ nhớ đệm và các công việc định kỳ. Trên heroku, bạn có thể sử dụng ClearDB và Postgres với PHP. Thêm ClearDB vào ứng dụng của bạn như vậy 0Lệnh này cung cấp một cơ sở dữ liệu ClearDB mới trả về URL mà ứng dụng sẽ sử dụng để truy cập nó. Tất cả những gì bạn cần làm là thêm nó vào ứng dụng của mình dưới dạng biến môi trường và phân tích nó trong cấu hình ứng dụng của bạn như vậy
0sử dụng mysqli Bạn có thể tinh chỉnh nó cho phù hợp với phong cách PDO. Thêm Postgres vào ứng dụng của bạn như vậy 1Đi tới phần bổ trợ, bạn sẽ thấy các loại cơ sở dữ liệu khác mà bạn có thể sử dụng với ứng dụng PHP của mình Heroku cung cấp một loạt các addon cho bộ nhớ đệm, từ 00 đến 01 đến 02 và các addon khác. Bạn có thể tham khảo cách sử dụng memcache với PHP trên herokuCuối cùng, bạn có thể sử dụng Heroku Scheduler để chạy các công việc trên ứng dụng của mình theo các khoảng thời gian đã lên lịch Google đám mâyNền tảng Google Cloud là một nền tảng đám mây khổng lồ và đáng tin cậy mà rất nhiều công ty trên toàn thế giới đã áp dụng để triển khai và lưu trữ ứng dụng của họ. Các ứng dụng của bạn sẽ chạy trên cùng một cơ sở hạ tầng cung cấp năng lượng cho tất cả các sản phẩm của Google. Bạn cần hình thức tự tin nào khác để đảm bảo với bạn rằng ứng dụng của bạn sẽ mở rộng đủ tốt để phục vụ hàng nghìn và hàng triệu người dùng của bạn một cách dễ dàng? Google Cloud cung cấp các tùy chọn khác nhau để lưu trữ ứng dụng PHP. Nền tảng này cung cấp App Engine (Được quản lý hoàn toàn), Compute Engine (VM có thể mở rộng) và Container Engine (Cụm Kubernetes) Trong trường hợp của chúng tôi, chúng tôi sẽ sử dụng App Engine. Nó trừu tượng hóa cơ sở hạ tầng đi. Hãy bắt đầu triển khai ứng dụng Star Wars nổi tiếng của chúng ta lên Google App Engine Khi sử dụng Google App Engine, bạn có thể chọn môi trường Tiêu chuẩn hoặc Linh hoạt. Cái sau, giống như tên ngụ ý, cho phép bạn cài đặt bất kỳ tiện ích mở rộng PHP nào hoạt động trên Debian Linux, có máy chủ web Nginx có thể định cấu hình, hệ thống tệp có thể ghi, phiên bản PHP mới nhất và cho phép bạn chạy tập lệnh triển khai bằng cách sử dụng 7Chúng tôi sẽ sử dụng môi trường linh hoạt. Vì vậy, hãy tiếp tục và tạo một dự án mới. Nhấp vào Tạo, đặt tên cho dự án, chọn khu vực bạn muốn phân phát ứng dụng của mình và bật thanh toán
Bây giờ, hãy tải xuống Google SDK và cài đặt các công cụ Google Cloud Hãy tiếp tục và tạo một tệp 04 trong thư mục gốc của dự án của chúng ta như vậyứng dụng. khoai mỡ 7Vì vậy, tệp 3 của chúng tôi đã được đẩy lên Google Cloud. Một cách khác để sử dụng đó là thêm các biến môi trường vào tệp 04 như vậy 0Bây giờ, hãy triển khai ứng dụng của bạn từ bảng điều khiển bằng cách chạy 07Ghi chú. Bây giờ, hãy lấy URL, trong trường hợp của tôi, đó là 08 và thêm vào Nguồn gốc được phép (CORS) và URL gọi lại được phép trong bảng điều khiển Auth0 của bạn. Đồng thời thêm URL vào 09 trong tệp 3 của bạnChạy lại 07 để cung cấp phiên bản mới của ứng dụng. Kiểm tra ứng dụng của bạn bây giờ. Nó nên được sống như vậyCơ sở dữ liệu, bộ nhớ đệm & công việc định kỳGoogle Cloud cung cấp nền tảng Cloud SQL Instance. Kiểm tra cách định cấu hình, kết nối và tạo phiên bản MySQL cho ứng dụng của bạn Ồ, Bạn cũng có thể sử dụng phpMyAdmin trên Google App Engine Google App Engine bao gồm việc triển khai các API Memcache và Memcached tiêu chuẩn. Kiểm tra cách sử dụng Memcache trong ứng dụng của bạn trên Google Cloud Dịch vụ Cron của App Engine cho phép bạn định cấu hình các tác vụ được lên lịch thường xuyên hoạt động vào các thời điểm hoặc khoảng thời gian đều đặn đã xác định. Xem cách lên lịch các công việc định kỳ và sử dụng hàng đợi tác vụ với PHP trên Google Cloud Việc triển khai các ứng dụng Laravel, Symfony và Wordpress lên Google Cloud Platform tương đối dễ dàng IBM BlueMixIBM Bluemix cho phép bạn dễ dàng định cấu hình, triển khai và mở rộng quy mô trên cơ sở hạ tầng đám mây toàn cầu mạnh mẽ, hiệu suất cao. Hãy bắt đầu triển khai ứng dụng Star Wars nổi tiếng của chúng tôi cho IBM Bluemix Đăng ký trên Bluemix như vậy
Hãy tiếp tục và tạo một tổ chức và không gian. Tôi đặt tên cho không gian của mình là 12Bây giờ, hãy tiếp tục và cài đặt Cloud Foundry CLI. Khi bạn đã hoàn thành việc đó, hãy đi tới và đăng nhập từ thiết bị đầu cuối của bạn như vậy 7Bước tiếp theo là tạo tệp 13 trong thư mục gốc của ứng dụng. 13 bao gồm thông tin cơ bản về ứng dụng của bạn, chẳng hạn như tên, lượng bộ nhớ cần phân bổ cho từng phiên bản và tuyến đường. Tệp kê khai của chúng tôi sẽ trông giống như vậy 0Bạn cũng có thể chỉ định rõ ràng gói xây dựng trong tệp kê khai. Rất may, Cloud Foundry tự động phát hiện gói xây dựng nào được yêu cầu khi bạn đẩy một ứng dụng
Cuối cùng, triển khai ứng dụng của bạn bằng cách chạy lệnh sau như vậy 1 15 phải là một tên duy nhấtHãy thử chạy ứng dụng ngay bây giờ. Trong trường hợp của tôi, url là 16. Rất tiếc, lỗi 500. Chúng tôi chưa tải các biến môi trường của mình. Làm thế nào để chúng tôi làm điều đó với BluemixBạn có thể sử dụng Cloud Foundry CLI hoặc giao diện người dùng Bluemix để đặt các biến môi trường. Hãy sử dụng giao diện người dùng Bluemix. Vì vậy, hãy làm theo các bước dưới đây
Ghi chú. Bây giờ, hãy lấy URL, trong trường hợp của tôi, đó là 18 và thêm vào Nguồn gốc được phép (CORS) và URL gọi lại được phép trong bảng điều khiển Auth0 của bạnBây giờ hãy kiểm tra ứng dụng của bạn. Ứng dụng của bạn phải hoạt động Cơ sở dữ liệu, bộ nhớ đệm & công việc định kỳCloud Foundry cung cấp khả năng tạo dịch vụ. IBM Bluemix cung cấp cơ sở dữ liệu Cloudant NoSQL (tên Bluemix cho CouchDB). Vì vậy, bạn có thể sử dụng công cụ 19 để tạo các dịch vụ cơ sở dữ liệu như vậy 0IBM Bluemix cũng cung cấp dịch vụ ClearDB MySQL. Vì vậy, bạn có thể sử dụng công cụ 19 để tạo một công cụ như vậy 1Họ cung cấp MongoDB, PostgreSQL, RethinkDB Bạn luôn có thể sử dụng công cụ Cloud Foundry để kiểm tra rất nhiều thứ như nhật ký, biến môi trường như vậy
IBM Bluemix cũng cung cấp Redis Cloud, một dịch vụ đám mây được quản lý hoàn toàn để lưu trữ và chạy tập dữ liệu Redis của bạn trong BlueMix theo cách có khả năng mở rộng và khả dụng cao IBM Bluemix cung cấp dịch vụ Workload Scheduler. Dịch vụ này cho phép bạn tích hợp ứng dụng của mình với khả năng lên lịch quy trình công việc. Vượt xa Cron, khai thác lập lịch công việc trong và ngoài Bluemix. Dễ dàng tạo các quy trình công việc trong ứng dụng của bạn để chạy thường xuyên, tại một thời điểm cụ thể, trên cơ sở sự kiện (ví dụ: khi một tệp bị xóa hoặc cập nhật), theo nhu cầu của bạn. Bạn có thể sử dụng Giao diện người dùng Trình lập lịch khối lượng công việc hoặc sử dụng các API Bắt đầu với Lập kế hoạch Công việc tại đây Ồ, một điều nữa, đây là cách triển khai ứng dụng Laravel của bạn trên IBM Bluemix Microsoft AzureMicrosoft Azure là một nền tảng đám mây khổng lồ khác cho phép bạn mở rộng quy mô ứng dụng của mình một cách dễ dàng. Hãy bắt đầu triển khai ứng dụng Chiến tranh giữa các vì sao trên Azure Với Microsoft Azure, bạn có thể triển khai qua
Trong trường hợp của chúng tôi, chúng tôi sẽ thiết lập triển khai với Git
Cơ sở dữ liệu, bộ nhớ đệm & công việc định kỳMicrosoft Azure cung cấp Azure Redis Cache. Nó dựa trên bộ đệm Redis mã nguồn mở phổ biến. Thật dễ dàng để tạo và sử dụng như vậy
Kiểm tra các tài liệu về cách sử dụng nó Để lên lịch và chạy các tác vụ, Azure cung cấp Trình lập lịch biểu. Nó cho phép bạn
Kiểm tra cách tạo và quản lý công việc bằng Trình lập lịch biểu Chúng ta đã nói một chút về việc thiết lập cơ sở dữ liệu trước đó khi triển khai ứng dụng của mình, nhưng hãy xem nhanh cách thiết lập cơ sở dữ liệu MySQL
Nhà phát triển Laravel có thể dễ dàng định cấu hình cơ sở dữ liệu MySQL cho ứng dụng của họ trên Azure Dịch vụ web của AmazonNhiều công ty sử dụng AWS (Dịch vụ web của Amazon) để lưu trữ tất cả các loại dữ liệu từ hình ảnh, tệp mp3 đến video hơn bất kỳ nền tảng đám mây nào khác. Trên thực tế, rất nhiều tổ chức như Uber, Spotify, Salesforce sử dụng Amazon Web Services để lưu trữ, triển khai và cơ sở hạ tầng. AWS có rất nhiều sản phẩm dành cho nhà phát triển Dịch vụ chúng tôi sẽ sử dụng để triển khai ứng dụng StarWars nổi tiếng của mình là Amazon Elastic Beanstalk. Bắt đầu nào
Kiểm tra cách triển khai
Cơ sở dữ liệu, bộ nhớ đệm và công việc định kỳBạn có thể sử dụng phiên bản CSDL Amazon Relational Database Service (Amazon RDS) để lưu trữ dữ liệu do ứng dụng của bạn thu thập và sửa đổi. Cơ sở dữ liệu có thể được gắn vào môi trường của bạn và được quản lý bởi Elastic Beanstalk hoặc được tạo và quản lý bên ngoài. Xem cách dễ dàng thêm phiên bản CSDL vào ứng dụng của bạn Đối với bộ nhớ đệm, Amazon Web Services cung cấp ElastiCache. Đây là một dịch vụ web giúp dễ dàng triển khai, vận hành và mở rộng quy mô lưu trữ dữ liệu trong bộ nhớ hoặc bộ nhớ cache trên đám mây. Amazon ElastiCache hỗ trợ hai công cụ nguồn mở trong bộ nhớ
Amazon ElastiCache tự động phát hiện và thay thế các nút bị lỗi, giảm chi phí liên quan đến cơ sở hạ tầng tự quản lý và cung cấp một hệ thống có khả năng phục hồi giúp giảm thiểu nguy cơ cơ sở dữ liệu bị quá tải làm chậm thời gian tải ứng dụng và trang web. Thông qua tích hợp với Amazon CloudWatch, Amazon ElastiCache cung cấp khả năng hiển thị nâng cao đối với các chỉ số hiệu suất chính được liên kết với các nút Redis hoặc Memcached của bạn Các công ty như AirBnb, Healthguru, PlaceIQ và Tokyo Data Network sử dụng ElastiCache để lưu vào bộ nhớ đệm ở nhiều lớp mở rộng các đoạn HTML, kết quả của các truy vấn DB đắt tiền, dữ liệu phiên tạm thời và kết quả tìm kiếm
Đây là một bài viết tuyệt vời về xây dựng bộ đếm khách truy cập PHP với ElastiCache và Elastic Beanstalk Bạn có thể thiết lập một công việc định kỳ trên Elastic Beanstalk. Tìm hiểu cách chạy các công việc định kỳ trên Amazon Web Services(AWS) Elastic Beanstalk Lò rèn LaravelLaravel Forge, được tạo bởi Taylor Otwell là một nền tảng giúp bạn triển khai và khởi chạy ứng dụng của mình trong vài phút. Nó làm công việc nặng nhọc cho bạn. Forge đảm nhận việc cung cấp máy chủ của bạn trên các nhà cung cấp dịch vụ lưu trữ đám mây phổ biến như Linode, Digital Ocean và AWS. Ban đầu nó được xây dựng cho các ứng dụng Laravel, nhưng giờ đây nó đã hỗ trợ cho hầu hết mọi ứng dụng PHP Laravel Forge cho phép bạn dễ dàng thực hiện những việc sau ngoài việc cung cấp máy chủ
Matt Stauffer có một bài viết tuyệt vời về việc triển khai ứng dụng Laravel đầu tiên của bạn cho Forge James Fairhurst cũng có một hướng dẫn tuyệt vời về cách sử dụng Laravel Forge để thiết lập Máy chủ AWS Cuối cùng, nền tảng PHP giáo dục phổ biến nhất, laracasts. com có loạt bài về quản lý máy chủ bằng Forge phái viênEnvoyer là một nền tảng cho phép triển khai PHP bằng không thời gian chết. Nó cho phép bạn tích hợp với nhiều dịch vụ khác nhau như Gitlab, Slack, Bitbucket e. t. c Với Envoyer, bạn có thể thực hiện
người triển khaiDeployer là một công cụ triển khai cho PHP. Nó cho phép bạn làm như sau
Nó hoạt động với Laravel, Symfony, CakePHP, Yiiframework, Zend, FuelPHP, Drupal, Wordpress và Magento. Hãy xem bài viết tuyệt vời này về triển khai các ứng dụng PHP với Deployer Phần kết luậnKhông có cách nào chúng tôi có thể bao gồm tất cả các tùy chọn khác nhau có sẵn để triển khai các ứng dụng PHP. PHP là ngôn ngữ dành cho doanh nghiệp đã phát triển qua nhiều năm, do đó kêu gọi các cách hiệu quả hơn để triển khai các ứng dụng PHP từ máy cục bộ sang sản xuất. Hy vọng rằng, hướng dẫn này đáp ứng tất cả các nhu cầu cơ bản của bạn để triển khai các ứng dụng PHP của bạn cho tất cả các nhà cung cấp đám mây lớn. Tuy nhiên, có một tài nguyên khác mà tôi khuyên dùng để có kiến thức sâu rộng trong việc học cách triển khai các ứng dụng PHP
|