ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ PHP

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π― Ρ…ΠΎΡ‡Ρƒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для function1.

Ρ‚Π°ΠΌ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ set_time_limit, Π½ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ это устанавливаСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для всСго скрипта. ΠšΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ΄Π΅ΠΈ?

6 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²

set_time_limit() Π½Π΅ глобально, Π½ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ локально.

Π·Π°Π΄Π°ΠΉΡ‚Π΅ количСство сСкунд, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… скрипт ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. Если это достигнуто, скрипт Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ-30 сСкунд ΠΈΠ»ΠΈ сущСствуСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ max_execution_time, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π² php.ini.

ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ set_time_limit( ) пСрСзапускаСт счСтчик Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Π° с нуля. Π’ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ссли Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 30 сСкунд, Π° 25 сСкунд Π² сцСнарий Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠΉ Π²Ρ‹Π·ΠΎΠ² set_time_limit(20) сцСнария Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΎΠ±Ρ‰Π΅ΠΉ слоТности 45 сСкунд Π΄ΠΎ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Π°.

Π― Π½Π΅ тСстировал Π΅Π³ΠΎ, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ локально, сбросив, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ оставитС

Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ function1 возвращался, ΠΊΠΎΠ³Π΄Π° истСчСт срок.

ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, «ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ своС ΠΈΡΡ‚Π΅ΠΊΡˆΠ΅Π΅ врСмя ΠΈ ΠΏΡ€ΠΈ нСобходимости ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²Π°ΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, это Π½Π΅ поддСрТиваСтся. Если Π²Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, спроСктируйтС Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ процСсс, Ссли ΠΎΠ½ каТСтся, слишком Π΄ΠΎΠ»Π³ΠΎ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Β«Π΄ΠΎΠ»Π³ΠΈΡ…Β» скриптов PHP

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ подходящСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° max_execution_time Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ PHP.

Π’Π΅Π±-сСрвСр ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запросы Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Π±-сСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ запустит PHP скрипт (Π½Π΅ Ρ€Π΅Π΄ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, nginx β€” Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄, apache β€” бэкэнд). Π’ этом случаС Π½Π° ΠΏΡ€ΠΎΠΊΡΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌ Π²Π΅Π±-сСрвСрС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ проксирования. Для apache ProxyTimeout, для nginx proxy_read_timeout.

ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ

Если скрипт запускаСтся Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° HTTP-запрос, Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запроса Π² своСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Π² этом случаС ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ PHP скрипт. Если ΠΆΠ΅ трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ скрипт ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ» свою Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Π°ΠΆΠ΅ послС остановки запроса, установитС Π² TRUE ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ignore_user_abort Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ PHP.

ΠŸΠΎΡ‚Π΅Ρ€Ρ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… соСдинСний

Π’ Ρ‚Π°ΠΊΠΈΡ… случаях слСдуСт Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ соСдинСния. НапримСр, для MySQL ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ запрос (спасибо Snowly)

ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ запуск

Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… рСсурсов, Π½ΠΎ эта Π·Π°Π΄Π°Ρ‡Π° всСгда Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ. Π›ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ½ΠΎ просто ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, Π½Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π»ΠΈ другая копия этого скрипта, ΠΈ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π»ΠΈΠ±ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ запуск. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ список Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… процСссов, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ запуска самого скрипта, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅:

Нагрузка Π½Π° Π²Π΅Π±-сСрвСр

Π’ случаях, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠ»Π³ΠΈΠ΅ скрипты Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-сСрвСр, соСдинСниС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° с этим самым Π²Π΅Π±-сСрвСром остаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ скрипт. Π­Ρ‚ΠΎ Π½Π΅ Π΅ΡΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ρ‚.ΠΊ. Π·Π°Π΄Π°Ρ‡Π° Π²Π΅Π±-сСрвСра ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ запрос ΠΈ ΠΎΡ‚Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Если ΠΆΠ΅ соСдинСниС остаСтся Π²ΠΈΡΠ΅Ρ‚ΡŒ, Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ² (процСссов) Π²Π΅Π±-сСрвСра Π½Π° Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя Π±ΡƒΠ΄Π΅Ρ‚ занят. А Ссли ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ достаточно ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΠΈΡ… скриптов, Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π½ΡΡ‚ΡŒ всС (Π½Ρƒ ΠΈΠ»ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ всС) свободныС Π²ΠΎΡ€ΠΊΠ΅Ρ€Ρ‹ (для apache см. MaxClients), ΠΈ Π²Π΅Π±-сСрвСр просто Π½Π΅ смоТСт ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ запросы.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ слСдуСт ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ запроса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипт Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‡Π΅Ρ€Π΅Π· php-cli, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π½Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π²Π΅Π±-сСрвСр, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ запрос обрабатываСтся. ΠŸΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ пСриодичСски ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ состояниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ AJAX запросов.

