Trong hướng dẫn này, tôi sẽ đặt ra cách bắt đầu tốt nhất với việc thiết lập môi trường phát triển PHP, hướng dẫn bạn cách thiết lập với Docker. Có rất nhiều cách để thiết lập môi trường PHP Dev của bạn, nhưng sử dụng Docker là cách thực hành tốt nhất hiện tại. Show
Tôi sẽ bắt đầu với một lịch sử ngắn gọn về cách mọi người đã thiết lập môi trường phát triển PHP của họ trong những năm qua, dẫn đến nơi chúng ta đang ở. Nhưng nếu bạn thay vì bỏ qua tất cả những điều đó và chỉ cần chạy máy chủ của mình, bạn có thể bỏ qua các bước cấu hình. Một chút nềnMột trong những vấn đề với phát triển web là mọi thứ thay đổi với tốc độ nhanh chóng. CSS thực tiễn tốt nhất thay đổi khi các thuộc tính mới được thêm vào đặc điểm kỹ thuật. . Kết quả là, rất nhiều hướng dẫn đã lỗi thời khá nhanh. Cho đến một vài năm trước, tôi đã gửi tất cả mọi người mà tôi đang dạy cho bài viết xuất sắc của Bruno Skvorc, giới thiệu lại Vagrant: cách bắt đầu với PHP. Vào thời điểm đó, đó là một giới thiệu tuyệt vời về cách (sau đó) tốt nhất để thiết lập một môi trường phát triển địa phương. Bài báo đó chỉ từ năm 2015, nhưng năm hoặc sáu năm là EON trong thời gian phát triển web luôn di chuyển. Cách thức đúng đắn của người Viking đã di chuyển khá đáng kể kể từ đó. Tôi sẽ nhanh chóng tóm tắt lại cách mọi thứ đã thay đổi trong những năm qua. 1. Cài đặt thủ công PHP, MySQL và ApacheNếu, giống như tôi, bạn đã đủ tuổi để phát triển các trang web vào những năm 90, bạn sẽ nhớ trải nghiệm bực bội như thế nào. Trước đó, nếu bạn thuộc thiểu số, người đã không phát triển trên máy chủ web trực tiếp (vâng, chúng tôi thực sự đã làm điều này, vâng, đó là một ý tưởng khủng khiếp), bạn sẽ cài đặt thủ công Apache, PHP và MySQL trên máy phát triển của bạn. Nhận được một môi trường phát triển được thiết lập yêu cầu chuyên môn quan trọng. Bạn cần biết cách định cấu hình máy chủ web, cách định cấu hình PHP và bạn phải trải qua quá trình cài đặt thủ công và định cấu hình tất cả các phần mềm bạn đã sử dụng. Đây là một nhiệm vụ tốn thời gian và khó khăn theo cách riêng của nó đối với các nhà phát triển mới làm quen. 2. Các gói được cấu hình sẵn như XAMPPĐến đầu những năm 2000, mọi người đã bắt đầu tập hợp tất cả các phần mềm cần thiết trong một gói duy nhất được cài đặt và cấu hình tất cả các phần mềm bạn cần. Các gói này là những thứ như XAMPP và WAMP, và chỉ bằng một nút bấm, họ đã cho bạn một môi trường phát triển có thể sử dụng. Nếu bạn quanh quẩn với các nhóm Facebook PHP khác nhau, bạn sẽ thấy rằng một phần đáng kể các nhà phát triển mới vẫn theo hướng dẫn từ thời đại này và một số lượng lớn các nhà phát triển hiện tại không bao giờ tiếp tục, vì vậy XAMPP vẫn được sử dụng khá rộng rãi. Nếu điều này mô tả bạn, thì đó là thời gian để tiếp tục. Sử dụng XAMPP làm cho nó rất dễ dàng để có được một môi trường phát triển web và chạy trên máy của bạn. Bài viết của Bruno, phác thảo các vấn đề với phương pháp này, nhưng vấn đề chính xảy ra khi bạn muốn đưa trang web của mình trực tiếp lên web. Các phiên bản của PHP, MySQL và Apache (hoặc NGINX) có thể khác với các phiên bản bạn đã cài đặt như một phần của gói XAMPP của bạn. Ngoài ra, có một vài sự khác biệt nhỏ, nhưng bực bội, giữa Windows và Linux. Nếu bạn đang phát triển trang web của mình trên máy Windows và tải nó lên máy chủ Linux, một số mã của bạn có thể không hoạt động khi nó được tải lên. 3. Máy ảo và VagrantVào cuối những năm 2000 và đầu năm 2010, xu hướng của các nhà phát triển là chuyển sang một máy ảo. Ý tưởng là bạn có thể chạy một bản sao của hệ điều hành máy chủ web thực sự với tất cả các chương trình đã cài đặt - cùng cấu hình và thiết lập chính xác như máy chủ web thực tế mà bạn sẽ cuối cùng triển khai trang web của mình. Bằng cách đó, khi bạn làm cho trang web trực tiếp, không có cơ hội để nó không hoạt động. Trong khi nhiều lập trình viên nhìn thấy lợi ích của một môi trường như vậy, thì khó khăn và thời gian cần thiết để thiết lập điều này có nghĩa là ít người đã làm. Đó là cho đến khi những công cụ mơ hồ (và các công cụ liên quan như Puphpet) xuất hiện và lấy tất cả những rắc rối ra khỏi làm như vậy. Hãy xem bài viết mà tôi đã liên kết với trước đó để mô tả tuyệt vời về các máy ảo, Vagrant và lợi ích của việc thiết lập môi trường phát triển theo cách này. 4. DockerTất cả nền tảng này đưa chúng ta đến ngày hôm nay và lý do cho bài viết này. Nếu Vagrant là rất lớn, tại sao lại sử dụng thứ khác? Những lợi ích chính của môi trường ảo được thiết lập bằng cách sử dụng Vagrant là:
Thật dễ dàng để biết lý do tại sao các nhà phát triển muốn điều này. Thực hiện bước tiếp theo để Docker giữ những lợi ích này trong khi tránh một số nhược điểm của môi trường máy móc/ảo. Điều gì sai với Vagrant?Mặc dù có những lợi ích, một môi trường phát triển dựa trên tầm thường giới thiệu các hạn chế và vấn đề của riêng mình.
Mặc dù các điểm 5 và 6 có thể được khắc phục trên máy phát triển bằng cách chạy các máy ảo Vagrant khác nhau, nhưng bạn sẽ cần một máy chủ web thực sự phản ánh mỗi cấu hình mà bạn đang chạy để các trang web hoạt động khi bạn tải lên chúng. Giới thiệu DockerDocker giải quyết tất cả các vấn đề được liệt kê ở trên. Nhưng Docker là gì và nó hoạt động như thế nào? Hãy bắt đầu với phần giới thiệu từ Wikipedia:
Trước khi quá kỹ thuật, lợi ích thực tế đối với chúng tôi vì các nhà phát triển web là Docker cho phép chúng tôi đóng gói mọi thứ mà trang web cần, tất cả mã PHP cùng với Php Executable, MySQL Server và Nginx Server ngoài các tệp cấu hình được sử dụng bởi các tệp được sử dụng bởi các tệp được sử dụng bởi các tệp được sử dụng bởi chương trình. Tất cả các mã trang web và các phiên bản chính xác của các chương trình cần thiết để chạy mã đó, được đóng gói cùng nhau, một cách hiệu quả như một ứng dụng duy nhất. Toàn bộ ứng dụng này sau đó có thể được chạy trên bất kỳ hệ điều hành. Khi ai đó chạy ứng dụng được đóng gói, PHP, MySQL, NGINX và tất cả các tệp PHP bạn đã viết đều được nhúng trong chính ứng dụng. Thậm chí tốt hơn, các phiên bản MySQL, NGINX và PHP chính xác là một phần của gói. Khi bạn chạy ứng dụng, các phiên bản chính xác của các công cụ mà ứng dụng được phát triển được tải xuống được tải xuống và cài đặt. Đây là một máy ảo đã làm gì? Tôi nghe bạn hỏi. Đúng vậy, nhưng có một sự khác biệt lớn giữa cách cài đặt phần mềm Vagrant và Docker xử lý. Với Vagrant, chạy một máy ảo, hệ điều hành hoàn chỉnh với phiên bản PHP cụ thể, phiên bản MySQL và cấu hình máy chủ (thường là) được nhân bản từ máy chủ web thực. Khi máy chủ được cập nhật, máy ảo cũng phải được cập nhật. Tuy nhiên, khi sử dụng Docker, phiên bản PHP/MySQL/NGINX được cung cấp dưới dạng một gói duy nhất được gọi là hình ảnh và máy chủ có thể chạy nhiều hình ảnh khác nhau như bạn muốn. Lợi ích ở đây là máy chủ web và máy phát triển của bạn đều chạy cùng một hình ảnh. Bạn chỉ cần tải hình ảnh của mình lên máy chủ web, chạy toàn bộ ứng dụng ở đó và trang web của bạn không cần bất kỳ cấu hình máy chủ web nào. Ngoài ra, mỗi hình ảnh hoàn toàn tách biệt với hình ảnh khác trên máy chủ. Mỗi hình ảnh (một trên mỗi trang web trong ví dụ đơn giản hóa này) tách biệt với nhau. Mỗi trang web sẽ có cấu hình NGINX của riêng mình, 7 riêng và cài đặt của riêng PHP và MySQL. Mỗi trang web có thể chạy hoàn toàn các phiên bản PHP khác nhau. Bạn thậm chí có thể có một trang web chạy trên Apache và một trang web đang chạy trên Nginx, trên cùng một máy. Ngay cả khi bạn đang chạy hai trang web NGINX khác nhau, bạn sẽ có hai quy trình NGINX khác nhau, với cấu hình riêng của chúng, chạy cùng một lúc.Điều này có một bộ nhớ nhỏ trên đầu, nhưng tính linh hoạt mà nó cấp cho điều này làm cho sự đánh đổi rất đáng giá:
Thiết lập mọi thứ lênĐó là lý thuyết ra khỏi đường đi. Bây giờ, hãy để nhảy vào và tạo một máy chủ bằng Docker. Điều kiện tiên quyếtTrước khi chúng tôi bắt đầu, bạn sẽ cần tải xuống và cài đặt Docker. Truy cập trang web Docker, sau đó tải xuống và cài đặt nó cho hệ điều hành của bạn. Nếu bạn sử dụng Linux, bạn nên cài đặt các gói 7 và 8 thông qua trình quản lý gói phân phối của bạn. Tùy thuộc vào phân phối của bạn, bạn có thể cần:
Nếu bạn trên Windows hoặc MacOS, trình cài đặt sẽ làm điều này cho bạn. Thứ hai, vì chúng tôi sẽ chạy một máy chủ web bên trong Docker và chuyển tiếp một số cổng nếu bạn đã có máy chủ web (Apache, Nginx, XAMPP, IIS, v.v.) hoặc MySQL chạy trên máy của bạn, hãy dừng chúng trước khi tiếp tục. Bắt đầuMột máy chủ web thường bao gồm nhiều chương trình khác nhau - chẳng hạn như NGINX, PHP và MySQL. Trong thuật ngữ Docker, mỗi chương trình bạn muốn cài đặt là một dịch vụ.service. Có một số cách tạo ra các dịch vụ này trong Docker. Tôi sẽ bao gồm những người dùng thân thiện nhất. Docker hỗ trợ tạo tệp cấu hình bằng YAML (còn là một ngôn ngữ đánh dấu khác). Mặc dù bạn có thể nhập tất cả các tùy chọn trên dòng lệnh, tôi khuyên bạn nên sử dụng tệp cấu hình YAML vì nhiều lý do:
version: '3' services: web: image: nginx:latest ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/conf.d/nginx.conf - ./app:/app 3 cho nginxDocker cung cấp một công cụ có tên 8 lấy tệp cấu hình có tên 3 và khởi chạy các dịch vụ được liệt kê bên trong nó. Hãy bắt đầu bằng cách thêm một máy chủ web, nginx.Đầu tiên, tạo một thư mục ở đâu đó trên máy tính của bạn sẽ lưu trữ trang web của bạn. Bạn cần phải quay lại thư mục này thường xuyên để nhớ nó ở đâu. Tạo 3 với các nội dung sau:
Chúng ta hãy xem qua cấu hình một dòng tại một thời điểm:
Điều này cho 8 phiên bản của đặc tả YAML nào sẽ sử dụng. 8 là phiên bản mới nhất và các phiên bản khác nhau có thông số kỹ thuật, từ khóa và cấu trúc hơi khác nhau.Dòng tiếp theo, 9, sẽ được theo sau bởi một danh sách tất cả các dịch vụ bạn muốn chạy.Trong ví dụ của chúng tôi cho đến nay, chỉ có một dịch vụ gọi là 0 (bạn có thể gọi đây là bất cứ thứ gì bạn thích) bằng cách sử dụng hình ảnh nginx chính thức 1. Lưu ý rằng các thụt lề sử dụng các không gian (không phải tab!) Vấn đề. YAML dựa vào cấp độ lồng để xác định cấu trúc của tệp.Nếu bạn muốn chỉ định một phiên bản NGINX khác, bạn có thể chỉ định rằng ở đây như vậy:
Tôi khuyên bạn nên sử dụng 2 trừ khi bạn có lý do chính đáng để sử dụng phiên bản trước đó.Khối 3 thiết lập chuyển tiếp cổng. Nó chuyển tiếp 4 trên máy cục bộ đến 4 trên hình ảnh. Bất kỳ yêu cầu nào trên máy chủ để 6 sẽ được chuyển tiếp đến máy chủ Nginx đang chạy trong container.Chạy dịch vụĐể khởi động máy chủ, bạn sẽ cần mở một thiết bị đầu cuối trong hệ điều hành của mình và trỏ nó vào thư mục chứa tệp 3 của bạn. Trên Windows 10, phương pháp đơn giản nhất là sử dụng File Explorer (trước đây được gọi là Windows Explorer và không bị nhầm lẫn với Internet Explorer). Điều hướng đến thư mục chứa 3 của bạn, sau đó nhấp vào Tệp và sau đó mở Windows PowerShell. Trên Linux, hầu hết các trình quản lý tệp đều có thiết bị đầu cuối mở ở đây hoặc nút tương tự. Trên macOS, bạn sẽ cần bật tùy chọn này trước.Khi bạn có thiết bị đầu cuối của bạn mở tại đúng vị trí, hãy nhập 9. Bạn sẽ thấy đầu ra tương tự như hình ảnh dưới đây.Nếu bạn nhận được bất kỳ thông báo lỗi nào, hãy kiểm tra xem Docker có được cài đặt và chạy chính xác không. Nếu bạn thấy đầu ra như trên, bạn có thể kết nối với máy chủ bằng cách truy cập http://127.0.0.1 trong trình duyệt của bạn. Nếu nó hoạt động, bạn sẽ thấy trang thử nghiệm Nginx, như hình dưới đây. Tại sao không phải Apache?Trước khi chúng tôi tiếp tục, bạn có thể tự hỏi tại sao tôi không sử dụng Apache ở đây. Nếu bạn đã sử dụng XAMPP hoặc gói tương tự, máy chủ web mà bạn sử dụng là Apache. Máy chủ web là một phần của máy chủ lắng nghe các yêu cầu từ trình duyệt web và gửi các tệp. Apache vẫn ổn, và nó hoạt động, nhưng nó đã tồn tại mãi mãi. Khi Apache được tạo, web là một nơi rất khác. Apache là lớn, và có rất nhiều tính năng khác nhau đã đến và biến mất - nhưng Apache vẫn hỗ trợ. Web đã thay đổi rất nhiều kể từ khi Apache được tạo và mặc dù nó là một máy chủ có khả năng và sẽ hoạt động tốt, hầu hết các trang web ngày nay có xu hướng sử dụng nginx. Nó dễ dàng hơn để định cấu hình, nhẹ hơn và được điều chỉnh tốt hơn cho các loại nhiệm vụ mà rất nhiều trang web hiện đại sử dụng (như phát trực tuyến video) và do đó, thị phần của nó đang phát triển nhanh chóng với chi phí của Apache. Lời khuyên chung của tôi là: Nếu bạn đã có một trang web chạy Apache, thì không có lý do gì để trải qua rắc rối khi thay đổi nó, nhưng nếu bạn bắt đầu một dự án mới từ đầu, hãy sử dụng Nginx. Đặt tệp trên máy chủBây giờ máy chủ đã được cài đặt và chạy qua Docker, chúng tôi có thể hiển thị các tệp của chúng tôi trên máy chủ. Nếu bạn đã từng sử dụng Apache, bạn sẽ đặt chúng vào thư mục 0, 1 hoặc 2 ở đâu đó trên máy tính của bạn.Khi máy chủ đang chạy trong một thùng chứa, nó không có quyền truy cập vào bất kỳ tệp nào trên máy tính của bạn. Tuy nhiên, Docker cho phép bạn chỉ định một âm lượng - một tệp hoặc thư mục trên máy tính của bạn mà chia sẻ với container. Bạn sẽ cần hai tập: tệp cấu hình 5 (mà chúng tôi đã tạo ra) và một thư mục sẽ lưu trữ các tệp trang web của bạn. Sửa đổi 3 của bạn để bao gồm hai 5:
Điều này làm cho tệp 5 và 7 từ cùng một thư mục với 3 của bạn có sẵn trong container. Bất kỳ thay đổi nào bạn thực hiện đối với các tệp trong tập đều được thay đổi ngay lập tức trong thùng chứa và các tệp được chia sẻ giữa chúng.Tệp 5 từ máy chủ được đặt tại 0 bên trong container. Đây là thư mục trong đó Nginx đọc các tệp cấu hình từ. Thư mục 7 được tạo ở gốc của container trong 2 và là nơi bạn sẽ đặt tất cả các tập lệnh, hình ảnh và tệp JavaScript của trang web của bạn.Trước khi khởi động lại máy chủ, hãy tạo tệp 5 trong cùng thư mục với 3 của bạn với các nội dung sau:
Điều này nói với Nginx rằng đây là cấu hình mà nó nên sử dụng cho máy chủ mặc định và nó sẽ phục vụ các tệp từ thư mục 5. Chúng tôi chỉ có thể phục vụ các tệp từ thư mục 2, nhưng đó là cách thực hành tốt để giữ cho hầu hết các tệp PHP ra khỏi thư mục có thể truy cập công khai. Vì các tập lệnh PHP sẽ cần tải các tệp bằng 7, chúng tôi sẽ đặt thư mục công khai của chúng tôi xuống một cấp.Để kiểm tra nó hoạt động, hãy tạo một trang Hello Hello, thế giới tại 8, tạo các thư mục khi bạn đi. Nội dung có thể như vậy:
Khởi động lại máy chủ bằng cách quay lại thiết bị đầu cuối của bạn và nhấn 9 để dừng máy chủ, sau đó chạy lệnh 9 một lần nữa để khởi động lại nó. (Bạn có thể nhấn mũi tên lên và sau đó nhập thay vì gõ lại.)Tải lại http://127.0.0.1 trong trình duyệt của bạn và bạn sẽ thấy lời chào, thế giới của bạn! trang thử nghiệm. Bây giờ bạn có một máy chủ web hoạt động với các tệp của bạn đang được phục vụ trên http://127.0.0.1 từ thư mục 1 của bạn.PHPNếu bạn muốn chạy các tập lệnh PHP, bạn sẽ cần thêm một dịch vụ khác cho PHP trong 3 của bạn và liên kết nó với 3:
Có một dịch vụ mới, 4, đang sử dụng hình ảnh 5. Đối với Nginx, bạn sẽ cần sử dụng gói 6 (Trình quản lý quy trình FASTCGI), nhưng bạn có thể chọn bất kỳ phiên bản PHP nào bạn thích - chẳng hạn như 7, 8, 9. Nếu bạn không chỉ định một phiên bản và chỉ sử dụng 0, nó sẽ sử dụng phiên bản mới nhất - tại thời điểm viết, là 1.Vì PHP sẽ cần truy cập các tệp 2 của bạn từ thư mục 2, bạn sẽ cần gắn âm lượng trong hình ảnh PHP giống như cách bạn đã làm cho hình ảnh nginx. PHP không cần truy cập vào tệp cấu hình 5, do đó, không cần phải cung cấp cho nó quyền truy cập vào nó.Thư mục 7 hiện có thể truy cập trên máy chủ và trong các thùng chứa 3 và 4.Trước khi khởi động lại máy chủ với 9, chúng tôi cần định cấu hình Nginx để chạy các tệp 2 thông qua dịch vụ PHP. Mở 5 của bạn và thay đổi nó thành phần sau:
Dòng 1 bảo máy chủ tìm kiếm 2 thay vì 3 làm trang mặc định. Khối 4 hướng dẫn Nginx chạy bất kỳ tệp nào với tiện ích mở rộng 2 thông qua dịch vụ PHP ( 6, trong đó 4 là tên của dịch vụ được cấu hình trong 3).Tạo tệp 9 tại 00:
Khởi động lại máy chủ bằng cách nhấn 9 trong thiết bị đầu cuối của bạn và chạy lại lệnh 9. Nếu mọi thứ được thiết lập chính xác, khi bạn truy cập http://127.0.0.1, bạn sẽ thấy đầu ra 03:Giả sử trang web của bạn đang sử dụng MySQL, nếu bạn xem qua trang 03, bạn sẽ nhận thấy rằng không có trình điều khiển PHP MYSQL nào được cài đặt. Chúng tôi sẽ muốn cài đặt gói PDO trong PHP.Điều này phức tạp hơn một chút, vì chúng ta cần cài đặt các gói trong hình ảnh. May mắn thay, hình ảnh PHP chính thức chứa một kịch bản để làm điều đó. Chúng tôi sẽ sử dụng hình ảnh 0 chính thức làm cơ sở và cài đặt trình điều khiển PDO MySQL vào đó. Điều này đòi hỏi phải xây dựng hình ảnh của chúng ta, nhưng điều đó không khó như nó.Đầu tiên, sửa đổi 3 của bạn để hướng dẫn nó xây dựng hình ảnh cho PHP thay vì sử dụng hình ảnh 0 hiện có:
Thay vì một mục 08, hiện tại có một dòng 09 theo 4. Chỉ thị 11 là thư mục mà tệp cấu hình nằm trong trường hợp của chúng tôi là 12, thư mục hiện tại (cùng thư mục với 3 của chúng tôi) và 14 là tên của tệp chúng tôi sẽ sử dụng để xây dựng hình ảnh của chúng tôi.Tạo 15 trong cùng một thư mục với 3 của bạn và thêm các mục sau: 0Điều này sẽ cài đặt tiện ích mở rộng 17 cho PHP. Chỉ thị 18 nói với Docker rằng nó nên sử dụng 0 làm hình ảnh cơ sở và chỉ thị 20 được sử dụng để chạy các lệnh bên trong hình ảnh. Bạn có thể chạy bất kỳ lệnh Linux ở đây. Trong trường hợp này, chúng tôi đang chạy tập lệnh 21, được cung cấp thuận tiện như một phần của gói PHP chính thức và cho phép chúng tôi cài đặt các tiện ích mở rộng PHP.Nếu bạn muốn sử dụng thư viện MySQLI (mặc dù bạn có thể nên sử dụng PDO), bạn có thể cài đặt nó thay vì hoặc bên cạnh PDO: 1Khởi động lại máy chủ của bạn bằng lệnh 9. Lần này, bạn sẽ thấy đầu ra nhiều hơn khi nó xây dựng hình ảnh. Nó sẽ chỉ làm điều này trong lần đầu tiên bạn chạy 9. Tuy nhiên, nếu bạn thực hiện bất kỳ thay đổi nào đối với 15 trong tương lai, bạn sẽ cần phải xây dựng lại nó theo cách thủ công bằng cách chạy lệnh 25.Bạn có thể xác minh rằng tiện ích mở rộng 17 đã được cài đặt bằng cách xem đầu ra 03 trên http://127.0.0.1.Trong khi chúng tôi cài đặt các tiện ích mở rộng, hãy để thêm tiện ích mở rộng 28 cho các thông báo lỗi đẹp hơn trên máy chủ phát triển của chúng tôi: 2 28 được cài đặt qua 30, được cung cấp như một phần của hình ảnh PHP chính thức. Xây dựng lại hình ảnh với 25, sau đó khởi động lại máy chủ bằng 9. Đầu ra của 03 sẽ cho thấy cả 17 và 28 đều được cài đặt.MysqlBây giờ chúng tôi đã sẵn sàng để cài đặt MySQL. Một lần nữa, chúng tôi sẽ thêm nó dưới dạng dịch vụ trong 3. Tuy nhiên, thay vì cài đặt hình ảnh MySQL chính thức, chúng tôi sẽ sử dụng Mariadb, một sự thay thế thả vào với các điều khoản cấp phép trong tương lai có khả năng tốt hơn hiện tại mà MySQL thuộc sở hữu của Oracle. Nếu bạn đã sử dụng MySQL trước đây, Mariadb sẽ hoạt động giống nhau: 3Hình ảnh chúng tôi sử dụng là 37. Như với NGINX và PHP, nếu bạn muốn bạn có thể chỉ định một phiên bản cụ thể của Mariadb tại đây.Lần này, có một khối 38, được sử dụng để truyền một số biến cho container khi nó tạo ra. Chúng được sử dụng để định cấu hình cơ sở dữ liệu với các tùy chọn sau. Đặt các giá trị của riêng bạn cho các biến sau:
Ví dụ trên tạo cơ sở dữ liệu có tên 44, có thể truy cập bằng cách sử dụng người dùng 44 và mật khẩu 46.Bạn cũng sẽ nhận thấy rằng có một mục 5 ở phía dưới. Điều này tạo ra một loại âm lượng đặc biệt được ánh xạ vào hệ thống tập tin cục bộ. Đây sẽ là nơi lưu trữ dữ liệu cho MySQL - tất cả các bảng, bản ghi của bạn, v.v.Lý do chúng tôi không muốn sử dụng một thư mục trong hệ thống tệp cục bộ là khi ứng dụng được tải lên một máy chủ web thực, bạn không muốn ghi đè lên cơ sở dữ liệu thực với bản thử nghiệm của bạn. Tất cả các hồ sơ môi trường thử nghiệm/phát triển của bạn sẽ được lưu trữ ở đây. Điều này cho phép bạn có một cơ sở dữ liệu khác trên máy chủ trực tiếp và máy chủ phát triển khi bạn đến tải lên trang web của mình. Cuối cùng, khối 3 hiển thị cổng 3306 để chúng tôi có thể kết nối với nó với một máy khách như MySQL Workbench để quản lý cơ sở dữ liệu. Tôi thực sự khuyên bạn nên sử dụng điều này qua phpmyadmin nếu đó là những gì bạn đã từng sử dụng, mặc dù bạn có thể đặt phpmyadmin vào thư mục 1 và chạy nó từ đó nếu bạn muốn.Khởi động lại máy chủ của bạn. Sẽ mất một hoặc hai phút để tải xuống và định cấu hình Mariadb lần đầu tiên. Sau đó, trong tập lệnh PHP, hãy thử kết nối với MySQL với PDO và tên người dùng, mật khẩu và cơ sở dữ liệu đã chọn của bạn: 4Chạy tập lệnh này trên máy chủ. Nếu bạn thấy phiên bản MySQL và không có thông báo lỗi nào, bạn sẽ kết nối với máy chủ MySQL của mình và tất cả đều được thiết lập chính xác. Done!Như bạn vừa khám phá ra, Docker có một chút thiết lập nếu bạn tự làm. Nếu bạn sử dụng các tệp cấu hình 3 và cấu hình hiện có, nó có thể chỉ là một vài lệnh.Khi bạn trực tiếp trang web của mình, bạn sẽ chỉ tải lên toàn bộ dự án, bao gồm 3, 5 và 15, chạy 54 trên máy chủ (cờ 55 chạy nó làm dịch vụ trong nền) và nó sẽ chạy chính xác trang web bạn 'Nhìn lại trên máy phát triển của bạn! Bạn đã giành chiến thắng cần thiết lập thủ công và cài đặt PHP, Mariadb và Nginx trên máy chủ web.Một khi bạn hiểu được nó, bạn sẽ không bao giờ nhìn lại. Docker làm cho quá trình phát triển một trang web đơn giản hơn rất nhiều vì mọi thứ đều được khép kín. Tl; dr! Chỉ cần cho tôi các tập tin!Nếu bạn chỉ muốn khởi động một máy chủ với cấu hình được hiển thị ở đây, hãy làm theo các bước sau:
Chúng ta có thể sử dụng Docker cho PHP không?Sử dụng Docker với PHP (và hơn thế nữa!), Trình khởi chạy mã PHP được cấu hình để sử dụng Docker. Docker là phần mềm container hóa có thể giúp bạn đóng gói và triển khai các ứng dụng của mình trong môi trường nhà phát triển nhất quán.The DocuSign PHP code example launcher is configured to use Docker. Docker is containerization software that can help you package and deploy your applications in a consistent developer environment.
Docker có thể được sử dụng để phát triển không?Docker là một dự án nguồn mở tự động hóa sự phát triển, triển khai và chạy các ứng dụng bên trong các thùng chứa bị cô lập.Các container cho phép các nhà phát triển gói một ứng dụng với tất cả các bộ phận cần thiết, chẳng hạn như thư viện và các phụ thuộc khác, và gửi nó như một gói.. Containers allow developers to bundle up an application with all of the parts it needs, such as libraries and other dependencies, and ship it as one package.
Tôi có nên sử dụng Docker cho Laravel không?Docker hoàn toàn không bắt buộc để chạy Laravel!Mọi người đã chạy Laravel trong nhiều năm mà không có Docker, và tiếp tục làm như vậy.Docker chỉ là một tùy chọn bổ sung để có được một nhà phát triển và chạy cho những người không muốn cài đặt thủ công và định cấu hình PHP, Apache, v.v.! People have been running Laravel for years without Docker, and continue to do so. Docker is just an extra option to get a dev env up and running for people who don't want to manually install and configure PHP, Apache and so on.
Docker có tốt cho các ứng dụng web không?Docker cho phép bạn có được nhiều ứng dụng riêng lẻ chạy trên cùng số lượng máy chủ như các công nghệ khác.Nó làm cho việc phát triển các ứng dụng được đóng gói, sẵn sàng để chạy trở nên dễ dàng-cung cấp mọi thứ trong 'Container' chứa tất cả các thư viện và phụ thuộc cho một ứng dụng.. It makes developing encapsulated, ready-to-run applications a breeze – delivering everything in 'containers' that hold all libraries and dependencies for an app. |