Cách sử dụng Docker để chứa PHP và Apache

Sau khi bạn có hình ảnh vùng chứa, bạn có thể sử dụng nó ở bất kỳ nơi nào Docker khả dụng, giúp ứng dụng của bạn có thể di động trên các môi trường. Dưới đây là cách chứa một ứng dụng web PHP dựa trên máy chủ Apache

Các biến thể được cấu hình sẵn với Apache được cung cấp, vì vậy bạn sẽ không cần phải tự mình cài đặt máy chủ web. Chúng tôi sẽ sử dụng hình ảnh PHP Docker chính thức làm cơ sở của chúng tôi. Ngoài ra, hình ảnh cơ sở PHP bao gồm các công cụ thiết thực để kiểm soát các phần mở rộng PHP

Tạo một Dockerfile

Tệp

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
6 chứa các hướng dẫn được sử dụng để xây dựng hình ảnh từ đó hình ảnh Docker được tạo. Lệnh
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
0 và
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
1 sao chép tệp và thư mục vào vùng chứa và thực thi lệnh bên trong vùng chứa tương ứng

Sao chép các tệp vào một hình ảnh dựa trên

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
2 sẽ cho phép bạn chạy một trang web PHP cơ bản

FROM php:8.0-apache
WORKDIR /var/www/html

COPY index.php index.php
COPY src/ src
EXPOSE 80

Giờ đây,

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
4 và
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
5 của thư mục làm việc đã được sao chép vào thư mục gốc của tài liệu Apache, bạn có thể tạo hình ảnh và khởi chạy một bộ chứa từ nó bằng cách sử dụng
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
6Bạn sẽ thấy Apache phục vụ trang web của bạn

_10

Gốc tài liệu Apache nằm ở vị trí mặc định của Debian là

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
6 trong hình ảnh PHP Docker. Lệnh
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
7 trong
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
6 hướng dẫn lệnh tiếp theo được thực thi bên trong thư mục gốc của tài liệu

Chỉ thị

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
9 trong
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
6 chỉ ra rằng Apache tự hiển thị trên cổng máy chủ web tiêu chuẩn là 80. Bạn có thể sử dụng cờ
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
01 với
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
02 để tự động liên kết một cổng máy chủ ngẫu nhiên với cổng 80 của vùng chứa bằng cách hiển thị cổng một cách rõ ràng

Tùy chỉnh cấu hình Apache

Các hình ảnh PHP/Apache chính thức dựa trên Debian;

Cách sử dụng Docker để chứa PHP và Apache
Thông tin liên quan để sử dụng Cron với Docker Container

Bạn cũng có toàn quyền truy cập vào các công cụ tích hợp sẵn của Apache mà bạn có thể sử dụng để tương tác với các máy chủ ảo và quản lý các mô-đun bằng cách sử dụng lần lượt là

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
04/
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
05 và
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
06/
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
07

Giá trị mặc định cho tệp cấu hình Apache là

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
08. Để thay đổi giá trị này, hãy thêm các dòng vào tệp hiện có hoặc thay thế hoàn toàn

Việc đặt Apache

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
09 sẽ loại bỏ rõ ràng cảnh báo "không thể xác định tên máy chủ một cách đáng tin cậy" thường xuất hiện trong nhật ký vùng chứa của bạn

Ngoài ra, thông thường bạn sẽ muốn thêm máy chủ ảo Apache của riêng mình, máy chủ này cho phép bạn định cấu hình hệ thống của mình khác với những gì trang web Apache _1190 cung cấp. Đây là cách thực hiện những thay đổi đó

________mười

Trong ví dụ này, trang mặc định bị tắt, trang tùy chỉnh được bật và Apache được khởi động lại để các thay đổi có hiệu lực. Mô-đun

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
91 cũng được bật, cho phép sử dụng chỉ thị
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
92 trong tệp
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
93. Nếu cấu hình của bạn sẽ hoạt động với các tiêu đề phản hồi, bạn cũng có thể muốn kích hoạt các mô-đun khác, chẳng hạn như ___194

