ΠΠ°ΠΊ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ PHP: ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ ΠΎΡΠ»Π°Π΄ΠΊΠ° PHP ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΡΠ°ΠΌΠΈ ΡΠ°Π·ΠΎΡΠ°ΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π±ΡΡΡΡΡΠΌ, ΡΠΈΡΡΡΠΌ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ Π½ΠΎΠ²ΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅, Π·Π½Π°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΎΡΡΠ΅ΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ PHP, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌ Π½Π°Π²ΡΠΊΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ. ΠΡΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ β ΠΎΡ Π±ΡΡΡΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π² ΡΠΊΡΠΈΠΏΡΠ΅ Π΄ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° β ΠΈ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ, ΠΊΠ°ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΡΡΠ΅ΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΊΠ°ΠΊ Π² ΡΡΠ΅Π΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°ΠΊ ΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ PHP ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ?
ΠΡΡΠ΅ΡΠ½ΠΎΡΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ PHP β ΡΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ PHP Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°. ΠΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΎΠ½Π° Π΄Π°Π΅Ρ Π²Π°ΠΌ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ Π² ΠΊΠΎΠ΄Π΅ β Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ΄Π°Π²Π»ΡΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² production-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ. ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ: ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΠΊΡΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠ°ΠΊΡΡ ΠΊΠ°ΠΊ ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ, ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ Π΄Π΅Π»Π°Π΅Ρ ΠΎΡΠ»Π°Π΄ΠΊΡ Π½Π΅Π½ΡΠΆΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ.
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ β ΠΈ Π³Π΄Π΅ Π΅Π΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ β Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ Ρ PHP Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ VPS Hosting ΠΈΠ»ΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅.
Π£ΡΠΎΠ²Π½ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ PHP Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²Π·Π³Π»ΡΠ΄Π°
PHP ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ:
| ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
E_ERROR | ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ° |
E_WARNING | ΠΠ΅ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ |
E_NOTICE | ΠΠ΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ Π² ΠΊΠΎΠ΄Π΅ |
E_DEPRECATED | ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΎ ΡΡΠ½ΠΊΡΠΈΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ Π² Π±ΡΠ΄ΡΡΠΈΡ Π²Π΅ΡΡΠΈΡΡ PHP |
E_PARSE | ΠΡΠΈΠ±ΠΊΠΈ ΠΏΠ°ΡΡΠΈΠ½Π³Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ |
E_ALL | ΠΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠ΅ |
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ E_ALL Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π²Ρ ΠΏΠΎΠΉΠΌΠ°Π΅ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΏΠΎΠΏΠ°Π΄Π΅Ρ Π² production.
Π‘ΠΏΠΎΡΠΎΠ± 1: ΠΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΡΠ΅ΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ PHP Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² Π²Π°ΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡΠ΅
Π‘Π°ΠΌΡΠΉ Π±ΡΡΡΡΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΡΠ΅ΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ β Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ°ΠΌΠΎΠ΅ Π½Π°ΡΠ°Π»ΠΎ Π²Π°ΡΠ΅Π³ΠΎ PHP ΡΠ°ΠΉΠ»Π°, ΠΏΠ΅ΡΠ΅Π΄ Π»ΡΠ±ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ. ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΠ΄Π΅Π°Π»Π΅Π½ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°.
<?php
error_reporting(E_ALL); // Report all types of errors
ini_set('display_errors', 1); // Display errors directly in the browser
ini_set('display_startup_errors', 1); // Also show errors during PHP startup
?>Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ°
error_reporting(E_ALL)β Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΡΠΎΠ²Π΅Π½Ρ ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π΄Π»Ρ Π·Π°Ρ Π²Π°ΡΠ° Π²ΡΠ΅Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ ΠΎΡΠΈΠ±ΠΎΠΊ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΡΡΡΠ°ΡΠ΅Π²Π°Π½ΠΈΠΈ ΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅ΡE_ALL & ~E_NOTICEΠ΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ.ini_set('display_errors', 1)β Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ PHP Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² Π±ΡΠ°ΡΠ·Π΅Ρ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°0ΡΠΊΡΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎΡ Π²ΡΠ²ΠΎΠ΄Π° Π±Π΅Π· ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΡ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.ini_set('display_startup_errors', 1)β ΠΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΡΡΠΊΠ° PHP, ΡΡΠΎdisplay_errorsΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π½Π΅ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ.
> ΠΠ°ΠΆΠ½ΠΎ: ΠΡΠ΅Π³Π΄Π° ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΉΡΠ΅ ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°. ΠΡΠ»ΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΡ, ΠΎΠ½ΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°. ΠΠ»Ρ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
Π½Π° ΡΡΠΎΠ²Π½Π΅ php.ini.
ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠΏΠΎΡΠΎΠ±
ΠΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ:
- ΠΡΡΡΡΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
- Π‘ΡΠ΅Π΄ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ
ΠΎΡΡΠΈΠ½Π³Π°, Π³Π΄Π΅ Ρ Π²Π°Ρ Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ
php.ini - ΠΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅Π°Π½ΡΠΎΠ² ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π‘ΠΏΠΎΡΠΎΠ± 2: ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠΎΠ² ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ PHP ΡΠ΅ΡΠ΅Π· php.ini (Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ)
ΠΠ»Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° php.ini ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠΌ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π·Π΄Π΅ΡΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ ΠΊΠΎ Π²ΡΠ΅ΠΌ PHP-ΡΠΊΡΠΈΠΏΡΠ°ΠΌ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΌ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π΄Π»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
Π¨Π°Π³ 1: ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π²Π°Ρ ΡΠ°ΠΉΠ» php.ini
Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ php.ini Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°ΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π²Π΅ΡΡΠΈΠΈ PHP ΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°. Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π°ΠΉΡΠΈ Π΅Π³ΠΎ β ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ PHP-ΡΠ°ΠΉΠ» ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
<?php
phpinfo();
?>ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π½Π° Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π΅Π³ΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΡ "Loaded Configuration File". ΠΡΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ ΡΠΎΡΠ½ΡΠΉ ΠΏΡΡΡ ΠΊ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ php.ini.
Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ:
- Linux (Apache):
/etc/php/8.x/apache2/php.ini - Linux (CLI):
/etc/php/8.x/cli/php.ini - Linux (Nginx + PHP-FPM):
/etc/php/8.x/fpm/php.ini - Windows (XAMPP):
C:xamppphpphp.ini - macOS (MAMP):
/Applications/MAMP/conf/php/php.ini
> ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ: Π£Π΄Π°Π»ΠΈΡΠ΅ ΠΈΠ»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΡΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΉΠ»Ρ phpinfo() ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π² ΡΠ΅Π»ΡΡ
ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ.
Π¨Π°Π³ 2: ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» php.ini
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» php.ini Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· SSH Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅:
sudo nano /etc/php/8.x/apache2/php.iniΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈΡ , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ:
ΠΠΎ (ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ production):
display_errors = Off
display_startup_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
log_errors = OnΠΠΎΡΠ»Π΅ (ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ):
display_errors = On
display_startup_errors = On
error_reporting = E_ALL
log_errors = On
error_log = /var/log/php/error.logΠ¨Π°Π³ 3: ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ Π²Π°Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ
ΠΠΎΡΠ»Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ:
ΠΠ»Ρ Apache:
sudo systemctl restart apache2ΠΠ»Ρ Nginx Ρ PHP-FPM:
sudo systemctl restart php8.x-fpm
sudo systemctl restart nginxΠΠ»Ρ XAMPP Π½Π° Windows:
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ XAMPP ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Stop, Π·Π°ΡΠ΅ΠΌ Start ΡΡΠ΄ΠΎΠΌ Ρ Apache.
Π‘ΠΏΠΎΡΠΎΠ± 3: ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠΎΠ² ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΡΠ΅ΡΠ΅Π· .htaccess (ΡΠΎΠ»ΡΠΊΠΎ Apache)
ΠΡΠ»ΠΈ Π²Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² ΡΡΠ΅Π΄Π΅ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ
ΠΎΡΡΠΈΠ½Π³Π° Π±Π΅Π· ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ php.ini, ΠΈ Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Apache, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ PHP, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΉΠ» .htaccess Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°.
php_flag display_errors On
php_flag display_startup_errors On
php_value error_reporting 32767
php_flag log_errors On
php_value error_log /home/yourusername/logs/php_errors.logΠ§ΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 32767 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ E_ALL Π² PHP. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π½Π° ΠΏΠ»Π°Π½Π°Ρ
ΠΠ±ΡΠ΅Π³ΠΎ Π²Π΅Π±-Ρ
ΠΎΡΡΠΈΠ½Π³Π°, Π³Π΄Π΅ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½.
> ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π²Π°Ρ Ρ
ΠΎΡΡΠ΅Ρ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² PHP ΡΠ΅ΡΠ΅Π· .htaccess. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Ρ
ΠΎΡΡΡ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ ΡΡΠΎ ΠΏΠΎ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
Π‘ΠΏΠΎΡΠΎΠ± 4: ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΡΡΠ΅ΡΠΎΠ² ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ΅ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ XAMPP, MAMP ΠΈΠ»ΠΈ WAMP, ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΡΡ.
XAMPP (Windows / Linux / macOS)
- ΠΡΠΊΡΠΎΠΉΡΠ΅ XAMPP Control Panel
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ Config ΡΡΠ΄ΠΎΠΌ Ρ Apache
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ PHP (php.ini) ΠΈΠ· ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ ΡΠΏΠΈΡΠΊΠ°
- ΠΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² Π‘ΠΏΠΎΡΠΎΠ±Π΅ 2
- ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ Apache ΠΈΠ· Control Panel
MAMP (macOS)
- ΠΡΠΊΡΠΎΠΉΡΠ΅ MAMP Preferences
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ PHP
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ php.ini, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
- ΠΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅
- ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ MAMP
Π‘ΡΠ΅Π΄Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Docker
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Docker Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ PHP Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ php.ini ΡΠ°ΠΉΠ»:
RUN echo "display_errors = On" >> /usr/local/etc/php/conf.d/custom.ini
RUN echo "error_reporting = E_ALL" >> /usr/local/etc/php/conf.d/custom.iniΠ’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΎΡΡΡΡΠΎΠ² ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
ΠΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΡΡΡΠΎΠ² ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π²ΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ Π²Π²Π΅Π΄Ρ ΠΎΡΠΈΠ±ΠΊΡ Π² ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡ:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// Intentional error: undefined variable
echo $undefinedVariable;
// Intentional warning: wrong argument count
strlen();
// Intentional notice: undefined array key
$array = [];
echo $array['missing_key'];
?>ΠΡΠ»ΠΈ ΠΎΡΡΡΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, PHP Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ²ΠΎΠ΄, ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ Π½Π°:
Notice: Undefined variable: undefinedVariable in /var/www/html/test.php on line 5
Warning: strlen() expects exactly 1 argument, 0 given in /var/www/html/test.php on line 8
Notice: Undefined index: missing_key in /var/www/html/test.php on line 12ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ Π² production
ΠΠΎΠ³Π΄Π° Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ ΠΊ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, Π²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ. Π Π°ΡΠΊΡΡΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΡΠ²ΠΈΡΡ:
- ΠΠ±ΡΠΎΠ»ΡΡΠ½ΡΠ΅ ΠΏΡΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅
- ΠΠΌΠ΅Π½Π° ΡΠ°Π±Π»ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
- ΠΠ΅ΡΡΠΈΡ PHP ΠΈ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ
- ΠΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΡΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π½Π°ΡΡΡΠΎΠΉΡΠ΅ PHP Π΄Π»Ρ ΡΠΈΡ ΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΡΠ°ΠΉΠ».
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ production php.ini
display_errors = Off
display_startup_errors = Off
error_reporting = E_ALL
log_errors = On
error_log = /var/log/php/production_errors.logΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ error_reporting ΠΎΡΡΠ°Π΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ Π½Π° E_ALL Π΄Π°ΠΆΠ΅ Π² production. ΠΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ°ΠΉΠ» ΠΆΡΡΠ½Π°Π»Π° Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, Π±Π΅Π· ΡΠ°ΡΠΊΡΡΡΠΈΡ ΠΈΡ
ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΡΠΌ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΡΠΈΡΠ° ΡΠ°ΠΉΠ»Π° ΠΆΡΡΠ½Π°Π»Π° ΠΎΡΠΈΠ±ΠΎΠΊ
# Create the log directory
sudo mkdir -p /var/log/php
# Create the log file
sudo touch /var/log/php/production_errors.log
# Set appropriate ownership
sudo chown www-data:www-data /var/log/php/production_errors.log
# Restrict permissions
sudo chmod 640 /var/log/php/production_errors.logΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΡΡ ΠΆΡΡΠ½Π°Π» ΠΎΡΠΈΠ±ΠΎΠΊ PHP Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ tail:
tail -f /var/log/php/production_errors.logΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π½Π° Dedicated Server, Π³Π΄Π΅ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ root ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠΎΡΠ°ΡΠΈΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ², ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Logwatch ΠΈΠ»ΠΈ Fail2Ban.
PHP Error Reporting: Development vs. Production Settings Summary
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° | Production |
|---|---|---|
display_errors | On | Off |
display_startup_errors | On | Off |
error_reporting | E_ALL | E_ALL |
log_errors | On | On |
error_log | ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ | ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ |
Advanced: Custom Error Handlers
ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ PHP ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ set_error_handler(). ΠΡΠΎ Π΄Π°Π΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ, ΡΠΎΡΠΌΠ°ΡΠΈΡΡΡΡΡΡ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ.
<?php
function customErrorHandler(int $errno, string $errstr, string $errfile, int $errline): bool {
$timestamp = date('Y-m-d H:i:s');
$message = "[$timestamp] Error $errno: $errstr in $errfile on line $errline" . PHP_EOL;
// Log to a custom file
error_log($message, 3, '/var/log/php/custom_errors.log');
// Optionally display a friendly message to users in production
if (ini_get('display_errors')) {
echo "<pre>$message</pre>";
}
return true; // Prevent PHP's default error handler from running
}
set_error_handler('customErrorHandler');
?>ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ΅Π½Π½Ρ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠ΅Π±ΡΡΡΠΈΡ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Sentry ΠΈΠ»ΠΈ Datadog, ΠΈΠ»ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΡΠ°Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΡΠ±ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ Ρ ΠΎΡΡΠΈΠ½Π³Π° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° PHP
ΠΠ°ΡΠ° ΡΡΠ΅Π΄Π° Ρ ΠΎΡΡΠΈΠ½Π³Π° ΠΈΠ³ΡΠ°Π΅Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠΎΠ»Ρ Π² ΡΠΎΠΌ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ PHP. ΠΠΎΡ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΠ΅Π΄Π°:
- ΠΠ±ΡΠΈΠΉ Π²Π΅Π±-Ρ
ΠΎΡΡΠΈΠ½Π³ β ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ
php.ini; ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π°.htaccessΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² ΡΠΊΡΠΈΠΏΡΠ΅. ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². - VPS Hosting β ΠΠΎΠ»Π½ΡΠΉ root-Π΄ΠΎΡΡΡΠΏ, ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄
php.ini, PHP-FPM ΠΏΡΠ»Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ΄Π΅Π°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° PHP. - VPS Ρ cPanel β Π‘ΠΎΡΠ΅ΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ root Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ PHP ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°.
- ΠΡΠ΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ β ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ; Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π΄Π»Ρ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ PHP-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΊ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Ρ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½Π° PHP ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠ°Ρ ΡΡΠ΅Π΄Π° Ρ ΠΏΠΎΠ»Π½ΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ Π½Π°Π΄ ΡΡΠ΅ΠΊΠΎΠΌ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠΎ VPS ΠΈΠ»ΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ β ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ.
Π§Π°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
ΠΠΎΡΠ΅ΠΌΡ ΠΌΠΎΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ PHP Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠΎΠ² ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π² ΠΌΠΎΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡΠ΅?
ΠΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠ·Π²Π°Π½ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ php.ini, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²Π°ΡΠΈ Π²Π½ΡΡΡΠΈΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ Π²Π°Ρ Π²ΡΠ·ΠΎΠ² error_reporting(). ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π²Π°ΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ php.ini ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠΎΠ² ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠΎΠ³Ρ Π»ΠΈ Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΡΠ΅ΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°?
ΠΠ°. ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΠ°ΠΉΠ» .htaccess Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΠΌΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ PHP Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» php.ini Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π΅ΡΠ»ΠΈ Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ.
ΠΠ°ΠΌΠ΅Π΄Π»ΡΠ΅Ρ Π»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠΎΠ² ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?
ΠΠ΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΎΡΡΠ΅ΡΠ° ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°ΠΉΠ»Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄ Π² Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ .
Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ display_errors ΠΈ log_errors?
display_errors ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ ΠΎΡΠΈΠ±ΠΎΠΊ Π² Π±ΡΠ°ΡΠ·Π΅Ρ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ. log_errors Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΠ°ΠΉΠ». Π production Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ log_errors = On Ρ display_errors = Off.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ PHP β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ°Π³ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΡ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠΎΠ»ΡΠ°Π»ΠΈΠ²ΡΠ΅, Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΡΠ±ΠΎΠΈ Π² ΡΠ΅ΡΠΊΠΈΠ΅, Π΄Π΅ΠΉΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π²Π°ΠΌ ΠΏΡΡΠΌΠΎ Π½Π° ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ β ΡΠΊΠΎΠ½ΠΎΠΌΡ ΡΠ°ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°:
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
error_reporting(E_ALL)ΠΈini_set('display_errors', 1)Π΄Π»Ρ Π±ΡΡΡΡΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² - ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅
php.iniΠ΄Π»Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² ΡΡΠ΅Π΄Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ - ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
.htaccessΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π½Π΅Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊphp.iniΠ½Π° ΠΎΠ±ΡΠ΅ΠΌ Ρ ΠΎΡΡΠΈΠ½Π³Π΅ - ΠΡΠ΅Π³Π΄Π° ΠΎΡΠΊΠ»ΡΡΠ°ΠΉΡΠ΅
display_errorsΠ² production ΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠΉΡΠ΅ Π²ΡΠ²ΠΎΠ΄ ΠΎΡΠΈΠ±ΠΎΠΊ Π² Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΆΡΡΠ½Π°Π»Π° - Π Π°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΡΠ°Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΡΠ±ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ Ρ ΠΎΡΡΠΈΠ½Π³Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ±ΠΈΡΠ°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΠ±ΡΠΈΠΉ Π²Π΅Π±-Ρ ΠΎΡΡΠΈΠ½Π³ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΏΠ»Π°Π½ VPS Hosting Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ PHP ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΡΡΠ΅Π±ΡΠ΅Ρ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΠ²Π»Π°Π΄Π΅Π² ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ PHP β ΠΈ Π·Π½Π°Ρ, ΠΊΠΎΠ³Π΄Π° Π΅Π΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π°Π²Π»ΡΡΡ β Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΠ΅, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°.
Π½Π° Π²ΡΠ΅Ρ
Ρ
ΠΎΡΡΠΈΠ½Π³ΠΎΠ²ΡΡ
ΡΡΠ»ΡΠ³Π°Ρ