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 ứngSao 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ảnFROM 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_10Gố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ệuChỉ 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àngTù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ũ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
07Giá 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ànViệ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ạnNgoà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ườiTrong 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ư ___194Thê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ạyCà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
96docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
9Trướ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ấpdocker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
9Ngoà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ướcdocker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
1Cấ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ạiBiế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
99Cá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
7Bạ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
94Tậ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ínhViệ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ườngdocker 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 dungdocker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest
3Cá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 khaiTrong 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