Docker phpmyadmin игнорирует мою конфигурацию php.ini - PullRequest
0 голосов
/ 31 мая 2018

Я создаю среду docker-compose с apache, php7.0, mysql, а также добавил phpmyadmin.

Я столько раз пытался включить свой собственный файл php.ini и, наконец, я получил php, чтобы принять его, как показано в моем index.php, загруженном phpinfo ().

Мне нужнозагрузить базу данных, которая весит более 750 МБ, и мой phpmyadmin не позволяет мне импортировать базы данных размером более 512 МБ.

Я пытался сжать БД до 60 МБ, но когда я пытаюсь импортировать ее, это занимает так много времении заканчивает тем, что обрезал импорт, потому что это заняло так много времени, оставив мою базу данных неполной.

Даже устанавливая мои ограничения php.ini file_size и все такое, phpmyadmin игнорирует его.

Вот чтоЯ изменил в php.ini:

upload_max_filesize = 1024M
post_max_size = 1024M
memory_limit = 1024M
max_execution_time = 300

Мой docker-compose.yml:

version: '3.3'

services:
  php:
    build: apache-php
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./apache-php/www:/var/www/html
    links:
      - mysql
      - phpmyadmin

  mysql:
    image: mysql:5.7
    volumes:
     - ./mysql:/var/lib/mysql
    environment:
     - MYSQL_ROOT_PASSWORD=1347891743
     - MYSQL_DATABASE=database

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    links:
      - mysql
    environment:
      PMA_HOST: mysql
      PMA_PORT: 3306
    ports:
      - "8080:80"
    volumes:
      - ./mysql:/var/lib/mysql

У меня также есть Dockerfile для запуска моего php:

FROM php:7.0-apache

RUN docker-php-ext-install mysqli


COPY config/php.ini /usr/local/etc/php/

Это то, что он показывает в phpmyadmin.

Phpmyadmin file size limit

Небольшая помощь будет очень признателен

1 Ответ

0 голосов
/ 31 мая 2018

Из моего опыта PhpMyAdmin - не лучший способ импорта больших баз данных.Поэтому, даже если вам удастся увеличить memory_limit, вы все равно столкнетесь с длительным временем обработки.

Было бы лучше предоставить сценарий инициализации и связать его с / docker-entrypoint-initdb.d папка через docker-compose.Например:

mysql:
image: mysql:5.7
volumes:
 - ./my_directory_with_init_scripts:/docker-entrypoint-initdb.d
 - ./mysql:/var/lib/mysql
environment:
 - MYSQL_ROOT_PASSWORD=1347891743
 - MYSQL_DATABASE=database

С здесь вы можете увидеть, что он сканирует папку / docker-entrypoint-initdb.d для поиска подходящего файла (включая * .sql)и обрабатывает их.Так что просто поместите файл дампа SQL в связанный том, и все готово.

Если вам все еще нужно увеличить php memory_limit, то, вероятно, вы можете установить специфичные для PMA настройки, используя /etc/phpmyadmin/config.user.inc.php,Больше информации в PMA docs и в PMA docker image readme .

...