Вступление

Получали ли вы когда-либо ошибку Fatal Error: Maximum execution time of 30 seconds exceeded в WordPress? Эта ошибка означает, что запущенному PHP-скрипту требуется больше времени для выполнения, чем установлено в ограничении, и по причине этого скрипт был остановлен. Это руководство поможет вам разобраться в вопросе, как увеличить в PHP время выполнения скрипта и тем самым решить возникшую ошибку.

Что понадобится

Перед началом руководства проверьте наличие:

  • Доступа к Административной консоли вашего WordPress сайта (англ.)

Шаг 1 – Установка плагина WP Maximum Execution Time Exceeded

У WordPress огромное сообщество, поэтому для любой функциональности, которая вам понадобится, есть удобный плагин или даже несколько. Не исключение и наша ситуация, чтобы увеличить в PHP время выполнения скрипта, можно воспользоваться плагином WP Maximum Execution Time Exceeded и устранить возникшую ошибку. Подробную инструкцию о том, как установить плагин WordPress можно найти здесь.

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


Шаг 2 – Редактирование файла .htaccess вручную

Если у вас уже и так много установленных плагинов и вы не хотите использовать дополнительный или это просто не помогло вам избавится от ошибки, тогда вы можете внести изменения в файл .htaccess руками для увеличения ограничения максимального времени выполнения. Самый простой способ воспользоваться Файловым менеджером, расположенным в вашей панели управления. Если вы не знаете, как найти файл .htaccess, обратитесь к подробной инструкции здесь. Вам нужно будет ввести следующий код в файл .htaccess внизу и сохранить его, нажав Save:

php_value max_execution_time 60

Изменение htaccess вручную - PHP время выполнения скрипта

Это увеличит значение параметра max_execution_time и для PHP время выполнения скрипта до 60 секунд (1 минута). Если вы до сих пор получаете эту ошибку, то попробуйте увеличить его ещё больше – до 120/180 секунд и так далее.

Шаг 3 – Изменение значения max_execution_time в cPanel


Если вы используете cPanel, то вы можете повысить значение параметра max_execution_time напрямую через cPanel. Перейдите в раздел Select PHP Version (Выберите версию PHP).

Иконка выбора версии PHP

Теперь нажмите на ссылку Switch To PHP Options (Настройки переключения версий PHP).

Ссылка опций в cPanel - PHP время выполнения скрипта

Увеличьте значение, которое вы видите в строке max_execution_time. Обычно, оно установлено в 30 секунд по умолчанию, в нашем примере мы его увеличили до 60 секунд. Нажмите Apply (Применить) для сохранения изменений.

Максимальное время выполнения

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

Заключение

Следуя этому руководству, вы изучили 3 пути увеличения max_execution_time для WordPress, чтобы изменить в PHP время выполнения скрипта и избавится от ошибки Fatal Error: Maximum execution time exceeded. Если вы пользуетесь общим хостингом и не одно из решений вам не подошло, тогда обратитесь к своему провайдеру хостинга, чтобы проверить какие на самом деле у вас ограничения и возможно ли их изменение вообще.

 


Of the methods I've seen here, and thought up myself, to convert microtime() output into a numerical value, the microtime_float() one shown in the documentation proper(using explode,list,float,+) is the slowest in terms of runtime.

I implemented the various methods, ran each in a tight loop 1,000,000 times, and compared runtimes (and output). I did this 10 times to make sure there wasn't a problem of other things putting a load spike on the server. I'll admit I didn't take into account martijn at vanderlee dot com's comments on testing accuracy, but as I figured the looping code etc would be the same, and this was only meant as a relative comparison, it should not be necessary.

The above method took on average 5.7151877 seconds, while a method using substr and simply adding strings with . took on average 3.0144226 seconds. rsalazar at innox dot com dot mx's method using preg_replace used on average 4.1819633 seconds. This shows that there are indeed differences, but for normal use noone is going to notice it.


Note that the substr method mentioned isn't quite the one given anonymously below, but one I made based on it:
<?php
$time
=microtime();
$timeval=substr($time,11).substr($time,1,9);
?>

Also worth noting is that the microtime_float() method gets faster, and no less accurate, if the (float) conversions are taken out and the variables are simply added together.

Any of the methods that used + or array_sum ended up rounding the result to 2 digits after the decimal point, while (most of) the ones using preg_replace or substr and . kept all the digits.

For accurate timing, since floating-point arithmetic would lose precision, I stored microtime results as-is and calculated time difference with this function:
<?php
f.


/span>$before,11))
        +(
substr($after,0,9)-substr($before,0,9));
}
?>

For further information, the script itself, etc, see http://edorfaus.xepher.net/div/convert-method-test.php

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

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector