Docker nginx + php-fpm
Mục tiêu mà chúng tôi sẽ cố gắng đạt được là chạy một ứng dụng PHP đơn giản bằng cách sử dụng kho Docker chính thức cho cả PHP và Nginx. Có một số kho lưu trữ docker kết hợp PHP-FPM với Nginx, nhưng tùy thuộc vào kho lưu trữ chính thức sẽ mang lại cho bạn một số lợi ích, chẳng hạn như sử dụng dịch vụ được định cấu hình bởi người bảo trì và bạn luôn có thể chọn giữa phiên bản mới nhất và lớn nhất hoặc phiên bản khác nhau của cả hai dịch vụ, Tất nhiên, điều đầu tiên bạn phải làm là cài đặt Docker (nếu bạn chưa có). Điều kiện tiên quyết thứ hai là tải Docker Compose (có sẵn trong hộp công cụ Mac). Bây giờ chúng ta đã biết mình muốn đạt được điều gì và có các công cụ để đạt được điều đó – hãy bắt tay vào làm Thiết lập NginxChúng tôi sẽ bắt đầu bằng cách tự nhận một máy chủ web và dựa trên các yêu cầu của chúng tôi, đây sẽ là vùng chứa chạy hình ảnh Nginx chính thức. Vì chúng ta sẽ sử dụng Docker Compose nên chúng ta sẽ tạo docker-compose sau. yml, tệp này sẽ chạy hình ảnh Nginx mới nhất và sẽ hiển thị cổng 80 của nó thành cổng 8080
Bây giờ chúng ta có thể chạy
Điều này sẽ cung cấp cho bạn màn hình Nginx mặc định trên cổng 8080 cho máy chủ cục bộ hoặc IP của máy docker của bạn Bây giờ chúng ta có một máy chủ, hãy thêm một số mã. Đầu tiên chúng ta phải cập nhật docker-compose. yml để gắn thư mục cục bộ. Tôi sẽ sử dụng một thư mục có tên code, nằm trong cùng thư mục với docker-compose của tôi. yml và nó sẽ được gắn dưới dạng mã thư mục gốc trong vùng chứa
Bước tiếp theo là cho Nginx biết rằng thư mục này tồn tại
Nếu bạn không có nhiều kinh nghiệm với Nginx, đây là những gì chúng tôi xác định ở đây – chỉ mục. html sẽ là chỉ mục mặc định của chúng tôi, tên máy chủ là php-docker. local và nó phải trỏ (cập nhật tệp máy chủ của bạn) vào môi trường Docker của bạn (máy chủ cục bộ nếu bạn đang sử dụng Linux hoặc máy docker nếu bạn đang sử dụng Mac hoặc Windows), chúng tôi chỉ ra các nhật ký lỗi là những nhật ký được hiển thị bởi bộ chứa mặc định Để kích hoạt thiết lập này, chúng tôi cần áp dụng một sửa đổi khác đối với docker-compose. tập tin yml
Điều này sẽ thêm trang web. conf vào thư mục mà Nginx đang tìm kiếm các tệp cấu hình để đưa vào. Giờ đây, bạn có thể đặt chỉ mục. html trong thư mục mã có nội dung khiến bạn hài lòng. Và nếu chúng ta chạy
một lần nữa, chỉ mục. tệp html phải khả dụng trên php-docker. địa phương. 8080 vâng. Chúng ta đã đi được nửa chặng đường Thêm PHP-FPMBây giờ chúng ta đã thiết lập và chạy Nginx, hãy thêm PHP vào trò chơi. Điều đầu tiên chúng tôi sẽ làm là kéo repo PHP7-FPM chính thức và liên kết nó với bộ chứa Nginx của chúng tôi. docker-compose của chúng tôi. yml sẽ trông như thế này bây giờ
Điều tiếp theo cần làm là định cấu hình Nginx để sử dụng bộ chứa PHP-FPM để diễn giải các tệp PHP. Trang web cập nhật của bạn. conf sẽ trông như thế này
Để kiểm tra điều này, hãy đổi tên chỉ mục. tệp html để lập chỉ mục. php và thay thế nội dung của nó bằng tiêu chuẩn ________số 8_______một trận chung kết
Và chúng ta nên tốt để đi. Nhưng 0Vì PHP đang chạy trong môi trường riêng của nó (vùng chứa) nên nó không có quyền truy cập vào mã. Để khắc phục điều này, chúng ta cũng cần gắn thư mục mã trong bộ chứa PHP. Bằng cách này, Nginx sẽ có thể phục vụ bất kỳ tệp tĩnh nào và PHP sẽ có thể tìm thấy các tệp mà nó phải diễn giải. Một thay đổi cuối cùng đối với docker-compose. yml 1Cuối cùng, lần cuối cùng này (lần này là thật)
cung cấp cho chúng tôi thông tin PHP mong muốn Đây chính là nó Chúng ta có thể chạy bất kỳ ứng dụng PHP đơn giản nào bên trong bộ chứa Docker, sử dụng hình ảnh chính thức cho Nginx và PHP Bạn có thể tìm thấy dự án mẫu tại đây https. //github. com/mikechernev/dockerised-php BIÊN TẬP. Vì kho lưu trữ GitHub đã thay đổi khá nhiều, tôi đã thêm một bài đăng blog mới giải thích các cải tiến - Làm cho ứng dụng PHP dockerised của bạn thậm chí còn tốt hơn |