Thay đổi php ini trong docker

Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh Git chấp nhận cả tên thẻ và tên nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi không mong muốn. Bạn có chắc chắn muốn tạo nhánh này không?

Nếu bạn muốn tìm hiểu cách thêm một php tùy chỉnh. ini vào hình ảnh apache-php của bạn, cài đặt các tiện ích mở rộng mới và chỉnh sửa cài đặt cấu hình, hãy ở lại với tôi trong vài phút tới. Thông thường, cách tốt nhất để tìm hiểu là xem ví dụ hoạt động, vì vậy hãy cài đặt xdebug và đặt một số cài đặt trong php. tập tin ini

________số 8_______. yml

Thay đổi image thành build trong dockercompose.yml

GitHub – Dự án

ersion: '3'
services:
  db:
    image: mysql:latest
    environment:
      MYSQL_DATABASE: lamp
      MYSQL_USER: admin
      MYSQL_PASSWORD: admin
      MYSQL_ROOT_PASSWORD: root
      MYSQL_ALLOW_EMPTY_PASSWORD: 1
    volumes:
      - "./sql:/docker-entrypoint-initdb.d"
      
  app-8.1:
    # image: php:8.1-apache-buster <<<<<<<<<<<<<<<<
    build: ./apache/php/php8.1/
    volumes:
      - "./app:/var/www/html"
      # - "./apache/php/php8.1/conf.d:/usr/local/etc/php/conf.d"
    ports:
      - 81:80
    links:
      - db
    depends_on:
      - db

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    ports:
      - 8001:80
    environment:
      - PMA_HOST=db
      - PMA_PORT=3306
    depends_on:
      - db

Tạo Dockerfile mới trong. /apache/php/php8. 1/ thư mục. Loại Dockerfile bên trong

FROM php:8.1-apache-buster

Dockerfile

Tạo Dockerfile tùy chỉnh của bạn từ hình ảnh Apache/PHP và sao chép. ini sang bằng php. ini bằng lệnh sau

tạo php. tập tin ini

RUN cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini

Cài đặt tiện ích mở rộng mới trong hình ảnh docker apache-php

Cài đặt tiện ích mở rộng PHP mới bằng cách sử dụng

FROM php:8.1-apache-buster
0and
FROM php:8.1-apache-buster
1

# Install php extensions and creates aditional ini file in conf.d directory example: /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN pecl install xdebug \
	&& docker-php-ext-enable xdebug

RUN docker-php-ext-install pdo_mysql \
	&& docker-php-ext-enable pdo_mysql

Thay đổi cài đặt hiện có trong hình ảnh docker – php. tập tin ini

Sửa đổi cài đặt hiện có trong php. ban đầu

sed -E -i 's/(;?)(post_max_size[[:space:]]=[[:space:]])[0-9]+M/\2328M/g' /usr/local/etc/php/php.ini

Thêm cài đặt mới/không tồn tại vào hình ảnh docker – vào php. tập tin ini

# You can use this form of configuration when adding new settings to a configuration file
RUN echo '[Xdebug]\n\
pdo_mysql.debug = On\n\
xdebug.remote_enable = 1\n\
xdebug.remote_connect_back = On\n\
xdebug.remote_port = "9000"\n\
xdebug.profiler_enable = 0\n\
xdebug.remote_handler = dbgp\n\
xdebug.remote_mode = req\n\
xdebug.var_display_max_depth = 5\n\
xdebug.remote_autostart = true' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

Tạo tập lệnh bash…

Bây giờ bạn đã biết cách thay đổi cài đặt trong docker image cho apache-php. Bạn có thể nghĩ rằng sẽ rất tuyệt nếu tạo một tập lệnh bash sẽ kiểm tra xem tệp php. ini được đặt, được nhận xét hay nên thêm một dòng mới vào tệp cấu hình và sử dụng nó thay thế. Đây cũng là điều tôi nghĩ. Có lẽ trong blogpost tiếp theo, chúng tôi sẽ tạo một kịch bản như vậy, vì vậy hãy tiếp tục đọc. Hy vọng bài đăng này hữu ích, nếu vậy hãy để lại nhận xét hoặc cho tôi biết nếu chúng tôi có thể cải thiện bài đăng này theo bất kỳ cách nào

Sự khác biệt giữa phát triển PHP ini và sản xuất PHP ini là gì?

Như tên gợi ý, php. ini-Development chứa các cài đặt phù hợp với môi trường phát triển và php. sản xuất ban đầu chứa các cài đặt phù hợp với môi trường sản xuất . Theo yêu cầu của bạn, bạn cần sao lưu bất kỳ tệp nào và đổi tên tệp đó thành php.

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

Cài đặt tiện ích mở rộng theo cách thủ công, chủ yếu theo cùng một mẫu. .
Tạo thư mục tương ứng trong /usr/src/php/ext
Giải nén nguồn trong thư mục đó. Nguồn thường có sẵn trên GitHub
Gọi docker-php-ext-install để cài đặt tiện ích mở rộng