Docker-php-ext-cài đặt mongodb

Điều này sẽ hiển thị cổng. 27017 theo mặc định. Bạn có thể kết nối với phiên bản mongo db này bằng cách cài đặt Robo 3T, một phần mềm để quản lý mongo db

Chạy bộ chứa docker Php

Tôi sẽ chạy bộ chứa php5/apache

Chạy

docker run -d -p 8020:80 --name php-apache php:5-apache

Ghi chú. Điều này sẽ chạy một bộ chứa php, nhưng để có thể kết nối với bộ chứa mongo db, bạn cần liên kết bộ chứa này với bộ chứa mongo db

docker run -d -p 8020:80 --link my-mongo --name php-mongo-test php:5-apache

Bây giờ, bạn sẽ có thể thấy hai container đang chạy bằng cách gõ. Lệnh "docker ps"

Cài đặt trình kết nối Mongo Php

Bạn sẽ cần thư viện mongo php để viết mã php kết nối với mongo db

Có hai cách

  1. Chạy hình ảnh php/apache và cài đặt php-mongo theo cách thủ công
  2. Viết một Dockerfile tùy chỉnh và chuẩn bị hình ảnh của bạn để cài đặt các phụ thuộc php-mongo

1. Chạy hình ảnh php/apache và cài đặt php-mongo theo cách thủ công

Kiểm tra container id của php container, bằng cách gõ lệnh

Mở Shell/bash trong vùng chứa đó. [giả sử 9da60559db80 là id vùng chứa của tôi]

docker exec -it 9da60559db80 bash

Bây giờ, bạn đang ở trong shell terminal của php container. Bạn sẽ cần cài đặt các phụ thuộc php-mongo

Chạy các lệnh sau

   apt-get update
   apt-get install openssl libssl-dev libcurl4-openssl-dev
   pecl install mongo
   echo "extension=mongo.so" > /usr/local/etc/php/conf.d/mongo.ini

Trong các bước trên, về cơ bản, chúng tôi đã cài đặt một số phụ thuộc cần thiết cho trình kết nối mongodb và cài đặt tiện ích mở rộng mongo db php và bao gồm phần mở rộng đó trong php. danh sách ban đầu

Ghi chú. Bộ chứa Php tải tất cả tệp ini có trong /usr/local/etc/php/conf. thư mục d/

Bây giờ, bạn cần khởi động lại vùng chứa của mình để tải tiện ích mở rộng mongo db

Khởi động lại vùng chứa của bạn

docker stop 9da60559db80
docker start 9da60559db80

2. Chuẩn bị hình ảnh docker, với các bước trên được đưa vào

Đi đến. https. //github. com/GyanBlog/php-mongo-docker và xây dựng hình ảnh của bạn. Bạn sẽ có các bước trên được thực hiện trước. Vui thích

Để kiểm tra xem bạn đã tải tiện ích mở rộng mongo db chính xác hay chưa. Chuẩn bị một tệp phpfile trong thư mục /var/www/html nói thông tin. php và đặt nội dung sau

Trên trình duyệt của bạn, hãy thử. máy chủ cục bộ. 8082/thông tin. php

Bạn sẽ thấy một trang html lớn hiển thị thông tin php và các tiện ích mở rộng đã cài đặt. Tìm kiếm mongo và nó sẽ hiển thị một số kết quả

Có bất kỳ lợi thế nào của docker-php-ext-install so với pecl không? . Tôi tìm thấy câu hỏi này mà không có câu trả lời trong vấn đề

https. //github. com/docker-library/php/issues/374

Nếu pecl chứa tất cả các phần mở rộng, nhưng docker-php-ext-install cho phép cài đặt danh sách ràng buộc, tại sao nó được tạo?

Bạn có thể tìm thấy lời giải thích trong vấn đề docker-php-ext-install vs pecl trong kho lưu trữ hình ảnh chính thức của php

