конфигурационные файлы — максимальное время выполнения PHP GoDaddy не работает

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

Но проблема в том, что он по-прежнему не может выполнить сценарий, который более 120 секунд. Он вернет код ошибки 500 Внутренняя ошибка сервера после 2 минут времени выполнения.

файл sleep.php:

<?php
$sleepTime = isset($_POST['sleepTime'])? intval($_POST['sleepTime']): 0;
sleep($sleepTime);
echo " woke up";
?>

файл sleep.html:

<script>
var beginSleep=function() {
var timeNow = new Date();
$('input[type=button]').attr("disabled", true);
$('#msg').html(timeNow.getHours()+":"+timeNow.getMinutes()+":"+timeNow.getSeconds()+" Sleeping...<br>");
$.ajax({
url: "sleep.php",
data: $('#formSleep').serialize(),
type:"POST",
dataType:'text',
success: function(msg) {
timeNow = new Date();
$('#msg').append(timeNow.getHours()+":"+timeNow.getMinutes()+":"+timeNow.getSeconds()+msg);
$('input[type=button]').removeAttr("disabled");
},
error:function(xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
};
</script>

<form id="formSleep" method="post" action="sleep.php">
<p>Sleep time(seconds):</p><input type="text" name="sleepTime" value="5" />
<input type="button" value="submit" onclick="beginSleep()" />
</form>
<p id="msg"></p>

Снимки экрана:

http://i.imgur.com/IAiSpPS.jpg

http://i.imgur.com/w7A1nKA.jpg

Если я установлю время ожидания на 121 секунду и отправлю сообщение, оно не вернет сообщение «проснулся», а выдаст код ошибки 500.

Последние обновления

Я говорил с поддержкой GoDaddy, они сказали, что мой php.ini работает правильно, потому что они могут видеть, что значение max_execution_time изменилось до 600 секунд. Но они не могли ответить мне, почему возникла проблема с тайм-аутом. Они настаивали на том, что это моя проблема со сценариями и что мой тестовый сценарий недопустим для выполнения теста.

Я показал им еще один тестовый скрипт, который, я считаю, самый простой. Сообщение никогда не будет отображаться, так как оно превышает 120 секунд и вернет код ошибки 500 внутренняя ошибка сервера.

<?php
sleep(121); echo "sleep(121) completed";
?>

Они показали мне свои тестовые сценарии и заявили, что настройка max_execution_time работает нормально.

test.php: test.php будет перенаправлен на мою домашнюю страницу через 30 секунд.

header( "refresh:30; url=http://my-site.net" );
echo "please wait 30 seconds";

Другой тестовый скрипт, который они мне показали, это бесконечный цикл «for (;;);». Этот тестовый скрипт также автоматически отключается по истечении 120 секунд. Кроме того, бесконечный цикл потреблял 80% ресурсов моего процессора.

register_shutdown_function(function() {
echo "shutdown function called\n";
});

set_time_limit(600); // Set time limit to 1 second (optional)
for (;;) ;

Они пришли к выводу, что мое max_execution_time не работает должным образом из-за того, что у меня недостаточно ресурсов процессора.

Я не верю тому, что они сказали, потому что sleep () не использует много ресурсов. Я попытался запустить тестовые сценарии параллельно, но загрузка процессора составила 0%. Кроме того, я не думаю, что функция header («refresh: 30», url = …) может считаться долгосрочным скриптом. Служба поддержки GoDaddy не так хороша, как я ожидал.

4

Решение

Та же проблема с 000webhost и bluehost и ProISP, любой процесс PHP, работающий более 120 секунд, будет остановлен, независимо от настроек, чтобы предотвратить перегрузку сервера, и вы должны спросить инженера (который действительно знает, в чем проблема) для вашего учетная запись / сценарий, чтобы получить исключение из этой функции безопасности (удачи. Только ProISP фактически предоставил мне исключение для этого, для 1 конкретного сценария php ..) — или вы можете купить VPS (например, ramnode.com) или использовать веб-хост, который не имеет этого ограничения (например, syse.no), или использовать веб-хост, который может быть
готов дать вам освобождение (например, proisp.no)

Обслуживающий персонал GoDaddy отсталый. Зачем? заголовок («обновить: 30; URL =http://my-site.net«);
это сделает ВАШ БРАУЗЕР перенаправленным и не имеет никакого отношения ко времени выполнения php, и они не смогли найти реальную причину проблемы, а настоящая проблема не имеет никакого отношения к использованию вашего процессора.

1

Другие решения

Эта почта позволил мне увеличить мой предел PHP.

Ключевая информация:

  1. Откройте SFTP-подключение к вашей учетной записи хостинга GoDaddy

  2. В том же каталоге, что и wp-config.php, создать .user.ini файл.

Заметка ведущий .

  1. В этом .user.ini добавление файла max_execution_time = 180

Это увеличит GoDaddy max_execution_time до 3 минут.

1

Добавьте это вверху вашего php-скрипта:

set_time_limit(600);
//or set_time_limit(0); unlimited time
ignore_user_abort(1);
0

Поместите это в верхней части вашего сценария PHP

ini_set('max_execution_time', 300); //300 seconds = 5 minutes

если это работает, тогда запустите

где php

Проверьте расположение выходной папки и перейдите в этот файл php.ini. проверьте max_input_time =?

0

Godaddy не разрешать обновлять конфигурацию сервера по умолчанию.
Даже если вы найдете путь og php.ini, у вас не будет доступа для редактирования через SSH / FTP-клиент согласно их политике.

Решение :
Единственным решением, которое я нашел, была поддержка Call to Godaddy. Как только они разрешат разрешение, вы сможете найти редактируемое поле по следующему пути для переменных PHP.

Дорожка : Главная> Программное обеспечение> Версия PHP> Переключиться на параметры PHP
введите описание изображения здесь

0