Время выполнения скрипта php и потребляемая память

Применение опций

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


1. PHP.INI

Файл php.ini является основным файлом где хранятся настройки исполнения php скриптов. Пользовательский файл настроек обычно находится на несколько уровней выше папки www сайта. Иногда помещён в папку php-bin.

Применение: опция = значение

Пример настройки добавленной в файл php.ini:

post_max_size = 500Mupload_max_filesize = 400Mmax_execution_time = 3000max_input_time = 6000

2. .HTACCESS

Файл .htaccess (или htaccess.txt) является содержанием настроек поведения сервера и обработки файлов определённого сайта. Размещается в корне сайта.

Применение: php_value опция значение

php_value post_max_size 500Mphp_value upload_max_filesize 400Mphp_value max_execution_time 3000php_value max_input_time 6000

3. Любой PHP файл

Помимо вышеописанных способов, можно также сделать настройки к одному индивидуальному php-файлу.


Применение: ini_set(‘опция’, ‘значение’);

ini_set(‘post_max_size’, ‘500M’);ini_set(‘upload_max_filesize’, ‘400M’);ini_set(‘max_execution_time’, ‘3000’);ini_set(‘max_input_time’, ‘6000’);

* Необходимо учесть, что бывают хостеры, которые блокируют изменение некоторых опций.

На этом наша статья подходит к концу. Надеемся вы подчерпнули для себя полезную информацию из этого материала.

Опции

Опции, влияющие на загрузку файлов:

upload_max_filesize — Максимальный размер загружаемого файла

Измеряется в секундах. Дефолтное значение: «2M»

max_file_uploads — Максимальное количество одновременных загрузок

Измеряется в штуках. Дефолтное значение: «20»

post_max_size — Максимальный размер отправляемого через POST-запрос файла (Должен быть больше upload_max_filesize).

Измеряется в секундах. Дефолтное значение: «8M»

max_execution_time — Время в течении которого скрипт должен полностью завершить своё исполнение. Для отмены ограничений можно присвоить 0.


Измеряется в секундах. Дефолтное значение: «30»

max_input_time — Время в течении которого скрипт, должен получить и обработать все данные из POST и GET запросов.

Измеряется в секундах.

memory_limit — Ограничение на выделяемую для исполнения одного скрипта память. Для отмены ограничений, поставьте -1. Должен быть больше post_max_size.

Измеряется в Мегабайтах. Дефолтное значение: «128M»

Максимально допустимый размер данных, отправляемых методом POST

Методом пост могут отправляться как текстовые данные (например, при отправке комментария на сайт), так и файлы. Если вы увеличили значение upload_max_filesize чтобы иметь возможность загружать файлы большего размера на сайт, то также нужно увеличить и значение директивы:

post_max_size = 8M

которая устанавливает максимально допустимый размер данных, отправляемых методом POST. Это значение также влияет на загрузку файлов. Для загрузки больших файлов это значение должно быть больше значения директивы upload_max_filesize. В сущности, memory_limit должна быть больше чем post_max_size. Если используется integer, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана выше. Если размер POST-данных больше чем post_max_size, суперглобальные переменные $_POST и $_FILES будут пустыми. Это можно отследить различными способами, например передав $_GET переменную в скрипт, обрабатывающий данные, т.е. <form action=»edit.php?processed=1″>, а затем проверить, установлена ли переменная $_GET.

Замечание: PHP разрешает сокращения значений байт, включая K (кило), M (мега) и G (гига). PHP автоматически преобразует все эти сокращения. Будьте осторожны с превышением диапазона 32-битных целых значений (если вы используете 32-битную версию), так как это приведёт к ошибке вашего скрипта.

Для полного снятия лимитов значение можно установить на .

Значение этой настройки игнорируется, если чтение данных POST отключено с помощью enable_post_data_reading.

Проверка использование ресурсов

Синтаксис:

getrusage ( )

Список параметров

who (если аргумент who равен 1, getrusage будет вызвана с RUSAGE_CHILDREN).

Возвращаемые значения: возвращает ассоциативный массив, содержащий данные возвращённые из системного вызова. Имена элементов соответствуют документированным именам полей.

Пример использования getrusage():

<?php

$dat = getrusage();
echo 'Количество операций вывода блока: ' . $dat . '<br />';
echo 'Количество операций приема блока: ' . $dat . '<br />';
echo 'Количество отправленных сообщений IPC: ' . $dat . '<br />';
echo 'Количество принятых сообщений IPC: ' . $dat . '<br />';
echo 'Наибольший размер установленной резидентной памяти: ' . $dat . '<br />';
echo 'Суммарное значение размера разделяемой памяти: ' . $dat . '<br />';
echo 'Суммарное значение размера неразделяемых данных: ' . $dat . '<br />';
echo 'Количество исправленных страниц (легкая ошибка страницы): ' . $dat . '<br />';
echo 'Количество ошибочных страниц (тяжелая ошибка страницы): ' . $dat . '<br />';
echo 'Количество полученных сигналов: ' . $dat . '<br />';
echo 'Количество согласованных переключений контекста: ' . $dat . '<br />';
echo 'Количество несогласованных переключений контекста: ' . $dat . '<br />';
echo 'Количество свопов: ' . $dat . '<br />';
echo 'Время на задачи пользователя (user time) (микросекунды): ' . $dat . '<br />';
echo 'Время на задачи пользователя (user time) (секунды): ' . $dat . '<br />';
echo 'Время на системные задачи (system time) (микросекунды): ' . $dat . '<br />';

Пример вывода:

Способы исправления ошибки Fatal Error: Maximum Execution Time Exceeded

Вы можете исправить эту ошибку несколькими способами. Первые три способа подразумевают ручное редактирование файлов, которые влияют на настройки сервера, а четвертый – редактирование настроек сервера через Панель управления сервера.

ВАЖНО! Перед редактированием файлов на сервере, убедитесь, что вы создали резервную копию этих файлов. Способ №1

Редактирование файла .htaccess

Способ №1. Редактирование файла .htaccess

Подключитесь к своему сайту с помощью любого FTP-клиента (например, FileZilla, TotalCommander и др.).

Файл .htaccess находится в корне сайта, т.е., в той же папке, что и папки и .

Откройте этот файл и добавьте в него небольшую строку:

php_value max_execution_time 300

Этот код устанавливает для максимального времени выполнения значение в 300 секунд (5 минут). Если после этого вы все еще получаете ошибку, попробуйте увеличить значение до 600.


Способ №2. Редактирование файла wp-config.php

Добавьте в файл в корне сайта следующую строку (если в файле уже есть такая строка – просто измените старое значение):

set_time_limit(300);

Этот код также повышает значение для максимального времени выполнения скрипта до 300 секунд (5 минут).

Способ №3. Редактирование файла php.ini

Добавьте в файл , который находится в корне сайта, следующий код:

max_execution_time = 300

Данная настройка также влияет на максимальное время выполнения скрипта.

Способ №4. Изменение настроек через Панель администрирования сервера

Данный способ подойдет не всем, поскольку не на всех серверах есть возможность изменять настройки сервера с помощью Панели администрирования сервера.

Если вы используете cPanel, например, вы можете увеличить непосредственно через Панель управления сервером, не подключаясь к сайту по FTP.

  • Для этого перейдите в раздел «Выбор PHP-версии» (Select PHP Version).
  • Потом нажмите ссылку «Переключиться на опции PHP» (Switch To PHP Options).
  • Увеличьте значение по умолчанию, которое вы видите в строке . Обычно по умолчанию установлено 30 секунд, поэтому увеличьте значение минимум до 300 секунд. После этого нажмите кнопку «Применить» (Apply), чтобы сохранить изменения.

Вот и все, вы успешно увеличили лимит для своего сайта на WordPress.

Краткий вывод

Из сегодняшней статьи вы узнали 4 способа увеличить для WordPress и исправить фатальную ошибку: Превышено максимальное время выполнения (Fatal Error: Maximum Execution Time Exceeded).

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


С этим читают