Khi phát triển một trang web hoặc ứng dụng PHP, bạn phải luôn đảm bảo rằng nó có khả năng xử lý lưu lượng truy cập cao sau khi đi vào sản xuất. Đây là nơi bộ chứa Bitnami PHP-FPM xuất hiện. Nó kết hợp triển khai PHP FastCGI với một số tính năng bổ sung như tạo quy trình thích ứng, hỗ trợ tải lên được tăng tốc hoặc các chức năng để quản lý các tác vụ tốn thời gian. Những cải tiến này làm cho nó trở nên lý tưởng cho các trang web bận rộn

Mặt khác, bạn nên chọn cơ sở dữ liệu có khả năng mở rộng quy mô và cung cấp tính sẵn sàng cao trong các tình huống đòi hỏi khắt khe. Các giải pháp NoSQL như MongoDB đã chứng tỏ là một lựa chọn hiệu quả trong những trường hợp này

Hướng dẫn này hướng dẫn bạn quy trình sử dụng bộ chứa Bitnami Docker PHP-FPM làm hình ảnh cơ sở để xây dựng một hình ảnh mới với tiện ích mở rộng MongoDB đã được cài đặt. Sau khi hình ảnh được tạo, hướng dẫn này sẽ chỉ cho bạn cách chạy vùng chứa để kiểm tra việc cài đặt tiện ích mở rộng MongoDB

Giả định và điều kiện tiên quyết

Hướng dẫn này đưa ra các giả định sau

  • Bạn có kiến ​​thức cơ bản về Docker container
  • Bạn đã cài đặt và định cấu hình môi trường Docker. Tìm hiểu thêm về cài đặt Docker
  • Bạn có tài khoản Docker Hub. Đăng ký tài khoản miễn phí. [Không bắt buộc]
Bước 1. Tạo thư mục làm việc của dự án

Để bắt đầu quá trình, hãy tạo một thư mục làm việc cho mã vùng chứa của bạn trên máy chủ Docker của bạn, như được hiển thị bên dưới

cd ~
mkdir my-custom-php-fpm-container
cd my-custom-php-fpm-container
Bước 2. Tạo một Dockerfile

Dockerfile tương tự như một công thức. nó chứa tất cả các thành phần cần thiết để tạo hình ảnh Docker. Thông thường, mỗi dòng đại diện cho một bước riêng biệt và bắt đầu bằng một từ khóa hướng dẫn theo sau là một loạt đối số. Tìm hiểu thêm về định dạng Dockerfile

Để tạo một hình ảnh PHP-FPM bao gồm mô-đun MongoDB, hãy tạo một tệp có tên Dockerfile và điền vào nội dung sau

FROM bitnami/php-fpm:7.3-prod
RUN apt-get update && apt-get install -y autoconf build-essential
RUN pecl install mongodb
RUN echo "extension=mongodb.so" >> /opt/bitnami/php/etc/php.ini

Chúng ta hãy xem xét kỹ hơn các bước trong giai đoạn xây dựng

Lệnh TỪ khởi động Dockerfile và chỉ định hình ảnh cơ sở sẽ sử dụng. Ví dụ này sử dụng bộ chứa PHP-FPM của Bitnami để sản xuất làm hình ảnh cơ sở. Lệnh RUN thực thi lệnh shell. Trong trường hợp này, bạn có thể tìm thấy ba lệnh cho các hành động sau

  • Cập nhật các phụ thuộc và cài đặt gói autoconf
  • Cài đặt tiện ích mở rộng MongoDB
  • Bao gồm phần mở rộng MongoDB trong php. tập tin ini
Bước 3. Xây dựng hình ảnh Docker

Khi Dockerfile được tạo, hãy chạy lệnh docker build để xây dựng hình ảnh

Mẹo

Nếu bạn muốn thêm tài khoản tên người dùng Docker của mình trước tên hình ảnh

docker build -t my-custom-docker-php-fpm:latest .

Đây là một ví dụ về đầu ra mà bạn sẽ thấy trong quá trình xây dựng

Lệnh này tạo một hình ảnh có tên custom-docker-php-fpm, được gắn thẻ là phiên bản mới nhất. Thẻ này xác định duy nhất một hình ảnh Docker, cho phép bạn triển khai một phiên bản cụ thể của ứng dụng nếu cần

Khi quá trình xây dựng hoàn tất, hãy sử dụng lệnh docker images để xác minh rằng hình ảnh đã được thêm vào kho lưu trữ cục bộ của bạn

docker images | grep custom-docker-php-fpm
Bước 4. Chạy hình ảnh Docker

Chạy hình ảnh Docker mới của bạn trong một thùng chứa để kiểm tra nó bằng lệnh docker run

docker run custom-docker-php-fpm &

Để kiểm tra xem container có đang chạy hay không, hãy thực hiện lệnh docker ps. Bạn sẽ thấy một đầu ra tương tự như thế này

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS               NAMES
6250efbcdc87        custom-docker-php-fpm   "php-fpm -F --pid /o…"   25 seconds ago      Up 23 seconds                           vigilant_kapitsa
Bước 5. Kiểm tra cài đặt tiện ích mở rộng MongoDB

Bước cuối cùng là kiểm tra xem tiện ích mở rộng MongoDB đã được cài đặt đúng chưa. Để làm như vậy, cần truy cập vào vùng chứa và chạy một bộ lệnh. Làm theo những chỉ dẫn này

  • Truy cập vùng chứa bằng cách chạy docker exec lệnh như được hiển thị bên dưới. Hãy nhớ thay thế trình giữ chỗ CONTAINER_ID bằng id bạn đã nhận được khi chạy lệnh docker ps
docker exec -it CONTAINER_ID bash
  • Với câu lệnh trên, bạn sẽ truy cập container với quyền root. Thực hiện thao tác sau để kiểm tra xem tiện ích mở rộng MongoDB có trong vùng chứa của bạn không
php -m | grep mongo

Bạn sẽ thấy "mongodb" là kết quả đầu ra

Mẹo

Để biết thêm thông tin về những mô-đun và tiện ích mở rộng PHP nào được cài đặt trên bộ chứa của bạn, bạn có thể chạy lệnh php -m. Để biết thông tin mở rộng về từng mô-đun như phiên bản, thư mục, môi trường, v.v. , chạy lệnh php -i

Bước 6. Xuất bản hình ảnh Docker [tùy chọn]

Giờ đây, hình ảnh Docker của bạn đã được tạo và chứa tất cả các tùy chỉnh, bạn có thể tải nó lên sổ đăng ký công khai. Hướng dẫn này sử dụng Docker Hub, nhưng bạn có thể chọn một trong những lựa chọn của riêng mình, chẳng hạn như

Làm cách nào để cài đặt tiện ích mở rộng PHP MongoDB?

Cài đặt thủ công . tập tin ini. Mở tệp trong trình soạn thảo văn bản yêu thích của bạn và biến extension_dir đang trỏ đến vị trí của mongo . vì thế. Ngoài ra, thêm 'extension=mongo. so' trong một tệp, lưu và khởi động lại máy chủ web của bạn.

Làm cách nào để cài đặt các tiện ích mở rộng PHP trong Docker?

Dễ dàng cài đặt các tiện ích mở rộng PHP trong hình ảnh PHP Docker chính thức Cách sử dụng Tải xuống tập lệnh nhanh chóng Với Dockerfile Với curl Với thực thi trực tiếp từ curl .

Làm cách nào để cài đặt MongoDB bằng Dockerfile?

Để cài đặt nó. .
Tải xuống và cài đặt hình ảnh MongoDB từ Docker Hub. sudo docker kéo mongo. .
Đảm bảo hình ảnh đã được cài đặt. hình ảnh docker sudo. .
Tạo một thùng chứa hình ảnh mongo ở chế độ tách rời để nó vẫn tương tác trên hệ thống của bạn. sudo docker run --name mongo_example -d mongo

Tệp cấu hình MongoDB trong Docker ở đâu?

Theo mặc định, MongoDB sẽ tìm tệp cấu hình trong /etc/mongod .

Chủ Đề