2015-11-30 4 views
0

У меня странная проблема, мой локальный хост и сервер имеют тот же max_execution_time, который составляет 30 секунд.PHP Максимальное время выполнения 30 секунд

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

Набор данных также используется для запуска.

Каковы основные предметы, которые могут вызывать ошибку max_execution_time?

настройки PHP на сервере

max_execution_time 30 30 
max_file_uploads 20 20 
max_input_nesting_level 64 64 
max_input_time 60 60 
max_input_vars 1000 1000 
memory_limit 128M 128M 

настройки PHP на локальном хосте

max_execution_time 30 30 
max_file_uploads 20 20 
max_input_nesting_level 64 64 
max_input_time 60 60 
max_input_vars 1000 1000 
memory_limit 128M 128M 

Может ОЗУ компьютера и Ram причины сервера эта проблема? если так, то единственное различие заключается в том, что у меня есть 8-гигабайтный барабан на моем компьютере и 2 ГБ оперативной памяти на сервере.

+0

Может ли это быть просто до скорости вычислений? Специфические различия? Различия в сети (если она использует материал, который использует сеть)? Etc и т. Д. Так много разных возможностей. –

+1

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

+0

running xdebug? это замедлит вас примерно на x4 в среде разработчика. – DevDonkey

ответ

0

Если тот же самый код используется на обеих машинах, то проблема заключается в том, что процессор/скорость обработки вашего аппарата (менее вероятно) или объем данных, обрабатываемых вашим кодом (скорее всего).

Строго говоря, однако, если ваш код поражает максимальное время выполнения, вы должны следить за уменьшением объема обработки кода в одном выполнении. Если ваш код сконструирован для обработки/обработки большого количества запросов, подумайте о том, чтобы добавить максимальный объем данных для обработки в одном запросе, чтобы вместо этого обрабатывать их. (Например, вместо того, чтобы обрабатывать сразу 100 строк/запросов, установите колпачок на 25 и пошатните его на 4 исполнения вашего кода).

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

+0

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

0

Почти наверняка ваш запрос занимает больше времени на вашей локальной машине, чем на сервере - если вы представляете себе, ваш сервер выполняет только очень мало заданий - на вашем настольном компьютере работает графический интерфейс, другое фоновое программное обеспечение, IDE и т. Д. так что даже если у них одинаковое аппаратное обеспечение (и на самом деле ваш сервер, вероятно, имеет аппаратное обеспечение корпоративного уровня (более быстрые диски и т. д.), тогда как ваш рабочий стол - это потребительское оборудование), поэтому даже что-то простое, как запрос к базе данных, почти наверняка займет больше времени на вашей локальной настройке.

Как таковой, это не тест типа «как-для-подобного».