phpMyAdmin. Достигнут временной лимит выполнения скрипта

phpMyAdmin. Достигнут временной лимит выполнения скрипта
phpMyAdmin Logo

При импорте БД из архива на тестовом сервере через phpMyAdmin получил сообщение следующего формата:

Достигнут временной лимит выполнения скрипта. Для завершения импорта, пожалуйста повторно отправьте тот же файл и импорт будет возобновлен.

Обычно на Debian/Ubuntu при установке phpMyAdmin из пакетов он ставится в директорию /usr/share/phpmyadmin/, поэтому переходим в неё:

cd /usr/share/phpmyadmin/

Теперь необходимо отредактировать конфигурационный файл config.inc.php, можно пользоваться любым редактором файлов, я предпочитаю nano. Открываем файл на редактирование:

nano config.inc.php

Если при открытии файла вы увидели сообщение «Directory ‘.’ is not writable» — это означает, что текущая директория недоступна для записи. Переоткроем файл через sudo:

sudo nano /usr/share/phpmyadmin/config.inc.php

Если увидели снизу окна редактирования сообщение «New File», это означает что файл конфигурации не существовал и будет создан после сохранения вами текущей редакции. Можно, конечно, скопировать дефолтовую конфигурацию из файла config.sample.inc.php и редактировать её, но так как в моей ситуации — сервер тестовый — мне достаточно будет внести в созданный файл строку:

$cfg['ExecTimeLimit'] = 1200;

,где 1200 — максимальное время выполнения в секундах (если установить 0 — полностью отключит лимит выполнения)

Важное замечание: настройка теряет всякий смысл, если php запущен в безопасном режиме.

Если после внесения изменений ничего не изменилось и вы получаете всё ту же ошибку, следует проверить настройки php.ini. Обычно я создаю в корне сайта файл php_info.php со следующим содержимым:

<?php
  phpinfo();
?>

Вызвав который из браузера можно однозначно увидеть какая версия php в каком режиме работает и где находится файл конфигурации php.ini:

Смотрим строку Configuration File (php.ini) Path, и видим /etc/php/7.4/fpm/php.ini. Отлично, редактируем файл:

sudo nano /etc/php/7.4/fpm/php.ini

Находим параметр max_execution_time, обычно его значение = 60. Увеличим его до 120:

max_execution_time = 120

Так как у нас PHP работает в режиме FastCGI, то для применения настроек необходимо его перезапустить.

Если ничего из вышеперечисленного не помогает, остается загрузить файл на сервер и импортировать вручную командой:

mysql -u database_user -p database_name < database_dump.sql