Что делать если PHP скрипту не хватает времени и памяти. Почему большой файл не загружается на сайт или в phpMyAdmin

Каждый запуск PHP скрипта требует использования системных ресурсов: оперативной памяти и времени центрального процессора. Если запущено слишком много PHP скриптов, то в операционной системе, в которой работает веб-сервер, может закончиться память, и система зависнет. Такое может произойти, если накопиться слишком много запущенных PHP скриптов. Некоторые скрипты написаны плохо (содержат логические ошибки приводящие к бесконечным циклам и бесконечной работе) и поэтому со временем даже на малопосещаемом сервере может накопиться слишком много запущенных процессов, которые израсходовали все ресурсы.

Именно по этой причине в PHP установлены лимиты на максимальное время выполнение скриптов и на максимальное потребление ими памяти — лучше закрыть несколько дочерних процессов веб-сервера (которые, возможно, просто зависли), чем допустить полное зависание всего сервера.

Но бывают и обратные ситуации — по своим задачам PHP скрипт может требовать длительного времени выполнения и (или) большого объёма оперативной памяти. По этой причине возникает необходимость увеличить лимиты.

Для увеличения лимитов нужно изменить значение директив в главном конфигурационном файле PHP у которого имя php.ini и если вы устанавливали веб-сервер по этой инструкции, то путь до данного файла c:\Server\bin\PHP\php.ini.

Итак, откройте данный файл текстовым редактором:

Для увеличения максимального времени выполнения скрипта измените значение (цифра означает секунды):

max_execution_time = 30

Для установки максимального количество памяти, которое может использовать скрипт (цифра без буквы означает размер в байтах, также можно использовать буквы: K (для килобайт), M (для мегабайт) и G (для гигабайт)):

memory_limit = 128M

Директива для установки максимального размера загружаемого на сервер файла. Изначально установлен очень маленький размер – только два мегабайта. Например, при загрузке базы данных в phpMyAdmin, не получится загрузить файл больше 2 мегабайт до тех пор, пока не будет изменён этот пункт настройки:

upload_max_filesize = 2M

Следующая опция устанавливает максимальное количество данных, которые будут приняты при отправке методом POST:

post_max_size = 8M

Максимальное количество файлов для загрузки за один раз

max_file_uploads = 20

После внесения изменений в файл php.ini необходимо перезагрузить веб-сервер, чтобы изменения вступили в силу:

c:\Server\bin\Apache24\bin\httpd.exe -k restart

Если вас интересуют подробности по данным директивам, а также описание способов, которыми можно поменять время на выполнение скрипта прямо в самом скрипте, то смотрите более подробный материал «Как увеличить память и время для PHP скриптов».

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *