Intereting Posts
Функции PHP json_encode и javascript Класс PHPUnit_Framework_TestCase недоступен. Исправить … – Makegood, Eclipse как сохранить флажок после обновления страницы Как отобразить выбранные значения в раскрывающемся списке нескольких вариантов в приложении Yii2? PHP API Youtube Uploads, исключение: Не удалось запустить возобновляемую загрузку, загрузка должна быть отправлена ​​на URL-адрес загрузки Как безопасно использовать UniqueEntity (на сайтах с более чем одним одновременным пользователем) Какой PHP-код-код должен использовать для повышения производительности? Woocommerce content-single-product template override не работает Синхронизация большой локальной базы данных с серверной БД (MySQL) Twig забывает массивные ключи Строка хештейнов PHP без пробелов не делится на хэштеги Динамически изменить размер большого изображения на миниатюру в PHP? Имеет ли PHP эквивалент синтаксиса понимания списка Python? Обновление столбца MySQL, содержащего точку (.) В ее имени как я могу запросить переменную в моем home.ctp моего приложения cakePHP?

Максимальное время выполнения 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://img.ruphp.com/configuration-files/IAiSpPS.jpg

http://img.ruphp.com/configuration-files/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 не так хороша, как я ожидал.

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

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

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

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

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

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

Обратите внимание на лидерство .

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

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

Добавьте это в начало своего php-скрипта:

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

Поместите это вверху вашего скрипта PHP

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

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

whereis php

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

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

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

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