Thêm phần mở rộng PHP

Một số tiện ích mở rộng được bật theo mặc định trong hình ảnh PHP Docker và bạn có thể xem những tiện ích mở rộng nào có sẵn bằng cách chạy

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
95 bên trong vùng chứa đang chạy

Cài đặt nhiều tiện ích mở rộng phổ biến sử dụng _

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
96

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
9

Trước khi có thể cài đặt một số tiện ích mở rộng, trước tiên chúng phải được định cấu hình. Bạn có thể sử dụng

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
97 để thực hiện cấu hình cài đặt sẵn. Đọc trang hướng dẫn của tiện ích mở rộng để tìm hiểu tùy chọn nào khả dụng và cờ nào bạn có thể cung cấp

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
9

Ngoài ra, bạn có thể sử dụng các tiện ích mở rộng do PECL phân phối, có quy trình cài đặt hai bước. Sử dụng _

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
98 để đăng ký tiện ích mở rộng với bản cài đặt PHP của bạn sau khi cài đặt gói PECL trước

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
1

Cấu hình PHP

Thêm tệp

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
90 của riêng bạn vào thư mục này. Hình ảnh Docker được cấu hình sẵn để tải các tệp cấu hình PHP nằm trong
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
99. Đây là phương pháp được đề xuất để sửa đổi cấu hình mặc định vì PHP sẽ bao gồm nội dung của nó khi chạy, thay thế mọi giá trị hiện tại

Biến môi trường

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
91 có thể được sử dụng để xác định vị trí hiện tại của đường dẫn thư mục cấu hình, vị trí này có thể thay đổi trong tương lai. Hiện tại, nó trả về
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
99

Cách chạy các ứng dụng GUI trong Docker Container được liên kết

Sử dụng Trình soạn thảo

Composer là một dự án cộng đồng tồn tại riêng biệt với PHP và không có sẵn theo mặc định. Để sử dụng nó trong bộ chứa Docker, bạn phải cài đặt thủ công

Sử dụng

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
93 để đưa tệp nhị phân Trình soạn thảo vào bộ chứa PHP của bạn;

FROM php:8.0-apache
WORKDIR /var/www/html

COPY index.php index.php
COPY src/ src
EXPOSE 80
7

Bạn không cần tải xuống và chạy tập lệnh cài đặt Trình soạn thảo, giúp giảm độ phức tạp. Docker sẽ kéo hình ảnh và sau đó sao chép tệp nhị phân của Trình soạn thảo bằng cách tham khảo

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
94

Tập lệnh điểm vào tùy chỉnh

Bạn có thể ghi đè bộ chứa

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
95 để sử dụng trình tự khởi động của riêng mình, nhưng bạn có thể cần sử dụng tập lệnh điểm nhập tùy chỉnh nếu muốn thực hiện di chuyển ứng dụng trước khi khởi chạy thời gian chạy máy chủ chính

Việc thực thi

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
96 sẽ chạy Apache ở nền trước, ngăn vùng chứa thoát ra sau khi tập lệnh điểm vào hoàn tất, cho phép quá trình thực thi vùng chứa tiếp tục như bình thường

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
1

_

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
97 nội dung

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
3

Cách thiết lập Docker và Docker Compose trên Linux có liên quan

Sự kết luận

Khi sử dụng các hình ảnh chính thức, thật đơn giản để định cấu hình Apache và PHP với các tiện ích mở rộng và tệp cấu hình của riêng bạn cho dịch vụ web PHP

Theo mặc định, các addon cộng đồng của bên thứ ba như Composer không được bao gồm, vì vậy bạn sẽ cần sử dụng các bản dựng Docker nhiều giai đoạn hoặc quy trình cài đặt thủ công. Rất có thể bạn sẽ gặp sự cố khi cố gắng sử dụng những thứ này, vì vậy hãy chuẩn bị

Với hình ảnh của mình, bạn có thể tăng cường cài đặt chức năng cho trang web của mình chỉ bằng cách sử dụng

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
98 và
docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
02 trong thiết bị đầu cuối của mình, giúp ứng dụng của bạn linh hoạt về cách thức và vị trí được triển khai

Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách Sử dụng Docker để Containerize PHP và Apache. Docker là một nền tảng phần mềm cho phép bạn xây dựng, thử nghiệm và triển khai các ứng dụng một cách nhanh chóng. Docker đóng gói phần mềm thành các đơn vị được tiêu chuẩn hóa gọi là bộ chứa có mọi thứ mà phần mềm cần để chạy bao gồm thư viện, công cụ hệ thống, mã và thời gian chạy

Sử dụng Docker, bạn có thể nhanh chóng triển khai và mở rộng ứng dụng vào bất kỳ môi trường nào và biết mã của bạn sẽ chạy. Việc chạy Docker trên AWS cung cấp cho các nhà phát triển và quản trị viên một cách có độ tin cậy cao, chi phí thấp để xây dựng, vận chuyển và chạy các ứng dụng phân tán ở mọi quy mô. Dưới đây chúng tôi đã đề cập đến các bước Sử dụng Docker để Containerize PHP và Apache

Sử dụng Docker để chứa PHP và Apache

Tạo một Dockerfile

  • Hình ảnh Docker được tạo từ tệp Docker. Tệp này chứa các hướng dẫn được sử dụng để tạo hình ảnh. Hướng dẫn bao gồm COPY để sao chép tệp và thư mục vào vùng chứa và CHẠY để chạy lệnh bên trong vùng chứa
  • Bạn có thể chạy một trang web PHP đơn giản bằng cách sao chép các tệp vào một hình ảnh dựa trên php. 8. 0-apache

TỪ php. 8. 0-apacheWORKDIR/var/www/html

SAO CHÉP mục lục. chỉ mục php. phpCOPY src/ srcEXPOSE 80

  • Dockerfile này lấy chỉ mục. php và src từ thư mục làm việc của chúng tôi và sao chép chúng vào thư mục gốc của tài liệu Apache. Bây giờ bạn có thể tạo hình ảnh và khởi chạy một vùng chứa từ nó. Bạn sẽ thấy rằng trang web của bạn được phục vụ bởi Apache

docker build -t my-php-site. muộn nhất. docker chạy -d -p 80. 80 my-php-site. muộn nhất

  • Hình ảnh PHP Docker có gốc tài liệu Apache tại vị trí Debian mặc định /var/www/html. Câu lệnh WORKDIR trong tệp Docker có nghĩa là các lệnh tiếp theo được thực thi trong thư mục gốc của tài liệu
  • Apache tự hiển thị trên cổng máy chủ web mặc định 80 và câu lệnh EXPOSE trong Dockerfile cho biết điều này. Bằng cách hiển thị rõ ràng cổng, bạn có thể sử dụng cờ -P với docker run để tự động liên kết một cổng máy chủ ngẫu nhiên với cổng 80 của vùng chứa

Tùy chỉnh cấu hình Apache

  • Các hình ảnh PHP/Apache chính thức dựa trên Debian. Bạn có thể sử dụng trình quản lý gói apt để thêm phần mềm bổ sung mà bạn cần
  • Bạn cũng có toàn quyền truy cập vào các công cụ tích hợp sẵn của Apache. Bạn có thể sử dụng a2enmod/a2dismod để quản lý các mô-đun và a2ensite/a2dissite để tương tác với máy chủ ảo
  • Theo mặc định, tệp cấu hình Apache nằm trong /etc/apache2/apache2. conf. Thêm các dòng vào tệp này hoặc thay thế hoàn toàn để mở rộng cấu hình Apache
  • Một thay đổi luôn đáng thực hiện là đặt Tên máy chủ Apache một cách rõ ràng. Điều này sẽ ngăn cảnh báo “không thể xác định tên máy chủ một cách đáng tin cậy” thường xuất hiện trong nhật ký bộ chứa của bạn
  • Thông thường, bạn cũng sẽ muốn thêm máy chủ ảo Apache của riêng mình. Điều này cho phép bạn thiết lập cấu hình tùy chỉnh ngoài những gì trang Apache 000 mặc định cung cấp. Đây là cách thực hiện những thay đổi này

SAO CHÉP my-apache-site. conf /etc/apache2/sites-available/my-apache-site. conf

CHẠY echo “Tên máy chủ localhost” >> /etc/apache2/apache2. conf &&a2enmod rewrite &&a2dissite 000-default &&a2ensite my-apache-site &&service apache2 khởi động lại

Trong ví dụ này, trang mặc định bị tắt, trang tùy chỉnh được bật và Apache được khởi động lại để áp dụng các thay đổi. Mô-đun mod_rewrite cũng được kích hoạt và cho phép sử dụng các chỉ thị viết lại trong. tập tin htaccess. Bạn cũng có thể muốn bật các mô-đun khác, chẳng hạn như tiêu đề, nếu bạn muốn cấu hình của mình tương tác với tiêu đề phản hồi

Thêm phần mở rộng PHP

  • Hình ảnh Docker PHP đi kèm với các tiện ích tích hợp để quản lý tiện ích mở rộng. Một số tiện ích mở rộng được bật theo mặc định – bạn có thể kiểm tra những tiện ích mở rộng nào khả dụng bằng cách chạy php -m trong vùng chứa đang chạy
  • Nhiều tiện ích mở rộng phổ biến có thể được cài đặt bằng docker-php-ext-install

docker-php-ext-cài đặt pdo_mysql

  • Một số tiện ích mở rộng cần được định cấu hình trước khi có thể cài đặt chúng. Bạn có thể sử dụng docker-php-ext-configure để thực hiện cấu hình trước khi cài đặt. Các tùy chọn khả dụng khác nhau tùy thuộc vào tiện ích mở rộng. Tham khảo trang hướng dẫn của tiện ích mở rộng để xác định các cờ bạn có thể chỉ định

CHẠY docker-php-ext-configure gd –with-jpeg=/usr/include/ &&docker-php-ext-install gd

  • Bạn cũng có thể sử dụng các tiện ích mở rộng được phân phối qua PECL. Các tiện ích mở rộng này yêu cầu quy trình cài đặt hai bước. Đầu tiên, cài đặt gói PECL và sau đó sử dụng docker-php-ext-enable để đăng ký tiện ích mở rộng với bản cài đặt PHP của bạn

CHẠY apt-get install -y libmcached-dev zlib1g-dev &&pecl install memcached-3. 1. 5 &&docker-php-ext-bật memcached

Cấu hình PHP

  • Các hình ảnh Docker được cấu hình sẵn để tải các tệp cấu hình PHP nằm trong /usr/local/etc/php/conf. d. Thêm của riêng bạn. ini vào thư mục này. PHP sẽ bao gồm nội dung của tệp này khi chạy và ghi đè mọi giá trị hiện có. Đây là cách được đề xuất để mở rộng cấu hình mặc định
  • Đường dẫn đến thư mục cấu hình có thể thay đổi trong tương lai. Bạn có thể xác định vị trí hiện tại bằng cách sử dụng biến môi trường $PHP_INI_DIR. Hiện tại, đường dẫn là /usr/local/etc/php/conf. d

Sử dụng Trình soạn thảo

  • Trình soạn nhạc không khả dụng theo mặc định. Composer là một nỗ lực của cộng đồng tồn tại độc lập với PHP. Bạn cần cài đặt thủ công nếu muốn sử dụng trong Docker container
  • Cách tốt nhất để sử dụng Trình soạn thảo trong các bản dựng của bạn là tham khảo hình ảnh Docker của chính công cụ đó thông qua bản dựng nhiều giai đoạn. Sử dụng COPY –from để đưa tệp nhị phân Composer vào bộ chứa PHP của bạn;

SAO CHÉP –từ=nhà soạn nhạc. 2 /usr/bin/composer /usr/bin/composerCOPY nhà soạn nhạc. nhà soạn nhạc json. nhà soạn nhạc jsonCOPY. nhà soạn nhạc khóa. cài đặt trình soạn nhạc lockRUN –no-dev

  • Cách tiếp cận này làm giảm sự phức tạp. Bạn không cần tải xuống và chạy tập lệnh cài đặt Composer. Bằng cách tham khảo nhà soạn nhạc. 2, Docker kéo hình ảnh và sau đó sao chép tệp nhị phân của Trình soạn thảo

Tập lệnh điểm vào tùy chỉnh

  • Bạn có thể cần sử dụng tập lệnh khởi động tùy chỉnh nếu muốn thực hiện di chuyển ứng dụng trước khi thời gian chạy của máy chủ chính bắt đầu. Bạn có thể ghi đè ENTRYPOINT của vùng chứa để sử dụng trình tự khởi động của riêng bạn
  • Bạn có thể tiếp tục chạy vùng chứa như bình thường bằng cách chạy apache2-foreground. Thao tác này chạy Apache ở nền trước và ngăn không cho vùng chứa thoát ra sau khi tập lệnh điểm vào hoàn tất

ĐIỂM VÀO

ứng dụng php. php my-migration-command # run migrationsservice cron start # start some servicesexec apache2-foreground # thực thi chính

Từ cuối cùng

Chúng tôi hy vọng bạn thích bài viết này về Cách sử dụng Docker để chứa PHP và Apache. Docker cung cấp một cách tiêu chuẩn để chạy mã của bạn. Docker là một hệ điều hành cho container. Tương tự như cách máy ảo ảo hóa phần cứng máy chủ (và loại bỏ nhu cầu quản lý trực tiếp), bộ chứa ảo hóa hệ điều hành của máy chủ. Docker được cài đặt trên mỗi máy chủ và cung cấp các lệnh đơn giản cho phép bạn tạo, bắt đầu và dừng vùng chứa

Làm cách nào để Dockerize ứng dụng PHP của tôi?

Cách Dockerize một ứng dụng PHP .
Tạo một ứng dụng PHP
Viết một Dockerfile
Xây dựng một hình ảnh bằng cách sử dụng Dockerfile
Chạy hình ảnh để có được một thùng chứa có thể sử dụng được
Sử dụng dữ liệu liên tục
Tải trình duyệt và bắt đầu mã hóa

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

Nếu bạn mở công cụ máy tính để bàn Docker, bộ chứa sẽ được thiết lập và chạy . Để đảm bảo vùng chứa được thiết lập để thực thi tập lệnh PHP, hãy mở bài đăng máy chủ lưu trữ cục bộ đã xác định của bạn trong trình duyệt, tôi. e. , http. //máy chủ cục bộ. 8000/. Điều này cho thấy bộ chứa được thiết lập để chạy một số mã dựa trên PHP.

Làm cách nào để sử dụng Docker để Chứa một ứng dụng?

Lệnh 'RUN' sẽ chạy một lệnh. Trong trường hợp này, lệnh 'pip install'. Hướng dẫn 'EXPOSE' sẽ hiển thị cổng 5000 dưới dạng trình kết nối với hình ảnh docker. Cuối cùng, lệnh 'CMD' sẽ chạy một lệnh. .
Cài đặt Docker
Tạo một tệp có tên Dockerfile
xây dựng hình ảnh
Chạy hình ảnh

Docker có cung cấp khả năng tương thích đa nền tảng không?

Bạn có thể chạy các chương trình và tệp thực thi của cả Linux và Windows trong vùng chứa Docker . Nền tảng Docker chạy tự nhiên trên Linux (trên x86-64, ARM và nhiều kiến ​​trúc CPU khác) và trên Windows (x86-64). Công ty Docker. xây dựng các sản phẩm cho phép bạn xây dựng và chạy các bộ chứa trên Linux, Windows và macOS.