Π’ΠΎΡ‚, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, ΠΈ всС Ρ‡Ρ‚ΠΎ я ΠΌΠΎΠ³Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅. НадСюсь, для ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ врСмя для PHP скриптов

Настройки потрСблСния рСсурсов Π² PHP скриптах ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ php.ini, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² самих скриптах.

Π’ Ρ„Π°ΠΉΠ»Π΅ php.ini Π·Π° это ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»Π° Resource Limits (ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ потрСблСния рСсурсов).

Как ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ для PHP скриптов

Для этого Π² Ρ„Π°ΠΉΠ»Π΅ php.ini Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ:

Π­Ρ‚Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Π·Π°Π΄Π°Ρ‘Ρ‚ максимальноС врСмя Π² сСкундах, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ скрипт Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ. Если этого Π½Π΅ происходит, парсСр Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ скрипта. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ зависаниС сСрвСра ΠΈΠ·-Π·Π° ΠΏΠ»ΠΎΡ…ΠΎ написанного скрипта. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ даётся 30 сСкунд. Если PHP Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π²Π½ΠΎ 0.

На максимальноС врСмя выполнСния Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹, ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Ρ‚.ΠΏ.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² бСзопасном Ρ€Π΅ΠΆΠΈΠΌΠ΅ эту настройку нСльзя ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ini_set(). Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всС ΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Π½Π°Π΄ΠΎ Π»ΠΈΠ±ΠΎ Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ бСзопасный Ρ€Π΅ΠΆΠΈΠΌ, Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ прямо Π² php.ini.

Π’Π΅Π±-сСрвСры ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ свои настройки Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Π°, ΠΏΠΎ истСчСнии ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ сами Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта PHP. Π’ Apache Π΅ΡΡ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Timeout, Π² IIS Π΅ΡΡ‚ΡŒ функция CGI timeout. Π’ ΠΎΠ±ΠΎΠΈΡ… случаях ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ установлСно 300 сСкунд. Π’ΠΎΡ‡Π½Ρ‹Π΅ значСния ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ Π²Π΅Π±-сСрвСру.

Ѐункция для увСличСния ΠΈ ограничСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния PHP

Ѐункция set_time_limit ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ врСмя выполнСния скрипта.

Она Π·Π°Π΄Π°Π΅Ρ‚ врСмя Π² сСкундах, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ скрипт Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Если скрипт Π½Π΅ успСваСт, вызываСтся Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Π°Ρ ошибка. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ даСтся 30 сСкунд, Π»ΠΈΠ±ΠΎ врСмя, записанноС Π² настройкС max_execution_time Π² php.ini (Ссли такая настройка установлСна).

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ set_time_limit() пСрСзапускаСт счСтчик с нуля. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ссли Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π» 30 сСкунд, ΠΈ Ρ‡Π΅Ρ€Π΅Π· 25 сСкунд послС запуска скрипта Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° функция set_time_limit(20), Ρ‚ΠΎ скрипт Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ максимум 45 сСкунд.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния: Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ TRUE Π² случаС успСха, ΠΈΠ½Π°Ρ‡Π΅ FALSE.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: эта функция Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ссли PHP Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² бСзопасном Ρ€Π΅ΠΆΠΈΠΌΠ΅. ΠžΠ±ΠΎΠΉΡ‚ΠΈ это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΠ² бСзопасный Ρ€Π΅ΠΆΠΈΠΌ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ настройки Π² php.ini.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: функция set_time_limit() ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° max_execution_time Π²Π»ΠΈΡΡŽΡ‚ Π½Π° врСмя выполнСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самого скрипта. ВрСмя, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ дСйствия Π²Π½Π΅ скрипта, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ system(), ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, запросы ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚.ΠΏ. Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² расчСт Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния скрипта. Π­Ρ‚ΠΎ Π½Π΅ относится ΠΊ систСмам Windows, Π³Π΄Π΅ расчитываСтся Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ врСмя выполнСния.

ОбС set_time_limit(…) ΠΈ ini_set(‘max_execution_time’,…); Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ врСмя, ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ функциями sleep, file_get_contents, shell_exec, mysql_query ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ.

Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ памяти для PHP скриптов

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Π² Ρ„Π°ΠΉΠ»Π΅ php.ini

Π·Π°Π΄Π°Ρ‘Ρ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм памяти Π² Π±Π°ΠΉΡ‚Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скрипту. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ»ΠΎΡ…ΠΎ написанный скрипт ΡΡŠΠ΅Π΄Π°Π΅Ρ‚ всю Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ сСрвСра. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ограничСния, установитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Π² -1.

Π’ вСрсиях Π΄ΠΎ PHP 5.2.1 для использования этой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Π»Π° Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π° Π½Π° этапС компиляции. Π’Π°ΠΊ, ваша строка ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Π»Π° Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ: —enable-memory-limit. Π­Ρ‚Π° опция компиляции Π±Ρ‹Π»Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ memory_get_usage() ΠΈ memory_get_peak_usage() Π΄ΠΎ вСрсии 5.2.1.

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ†Π΅Π»ΠΎΠ΅ число, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ измСряСтся Π±Π°ΠΉΡ‚Π°ΠΌΠΈ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΊΡ€Π°Ρ‰Ρ‘Π½Π½ΡƒΡŽ запись.

ДоступныС ΠΎΠΏΡ†ΠΈΠΈ: K (для ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚), M (для ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚) ΠΈ G (для Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚; доступна начиная с PHP 5.1.0); ΠΎΠ½ΠΈ рСгистронСзависимы. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ считаСтся Π±Π°ΠΉΡ‚Π°ΠΌΠΈ. 1M Ρ€Π°Π²Π½ΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Ρƒ ΠΈΠ»ΠΈ 1048576 Π±Π°ΠΉΡ‚Π°ΠΌ. 1K Ρ€Π°Π²Π½ΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Ρƒ ΠΈΠ»ΠΈ 1024 Π±Π°ΠΉΡ‚Π°ΠΌ. Π­Ρ‚ΠΈ сокращСния Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² php.ini ΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ini_set(). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ приводится ΠΊ Ρ‚ΠΈΠΏΡƒ integer; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 0.5M интСрпрСтируСтся ΠΊΠ°ΠΊ 0.

Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ парсинга Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· запроса.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Π² Ρ„Π°ΠΉΠ»Π΅ php.ini

Π·Π°Π΄Π°Ρ‘Ρ‚ максимальноС врСмя Π² сСкундах, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ скрипт Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ всС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ запросами Π²Ρ€ΠΎΠ΄Π΅ POST ΠΈΠ»ΠΈ GET. Π­Ρ‚ΠΎ врСмя измСряСтся ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ³Π΄Π° PHP Π²Ρ‹Π·Π²Π°Π½ Π½Π° сСрвСрС Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ³Π΄Π° скрипт Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ -1, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ max_execution_time. Если ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π²Π½Ρ‹ΠΌ 0, Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

ΠŸΡ€ΠΈ запускС Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ установлСно Π½Π° -1 (Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎ).

Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ влоТСнности Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Π² Ρ„Π°ΠΉΠ»Π΅ php.ini

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° количСство Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Π² Ρ„Π°ΠΉΠ»Π΅ php.ini

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: послС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ„Π°ΠΉΠ» php.ini Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π²Π΅Π±-сСрвСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ измСнСния вступили Π² силу.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° использованиС рСсурсов

Ѐункция getrusage ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± использовании Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ рСсурса.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния: Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ассоциативный массив, содСрТащий Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Ρ‘Π½Π½Ρ‹Π΅ ΠΈΠ· систСмного Π²Ρ‹Π·ΠΎΠ²Π°. ИмСна элСмСнтов ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΏΠΎΠ»Π΅ΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования getrusage():

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. Π€ΠΎΡ‚ΠΎ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php

Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° сСрвСр

ΠšΡ€ΠΎΠΌΠ΅ описанных ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ нСпосрСдствСнных рСсурсов Π²Π΅Π±-сСрвСра, Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ограничСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ косвСнноС воздСйствиС Π½Π° рСсурсы: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° слишком большого Ρ„Π°ΠΉΠ»Π° Π½Π° сСрвСр ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ большого количСства рСсурсов для Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π»ΠΈΠ±ΠΎ привСсти ΠΊ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ дискового Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° сСрвСра. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠΌΠΈΡ‚Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠΌΠΈΠΌΠΎ Resource Limits.

Π’ частности, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°

устанавливаСт ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π·Π°ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ†Π΅Π»ΠΎΠ΅ число, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ измСряСтся Π±Π°ΠΉΡ‚Π°ΠΌΠΈ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΊΡ€Π°Ρ‰Ρ‘Π½Π½ΡƒΡŽ запись, которая описана Ρ‡ΡƒΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅.

Максимально допустимый Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ…, отправляСмых ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ POST

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ пост ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ тСкстовыС Π΄Π°Π½Π½Ρ‹Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ коммСнтария Π½Π° сайт), Ρ‚Π°ΠΊ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹. Если Π²Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ upload_max_filesize Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ большСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° сайт, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹:

которая устанавливаСт максимально допустимый Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ…, отправляСмых ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ POST. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ влияСт Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ². Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ большС значСния Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ upload_max_filesize. Π’ сущности, memory_limit Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ большС Ρ‡Π΅ΠΌ post_max_size. Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ integer, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ измСряСтся Π±Π°ΠΉΡ‚Π°ΠΌΠΈ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΊΡ€Π°Ρ‰Ρ‘Π½Π½ΡƒΡŽ запись, которая описана Π²Ρ‹ΡˆΠ΅. Если Ρ€Π°Π·ΠΌΠ΅Ρ€ POST-Π΄Π°Π½Π½Ρ‹Ρ… большС Ρ‡Π΅ΠΌ post_max_size, ΡΡƒΠΏΠ΅Ρ€Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ $_POST ΠΈ $_FILES Π±ΡƒΠ΄ΡƒΡ‚ пустыми. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅Π΄Π°Π² $_GET ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² скрипт, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚.Π΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ максимальноС врСмя выполнСния Π² PHP Π² CLI

Π― знаю, Ρ‡Ρ‚ΠΎ php CLI ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠ·-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Ρ…, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊΠΈ/процСссы Apache.

Π½ΠΎ Π΅ΡΡ‚ΡŒ Π»ΠΈ способ явно ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ max_execution_time для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… скриптов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π½Π΅ Ρ…ΠΎΡ‡Ρƒ ΠΈΠΌΠ΅Ρ‚ΡŒ свободу «Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ» ΠΈ просто Ρ…ΠΎΡ‡Ρƒ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ этот скрипт ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ?

Если Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π° этот вопрос ΠΌΠΎΠΆΠ½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° superuser.com ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это. πŸ™‚

Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ: Π― Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΡƒΠ³Π»ΠΈΠ» ΠΈ нашСл ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€:

4 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²

Π½Π° докумСнтация Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ запускС Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ стоит 0 (Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ). Он Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ это:

Edit: Π― просто ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» сам, ΠΈ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΊΠ°ΠΊ оТидалось.

set_time_limit() Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² CLI скриптах.

Ρ‡Π΅Ρ€Π΅Π· сСкунду возвращаСтся со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ сообщСниСм ΠΎΠ± ошибкС:

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ я пытался со sleep (), ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π΅ примСняСтся. Как ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» @Jon, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ вычислСниС, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ бСсконСчный Ρ†ΠΈΠΊΠ».

Π― нашСл этот интСрСсный ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² sleep () страница PHP:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: функция set_time_limit () ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ max_execution_time Π²Π»ΠΈΡΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° врСмя выполнСния самого скрипта. любоС врСмя, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ происходят Π²Π½Π΅ выполнСния скрипта, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ с использованиСм system(), функция sleep (), запросы ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚. Π΄. Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ максимального Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния скрипта

Ρƒ мСня аналогичная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Но Π² ΠΌΠΎΠ΅ΠΌ случаС Ρƒ мСня Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя, ΠΈ я Ρ…ΠΎΡ‚Π΅Π» Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ сцСнарий Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ врСмя. Как ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ…, внСшниС Π²Ρ‹Π·ΠΎΠ²Ρ‹ (ΠΈΠ»ΠΈ sleep() ) Π½Π΅ считаСтся с настроСнным ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Π°.

ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ваш сцСнарий заканчиваСтся красиво, ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ, Π΄Ρ€ΡƒΠ³ΠΎΠΉ запускаСтся с Ρ‚Π΅ΠΌ ΠΆΠ΅ pid, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° kill Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚. Π­Ρ‚ΠΎ маловСроятно, Π½ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ это ΠΊΠ°ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² PHP врСмя выполнСния скрипта – ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ max_execution_time

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. Π€ΠΎΡ‚ΠΎ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php

ВступлСниС

ΠŸΠΎΠ»ΡƒΡ‡Π°Π»ΠΈ Π»ΠΈ Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΎΡˆΠΈΠ±ΠΊΡƒ Fatal Error: Maximum execution time of 30 seconds exceeded Π² WordPress? Π­Ρ‚Π° ошибка ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΌΡƒ PHP-скрипту трСбуСтся большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для выполнСния, Ρ‡Π΅ΠΌ установлСно Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΈ, ΠΈ ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ этого скрипт Π±Ρ‹Π» остановлСн. Π­Ρ‚ΠΎ руководство ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² вопросС, ΠΊΠ°ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π² PHP врСмя выполнСния скрипта ΠΈ Ρ‚Π΅ΠΌ самым Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΡˆΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π§Ρ‚ΠΎ понадобится

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ руководства ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅:

Π¨Π°Π³ 1 – Установка ΠΏΠ»Π°Π³ΠΈΠ½Π° WP Maximum Execution Time Exceeded

Π£ WordPress ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ сообщСство, поэтому для любой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, которая Π²Π°ΠΌ понадобится, Π΅ΡΡ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ нСсколько. НС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ наша ситуация, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π² PHP врСмя выполнСния скрипта, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ WP Maximum Execution Time Exceeded ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΡˆΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ WordPress ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. Π€ΠΎΡ‚ΠΎ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php

Π­Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° max_execution_time ΠΈ для PHP врСмя выполнСния скрипта Π΄ΠΎ 60 сСкунд (1 ΠΌΠΈΠ½ΡƒΡ‚Π°). Если Π²Ρ‹ Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ρ‚ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π΅Ρ‰Ρ‘ большС – Π΄ΠΎ 120/180 сСкунд ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Π¨Π°Π³ 3 – ИзмСнСниС значСния max_execution_time Π² cPanel

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ cPanel, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° max_execution_time Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· cPanel. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π°Π·Π΄Π΅Π» Select PHP Version (Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π²Π΅Ρ€ΡΠΈΡŽ PHP).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° ссылку Switch To PHP Options (Настройки ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ вСрсий PHP).

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. Π€ΠΎΡ‚ΠΎ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php

Π£Π²Π΅Π»ΠΈΡ‡ΡŒΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π² строкС max_execution_time. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΎΠ½ΠΎ установлСно Π² 30 сСкунд ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π΅Π³ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΈ Π΄ΠΎ 60 сСкунд. НаТмитС Apply (ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ) для сохранСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php. Π€ΠΎΡ‚ΠΎ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя выполнСния скрипта php

Π’ΠΎΡ‚ ΠΈ всё, Π²Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° max_execution_time для вашСго сайта.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

БлСдуя этому руководству, Π²Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ 3 ΠΏΡƒΡ‚ΠΈ увСличСния max_execution_time для WordPress, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² PHP врСмя выполнСния скрипта ΠΈ избавится ΠΎΡ‚ ошибки Fatal Error: Maximum execution time exceeded. Если Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ ΠΎΠ±Ρ‰ΠΈΠΌ хостингом ΠΈ Π½Π΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π²Π°ΠΌ Π½Π΅ подошло, Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ своСму ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρƒ хостинга, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ Ρƒ вас ограничСния ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅.

Π•Π»Π΅Π½Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ тСхничСскоС ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² области ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΠΎΠΏΡ‹Ρ‚ программирования Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках ΠΏΠΎΠ΄ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ систСмы. Π‘ΠΎΠ»Π΅Π΅ 10 Π»Π΅Ρ‚ посвятила сфСрС Π²Π΅Π±, работая с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ CMS, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ: Drupal, Joomla, Magento ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярной Π² наши Π΄Π½ΠΈ систСмой управлСния ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ – WordPress. Π•Ρ‘ ΡΡ‚Π°Ρ‚ΡŒΠΈ всСгда тСхничСски Π²Ρ‹Π²Π΅Ρ€Π΅Π½Ρ‹ ΠΈ Ρ‚ΠΎΡ‡Π½Ρ‹, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ ΠΎΠ±Π·ΠΎΡ€ для WordPress ΠΈΠ»ΠΈ инструкции ΠΏΠΎ настройкС вашСго VPS сСрвСра.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *