Docker Php-nginx

Lúc này hay lúc khác, tôi phải tạo một dự án từ đầu, nhưng đôi khi tôi lại lãng phí rất nhiều thời gian chỉ để tạo môi trường, vì vậy để dễ dàng hơn, tôi sẽ để sẵn một số thứ với php và nginx bằng cách sử dụng docker

đọc tôi

Bắt đầu bằng cách thêm một

touch Makefile
6 vào dự án và khi dự án tiến triển, bạn sẽ chỉnh sửa nó cho đến khi nó trông thực sự bắt mắt

touch README.md

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Makefile

Bây giờ, hãy tổ chức docker trong một thư mục mà chúng ta sẽ sử dụng

touch Makefile
7

touch Makefile

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Docker-soạn thảo

Và hãy tạo một thư mục docker và bên trong nó bây giờ chỉ có tệp

touch Makefile
8

mkdir docker && touch docker-composer.yml

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Trong

touch Makefile
9 của tôi, hiện tại chúng tôi sẽ chỉ có nginx và php-fpm

version: "3.9"
name: default
services:
 nginx_default:
   container_name: nginx_default
   image: nginx:1.17.8
   ports:
     - 80:80
   volumes:
     - ./default.conf:/etc/nginx/conf.d/default.conf
     - ../:/var/www
   links:
     - php_default
 php_default:
   container_name: php_default
   build: ./php
   working_dir: /var/www
   volumes:
     - ../:/var/www

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

💡Nhớ là mình thích đổi tên container thành 1 tổ chức nào đó, trong này mặc định là project nên mình sẽ để

mkdir docker && touch docker-composer.yml
0

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 Nginx

Chú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

web:
 image: nginx:latest
 ports:
 - "8080:80"

Bây giờ chúng ta có thể chạy

touch README.md
0

Đ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

touch README.md
1

Bước tiếp theo là cho Nginx biết rằng thư mục này tồn tại.
Hãy tạo trang web sau. conf ở cùng cấp độ với docker-compose. tập tin yml.

touch README.md
2

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 vùng 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

touch README.md
3

Đ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

touch README.md
0

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-FPM

Bâ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ờ

touch README.md
5

Đ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

touch README.md
6

Để 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

touch README.md
7

một trận chung kết

touch README.md
0

Và chúng ta nên đi thôi. nhưng

Thay vì nhận được trang thông tin PHP phù hợp, chúng tôi nhận được thông báo khá đáng lo ngại

touch README.md
00

Vì 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

touch README.md
01

Cuối cùng, lần cuối cùng này [lần này là thật]

touch README.md
0

cung cấp cho chúng tôi thông tin PHP rất được mong đợi


Đây là thông tin.

Chúng tôi 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

CHỈNH SỬA. 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

Làm cách nào để sử dụng PHP với nginx Docker?

Dịch vụ Nginx . Create a folder named PHP with Nginx and open it in Visual Studio Code. Bên trong nó, tạo một tệp có tên docker-compose. yml và viết cái này bên trong nó. Trong Docker Compose, bạn định nghĩa cái gọi là "dịch vụ", sẽ được đại diện bởi các container chạy trên docker.

Tôi có thể chạy PHP trong Docker không?

Bạn có thể sử dụng docker run để tạo vùng chứa và thực thi PHP . Bạn chỉ cần thêm một số khối lượng vào thùng chứa. Các tập này phải bao gồm các đường dẫn đến mã của bạn.

Cách cài đặt PHP 7. 4 trong Docker nginx?

điều kiện tiên quyết
Đăng nhập vào Máy chủ và Cập nhật Gói Hệ điều hành Máy chủ. Đầu tiên, đăng nhập vào Ubuntu 20 của bạn. 04 qua SSH với tư cách là người dùng root. ssh root@IP_Address -p Port_number. .
Cài đặt Nginx. .
Cài đặt PHP7. .
Cài đặt PHP7. .
Định cấu hình Nginx để xử lý tệp PHP. .
Xác minh PHP

Tôi có thể chạy nginx trong Docker không?

Chạy NGINX Plus trong Docker Container . Sự khác biệt giữa việc sử dụng Docker với NGINX Open Source là trước tiên bạn cần tạo một image NGINX Plus, bởi vì NGINX Plus là một sản phẩm thương mại không có sẵn tại Docker Hub. Docker can also be used with NGINX Plus. The difference between using Docker with NGINX Open Source is that you first need to create an NGINX Plus image, because as a commercial offering NGINX Plus is not available at Docker Hub.

Chủ Đề