ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° php.ini ΡΠ°ΠΉΠ»Π°: ΠΡΠ»Π½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° PHP Π½Π° Π²Π°ΡΠΈΡ ΡΡΡΠ²ΡΡ
Π€Π°ΠΉΠ»ΡΡ php.ini Π΅ Π³Π»Π°Π²Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ» Π·Π° PHP β Π³ΡΡΠ±Π½Π°ΠΊΡΡ Π½Π° ΠΏΠΎΡΡΠΈ Π²ΡΡΠΊΠΎ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄Π°Π»ΠΈ ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Ρ WordPress, Laravel, Magento ΠΈΠ»ΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ php.ini ΠΌΠΎΠΆΠ΅ Π΄ΡΠ°ΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π²Π°ΡΠΈΡ ΡΡΡΠ²ΡΡ, Π΄Π° Π·Π°ΡΠ΅Π³Π½Π΅ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° ΠΈ Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈ Π±Π΅Π·ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ ΡΡΡ Π²Π°ΡΠΈΡ ΡΠΎΡΡΡΠ΅ΡΠ΅Π½ ΡΡΠ΅ΠΊ.
Π’ΠΎΠ²Π° Π²ΡΠ΅ΠΎΠ±Ρ
Π²Π°ΡΠ½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π²ΠΈ ΠΏΡΠ΅Π²Π΅Π΄Π΅ ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ΡΠ΅: ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²ΠΈ php.ini, ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°ΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈ ΠΊΠ°ΠΊ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ Π΄Π°Π»ΠΈ Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ°Π±ΠΎΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ.
1. ΠΠ°ΠΊΠ²ΠΎ Π΅ php.ini ΠΈ Π·Π°ΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ?
Π€Π°ΠΉΠ»ΡΡ php.ini Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΡΠ΅ΠΊΡΡΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ», ΠΊΠΎΠΉΡΠΎ PHP ΡΠ΅ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°. Π’ΠΎΠΉ ΡΡΠ΄ΡΡΠΆΠ° ΡΡΠΎΡΠΈΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ β Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΊΠΎΠΈΡΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ΠΊΠΈ Π°ΡΠΏΠ΅ΠΊΡ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° PHP ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ:
- Π Π°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ Π·Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅
- ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΠΊΠ°ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΈ Π½Π° POST Π΄Π°Π½Π½ΠΈ
- ΠΠΈΠ²Π° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΠΈΠΈ
- ΠΠ°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ PDO, cURL, OPcache)
- ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΊΠ°ΡΠΎ
disable_functionsΠΈopen_basedir - ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π° ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π°Π½Π΅ Π½Π° Π½Π΅ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅
ΠΡΠ°Π²ΠΈΠ»Π½ΠΎΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π·ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π΅ Π΅ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΡΠΎΡ Π½Π° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ β ΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π²Π»ΠΈΡΠ΅ Π½Π° ΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡΡΠ° Π½Π° Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ·ΠΈΡΠΈΡΡΠ° ΠΌΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡ ΠΎΠΏΠΈΡ. ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΈ PHP Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ° Π²ΠΎΠ΄Π΅ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π° Π·Π° Π³ΡΠ΅ΡΠΊΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, Π½Π΅ΡΠ΄Π°ΡΠ½ΠΈ ΠΊΠ°ΡΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΈΠ·ΡΠ΅ΡΠΏΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΈ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°.
ΠΠΊΠΎ Ρ
ΠΎΡΡΠΈΡΠ°ΡΠ΅ Π²Π°ΡΠΈΡΠ΅ PHP ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΏΠ»Π°Π½ VPS Hosting, ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠ»Π΅Π½ root Π΄ΠΎΡΡΡΠΏ Π·Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° php.ini β ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ Π΄Π°Π²Π° ΠΏΡΠ»Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π°Π΄ Π²Π°ΡΠ°ΡΠ° PHP ΡΡΠ΅Π΄Π°.
2. ΠΠ°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° php.ini ΡΠ°ΠΉΠ»Π°
ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° php.ini Π²Π°ΡΠΈΡΠ° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π²Π°ΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, Π²Π΅ΡΡΠΈΡ Π½Π° PHP ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ Server API (SAPI) (Apache mod_php, PHP-FPM ΠΈΠ»ΠΈ CLI). ΠΡΠΎ ΡΡΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π° Π½Π°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ ΠΌΡ.
ΠΠ΅ΡΠΎΠ΄ 1: ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ (Π½Π°ΠΉ-Π±ΡΡΠ· ΠΌΠ΅ΡΠΎΠ΄)
ΠΡΠ²ΠΎΡΠ΅ΡΠ΅ Π²Π°ΡΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈΠ»ΠΈ ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ ΡΡΠ΅Π· SSH ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅:
php --iniΠΡΠΈΠΌΠ΅ΡΠ΅Π½ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ:
Configuration File (php.ini) Path: /etc/php/8.2/cli
Loaded Configuration File: /etc/php/8.2/cli/php.ini
Scan for additional .ini files in: /etc/php/8.2/cli/conf.d
Additional .ini files parsed: /etc/php/8.2/cli/conf.d/10-opcache.ini, ...> ΠΠ°ΠΆΠ½ΠΎ: PHP ΡΠ΅ΡΡΠΎ ΠΈΠΌΠ° ΠΎΡΠ΄Π΅Π»Π½ΠΈ php.ini ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ SAPI. ΠΠ΅ΡΡΠΈΡΡΠ° CLI (/etc/php/8.2/cli/php.ini) ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° PHP ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄, Π΄ΠΎΠΊΠ°ΡΠΎ Π²Π΅ΡΡΠΈΡΡΠ° Apache ΠΈΠ»ΠΈ PHP-FPM (/etc/php/8.2/apache2/php.ini ΠΈΠ»ΠΈ /etc/php/8.2/fpm/php.ini) ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠ΅Π± Π·Π°ΡΠ²ΠΊΠΈ. ΠΠΈΠ½Π°Π³ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ Π·Π° Π²Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ.
ΠΠ΅ΡΠΎΠ΄ 2: ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° phpinfo() Π² Π±ΡΠ°ΡΠ·ΡΡ
Π’ΠΎΠ·ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°Π·ΠΊΡΠΈΠ²Π° ΡΠΎΡΠ½ΠΎ ΠΊΠΎΠΉ php.ini ΡΠ°ΠΉΠ» Π²Π°ΡΠΈΡΡ ΡΠ΅Π± ΡΡΡΠ²ΡΡ Π·Π°ΡΠ΅ΠΆΠ΄Π° β ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ Π²Π΅ΡΡΠΈΡΡΠ° CLI.
Π‘ΡΡΠΏΠΊΠ° 1: Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ² ΡΠ°ΠΉΠ» Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π½Π° Π²Π°ΡΠΈΡ ΡΠ΅Π± ΡΠ°ΠΉΡ:
sudo nano /var/www/html/info.phpΠ‘ΡΡΠΏΠΊΠ° 2: ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅:
<?php
phpinfo();
?>Π‘ΡΡΠΏΠΊΠ° 3: ΠΠ°ΠΏΠ°Π·Π΅ΡΠ΅ ΡΠ°ΠΉΠ»Π°, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΎΡΠ²ΠΎΡΠ΅ΡΠ΅ Π±ΡΠ°ΡΠ·ΡΡΠ° ΡΠΈ ΠΈ Π½Π°Π²ΠΈΠ³ΠΈΡΠ°ΠΉΡΠ΅ Π΄ΠΎ:
http://yourdomain.com/info.phpΠ‘ΡΡΠΏΠΊΠ° 4: ΠΠΎΡΡΡΡΠ΅ΡΠ΅ ΡΠ΅Π΄Π° βLoaded Configuration Fileβ Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ°. Π’ΠΎΠΉ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ ΠΏΡΠ»Π½ΠΈΡ ΠΏΡΡ Π΄ΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΈΡ php.ini ΡΠ°ΠΉΠ».
> β οΈ ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ: ΠΠ·ΡΡΠΈΠΉΡΠ΅ info.php Π²Π΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ ΡΠΏΠΎΡΡΠ΅Π±Π°. Π’ΠΎΠ·ΠΈ ΡΠ°ΠΉΠ» ΡΠ°Π·ΠΊΡΠΈΠ²Π° ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π΅ΡΠ°ΠΉΠ»ΠΈ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ°, ΠΊΠΎΠΈΡΠΎ Π½Π°ΠΏΠ°Π΄Π°ΡΠ΅Π»ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠΈΡΠ°Ρ.
sudo rm /var/www/html/info.phpΠΠ΅ΡΠΎΠ΄ 3: ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° php -r (Π±ΡΡΠ· Π΅Π΄Π½ΠΎΠ»ΠΈΠ½Π΅ΠΉΠ½ΠΈΠΊ)
php -r "echo php_ini_loaded_file();"Π’ΠΎΠ²Π° ΠΎΡΠΏΠ΅ΡΠ°ΡΠ²Π° ΠΏΡΡΡ Π½Π° Π·Π°ΡΠ΅Π΄Π΅Π½ΠΎΡΠΎ php.ini ΡΠ°ΠΉΠ» Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² Π²Π°ΡΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» β Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ».
Π§Π΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ΠΈ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° php.ini ΠΏΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°
| ΠΠ»Π°ΡΡΠΎΡΠΌΠ° / ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ | Π’ΠΈΠΏΠΈΡΠ½ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° php.ini |
|---|---|
| Ubuntu/Debian + Apache (PHP 8.2) | /etc/php/8.2/apache2/php.ini |
| Ubuntu/Debian + PHP-FPM (PHP 8.2) | /etc/php/8.2/fpm/php.ini |
| Ubuntu/Debian + CLI (PHP 8.2) | /etc/php/8.2/cli/php.ini |
| CentOS/RHEL + Apache | /etc/php.ini |
| cPanel/WHM | /usr/local/lib/php.ini |
| Windows (XAMPP) | C:xamppphpphp.ini |
| macOS (Homebrew PHP 8.2) | /opt/homebrew/etc/php/8.2/php.ini |
3. Π Π΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° php.ini ΡΠ°ΠΉΠ»Π°
Π‘ΡΡΠΏΠΊΠ° 1: ΠΡΡΠ²ΠΎ ΡΡΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅
ΠΡΠ΅Π΄ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, Π²ΠΈΠ½Π°Π³ΠΈ ΡΡΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅:
sudo cp /etc/php/8.2/apache2/php.ini /etc/php/8.2/apache2/php.ini.bakΠ’ΠΎΠ²Π° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π±ΡΡΠ·ΠΎ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, Π°ΠΊΠΎ Π½Π΅ΡΠΎ ΡΠ΅ ΠΎΠ±ΡΡΠΊΠ°.
Π‘ΡΡΠΏΠΊΠ° 2: ΠΡΠ²ΠΎΡΠ΅ΡΠ΅ ΡΠ°ΠΉΠ»Π° Π² ΡΠ΅ΠΊΡΡΠΎΠ² ΡΠ΅Π΄Π°ΠΊΡΠΎΡ
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ nano Π·Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΠΎ-ΠΏΡΠΈΡΡΠ΅Π»ΡΠΊΠΈ ΠΎΠΏΠΈΡ:
sudo nano /etc/php/8.2/apache2/php.iniΠΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ vim Π·Π° ΠΏΠΎ-Π½Π°ΠΏΡΠ΅Π΄Π½Π°Π»ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅:
sudo vim /etc/php/8.2/apache2/php.iniΠ‘ΡΡΠΏΠΊΠ° 3: ΠΠ°Π²ΠΈΠ³ΠΈΡΠ°ΠΉΡΠ΅ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°ΠΉΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ
Π€Π°ΠΉΠ»ΡΡ php.ini Π΅ Π³ΠΎΠ»ΡΠΌ (ΡΠ΅ΡΡΠΎ 1500+ ΡΠ΅Π΄ΠΎΠ²Π΅). ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π·Π° ΡΡΡΡΠ΅Π½Π΅ Π½Π° Π²Π°ΡΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, Π·Π° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ ΠΊΡΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ:
- Π
nano: ΠΠ°ΡΠΈΡΠ½Π΅ΡΠ΅CTRL + W, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρmemory_limit) - Π
vim: ΠΠ°ΡΠΈΡΠ½Π΅ΡΠ΅/, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΡΠ°
Π‘ΡΡΠΏΠΊΠ° 4: ΠΠ°ΠΏΠ°Π·Π΅ΡΠ΅ ΠΈ ΠΈΠ·Π»Π΅Π·ΡΠ΅
- nano: ΠΠ°ΡΠΈΡΠ½Π΅ΡΠ΅
CTRL + X, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π°Y, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π°Enter - vim: ΠΠ°ΡΠΈΡΠ½Π΅ΡΠ΅
ESC, Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅:wq, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π½Π°ΡΠΈΡΠ½Π΅ΡΠ΅Enter
4. ΠΠ»ΡΡΠ½ΠΈ php.ini Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ ΠΎΠ±ΡΡΠ½Π΅Π½ΠΈ
ΠΡΠΎ Π΄Π΅ΡΠ°ΠΉΠ»Π΅Π½ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡΠ΅ php.ini Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅:
ΠΠ°ΠΌΠ΅Ρ ΠΈ Π»ΠΈΠΌΠΈΡΠΈ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅
; Maximum memory a single PHP script can allocate
memory_limit = 256M
; Maximum time (in seconds) a script is allowed to run
max_execution_time = 60
; Maximum time PHP will spend parsing request data
max_input_time = 120
; Maximum number of input variables (important for complex forms)
max_input_vars = 3000ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° ΠΊΠ°ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅
; Whether file uploads are permitted
file_uploads = On
; Maximum size of an individual uploaded file
upload_max_filesize = 64M
; Maximum size of all POST data (must be >= upload_max_filesize)
post_max_size = 64M
; Maximum number of files that can be uploaded simultaneously
max_file_uploads = 20> ΠΡΠ°Π²ΠΈΠ»ΠΎ Π½Π° ΠΏΠ°Π»Π΅ΡΠ°: post_max_size ΡΡΡΠ±Π²Π° Π²ΠΈΠ½Π°Π³ΠΈ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π²Π½Π° Π½Π° ΠΈΠ»ΠΈ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° ΠΎΡ upload_max_filesize. ΠΠΊΠΎ post_max_size Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠ°, ΠΊΠ°ΡΠ²Π°Π½ΠΈΡΡΠ° ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠ²Π°Π»ΡΡ ΠΌΡΠ»ΡΠ°Π»ΠΈΠ²ΠΎ.
ΠΠΎΠΊΠ»Π°Π΄Π²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅
; ---- DEVELOPMENT ENVIRONMENT ----
; Show all errors on screen (never use in production)
error_reporting = E_ALL
display_errors = On
display_startup_errors = On
; ---- PRODUCTION ENVIRONMENT ----
; Log errors to a file, never display them to users
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /var/log/php/error.logΠ£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΠΈΠΈ
; Where session data is stored on the server
session.save_path = "/var/lib/php/sessions"
; Session cookie lifetime in seconds (0 = until browser closes)
session.cookie_lifetime = 0
; Prevent JavaScript from accessing session cookies (XSS protection)
session.cookie_httponly = On
; Only send session cookies over HTTPS
session.cookie_secure = On
; Strict session ID mode (prevents session fixation attacks)
session.use_strict_mode = OnOPcache (Π£ΡΠΊΠΎΡΠΈΡΠ΅Π» Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ)
OPcache Π΄ΡΠ°ΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° PHP ΡΡΠ΅Π· ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ Π±Π°ΠΉΡΠΊΠΎΠ΄ Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π² ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ:
opcache.enable = 1
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.revalidate_freq = 60
opcache.fast_shutdown = 15. Π Π΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π²Π°ΡΠΈΡ ΡΠ΅Π± ΡΡΡΠ²ΡΡ
ΠΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² php.ini Π½Π΅ Π²Π»ΠΈΠ·Π°Ρ Π² ΡΠΈΠ»Π°, Π΄ΠΎΠΊΠ°ΡΠΎ Π½Π΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° Π²Π°ΡΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ:
Apache (mod_php)
sudo systemctl restart apache2
# or on CentOS/RHEL:
sudo systemctl restart httpdNginx + PHP-FPM
# Restart PHP-FPM (replace 8.2 with your PHP version)
sudo systemctl restart php8.2-fpm
# Restart Nginx
sudo systemctl restart nginxGraceful Reload (Zero Downtime)
ΠΠ° production ΡΡΡΠ²ΡΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ graceful reload, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½Π΅ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΈ Π²ΡΡΠ·ΠΊΠΈ:
# Apache graceful reload
sudo systemctl reload apache2
# PHP-FPM graceful reload
sudo systemctl reload php8.2-fpmΠΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π°Π»ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ
sudo systemctl status apache2
sudo systemctl status php8.2-fpm6. ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ
Π‘Π»Π΅Π΄ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π²Π°ΡΠΈΡ ΡΠ΅ΡΠ²ΡΡ, ΠΏΠΎΡΠ²ΡΡΠ΄Π΅ΡΠ΅, ΡΠ΅ Π½ΠΎΠ²ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈ:
ΠΠ΅ΡΠΎΠ΄ 1: Command Line Grep
# Check memory_limit
php -i | grep memory_limit
# Check upload_max_filesize
php -i | grep upload_max_filesize
# Check multiple values at once
php -i | grep -E 'memory_limit|upload_max_filesize|post_max_size|max_execution_time'ΠΠ΅ΡΠΎΠ΄ 2: phpinfo() Page
ΠΠ΅ΡΠ΅ΡΡΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ»Π° info.php Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ (Π½Π΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΡΡΠΈΠ΅ΡΠ΅ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅) ΠΈ ΠΏΠΎΡΡΡΡΠ΅ΡΠ΅ Π²Π°ΡΠΈΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ. ΠΡΠΎΠΌΠ΅Π½Π΅Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠ²ΡΡ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΈΡΠ΅ "Local Value" ΠΈ "Master Value".
ΠΠ΅ΡΠΎΠ΄ 3: PHP One-Liner
php -r "echo ini_get('memory_limit');"7. ΠΠ°ΠΏΡΠ΅Π΄Π½ΠΈ ΡΡΠ²Π΅ΡΠΈ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° php.ini
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° .htaccess Π·Π° ΠΎΡΠΌΡΠ½Π° Π½Π° php.ini (ΡΠ°ΠΌΠΎ Apache)
ΠΠΊΠΎ ΡΡΠ΅ Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ Ρ
ΠΎΡΡΠΈΠ½Π³ ΠΈΠ»ΠΈ Π½ΡΠΌΠ°ΡΠ΅ root Π΄ΠΎΡΡΡΠΏ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΠΌΠ΅Π½ΠΈΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ php.ini Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠ΅Π· .htaccess:
php_value memory_limit 256M
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 120> ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°: Π’ΠΎΠ²Π° ΡΠ°Π±ΠΎΡΠΈ ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ AllowOverride Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΠΈ Ρ
ΠΎΡΡΠΈΠ½Π³ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΎΡΠΌΡΠ½Π° Π½Π° PHP Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ini_set() Π² PHP ΠΊΠΎΠ΄
ΠΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΠΌΠ΅Π½ΠΈΡΠ΅ php.ini ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π² Π²Π°ΡΠΈΡΠ΅ PHP ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅:
<?php
ini_set('memory_limit', '512M');
ini_set('max_execution_time', '300');
?>Π€Π°ΠΉΠ»ΠΎΠ²Π΅ php.ini ΠΏΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ (PHP-FPM)
Π‘ PHP-FPM ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ php.ini Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΡΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ Ρ
ΠΎΡΡΠΎΠ²Π΅ ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΡΡΠ΅Π· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΠΏΡΠ»Π° Π² /etc/php/8.2/fpm/pool.d/. Π’ΠΎΠ²Π° Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ Ρ
ΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ.
ΠΠΊΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ PHP ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, VPS Ρ cPanel Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° PHP Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° Π²ΡΠ΅ΠΊΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½ ΡΡΠ΅Π· Π³ΡΠ°ΡΠΈΡΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±Π΅Π· ΡΡΡΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
8. Security Hardening via php.ini
ΠΡΠ°Π²ΠΈΠ»Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° php.ini Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΠΉ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈΡΠ΅ Π½Π°ΡΠΈΠ½ΠΈ Π΄Π° ΡΠΊΡΠ΅ΠΏΠΈΡΠ΅ Π²Π°ΡΠ°ΡΠ° PHP ΡΡΠ΅Π΄Π° ΡΡΠ΅ΡΡ ΡΠ΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ΠΈΡΠ΅ Π°ΡΠ°ΠΊΠΈ.
ΠΠ΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΉΡΠ΅ ΠΎΠΏΠ°ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
; Prevent execution of system commands from PHP scripts
disable_functions = exec, passthru, shell_exec, system, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_sourceΠΠ³ΡΠ°Π½ΠΈΡΠ΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°
; Limit PHP file access to specific directories
open_basedir = /var/www/html:/tmpΠ‘ΠΊΡΠΈΠΉΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° PHP
; Don't expose PHP version in HTTP headers
expose_php = OffΠΠ΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΉΡΠ΅ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅
; Prevent PHP from including remote URLs (common attack vector)
allow_url_fopen = Off
allow_url_include = OffΠ£ΠΊΡΠ΅ΠΏΠ΅ΡΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠ΅ΡΠΈΡΡΠ°
session.cookie_httponly = On
session.cookie_secure = On
session.use_strict_mode = On
session.cookie_samesite = "Strict"> Pro Tip: ΠΠΊΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ Π΅Π»Π΅ΠΊΡΡΠΎΠ½Π΅Π½ ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠ΅ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΠΉΡΠ΅ Π²Π°ΡΠΈΡ ΡΠΊΡΠ΅ΠΏΠ΅Π½ php.ini Ρ Π²Π°Π»ΠΈΠ΄Π΅Π½ SSL Certificate, Π·Π° Π΄Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΡΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅. HTTPS Π΅ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π΅Π½ Π·Π° session.cookie_secure = On Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ.
9. Π§Π΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ Π² php.ini, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅
| ΠΡΠ΅ΡΠΊΠ° | ΠΠ°ΡΠΎ Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ | Π Π΅ΡΠ΅Π½ΠΈΠ΅ |
|---|---|---|
ΠΠ°ΡΡΡΠΎΠΉΠ²Π°Π½Π΅ Π½Π° memory_limit = -1 Π² production | ΠΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅ Π΄Π° ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ°Ρ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° RAM, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠΈΡΠΈΠ½ΡΠ²Π° ΡΡΠΈΠ² Π½Π° ΡΡΡΠ²ΡΡΠ° | Π£ΡΡΠ°Π½ΠΎΠ²Π΅ΡΠ΅ ΡΠ°Π·ΡΠΌΠ½Π° Π³ΡΠ°Π½ΠΈΡΠ° ΠΊΠ°ΡΠΎ 256M ΠΈΠ»ΠΈ 512M |
display_errors = On Π² production | Π Π°Π·ΠΊΡΠΈΠ²Π° ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΡΠΈΡΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΡΡΠ΅ΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ | Π£ΡΡΠ°Π½ΠΎΠ²Π΅ΡΠ΅ Π½Π° Off ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ log_errors = On Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π° |
post_max_size < upload_max_filesize | ΠΡΠΈΡΠΈΠ½ΡΠ²Π° ΡΠΈΡ ΠΈ Π½Π΅ΡΡΠΏΠ΅Ρ ΠΈ ΠΏΡΠΈ ΠΊΠ°ΡΠ²Π°Π½Π΅ | ΠΠΈΠ½Π°Π³ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π΅ΡΠ΅ post_max_size β₯ upload_max_filesize |
Π Π΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠ½ΠΈΡ php.ini | ΠΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ ΠΊΡΠΌ ΡΠ΅Π± Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ | ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ phpinfo() Π·Π° ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΉ ΡΠ°ΠΉΠ» ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π° ΠΎΡ Π²Π°ΡΠΈΡ ΡΠ΅Π± ΡΡΡΠ²ΡΡ |
| ΠΠ΅ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΡΡΡΠ²ΡΡΠ° ΡΠ»Π΅Π΄ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ | Π‘ΡΠ°ΡΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΡΡΠ°Π²Π°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΈ | ΠΠΈΠ½Π°Π³ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·Π΅ΡΠ΅ Apache ΠΈΠ»ΠΈ PHP-FPM ΡΠ»Π΅Π΄ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ |
ΠΡΡΠ°Π²ΡΠ½Π΅ Π½Π° info.php Π½Π° ΡΡΡΠ²ΡΡΠ° | Π Π°Π·ΠΊΡΠΈΠ²Π° ΠΏΡΠ»Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΡΡΡΠ²ΡΡΠ° Π½Π° Π½Π°ΠΏΠ°Π΄Π°ΡΠ΅Π»ΠΈΡΠ΅ | ΠΠ·ΡΡΠΈΠΉΡΠ΅ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ |
ΠΠ°ΡΡΡΠΎΠΉΠ²Π°Π½Π΅ Π½Π° allow_url_include = On | ΠΠΊΡΠΈΠ²ΠΈΡΠ° Π°ΡΠ°ΠΊΠΈ Ρ Remote File Inclusion (RFI) | ΠΠΈΠ½Π°Π³ΠΈ Π΄Π΅ΡΠΆΠΈΡΠ΅ ΡΠΎΠ²Π° Off |
10. ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ²Π»Π°Π΄ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° php.ini Π΅ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ ΡΠΌΠ΅Π½ΠΈΠ΅ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΈΠ»ΠΈ ΡΠ΅Π± ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΡΠ°Π²ΠΈΠ»Π½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°Ρ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π±Π°Π²Π΅Π½, ΡΡΠ·Π²ΠΈΠΌ ΡΡΡΠ²ΡΡ ΠΈ Π±ΡΡΠ·, Π·Π°ΡΠΈΡΠ΅Π½, Π³ΠΎΡΠΎΠ² Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΡΡΠ²ΡΡ.
ΠΠ° Π΄Π° ΠΎΠ±ΠΎΠ±ΡΠΈΠΌ ΠΊΠ»ΡΡΠΎΠ²ΠΈΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠΈ:
- ΠΠΈΠ½Π°Π³ΠΈ ΠΏΡΠ°Π²Π΅ΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π°
php.iniΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ - ΠΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ ΡΠ°ΠΉΠ» β CLI ΠΈ ΡΠ΅Π± ΡΡΡΠ²ΡΡΠ½ΠΈΡΠ΅ SAPI ΡΠ΅ΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ
php.iniΡΠ°ΠΉΠ»ΠΎΠ²Π΅ - ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Π»ΠΈΠΌΠΈΡΠΈΡΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ (
memory_limit,max_execution_time,upload_max_filesize) Π΄Π° ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°Ρ Π½Π° Π½ΡΠΆΠ΄ΠΈΡΠ΅ Π½Π° Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ - Π£ΠΊΡΠ΅ΠΏΠ΅ΡΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° ΡΡΠ΅Π· Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΠ°ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° Π²Π΅ΡΡΠΈΡΡΠ° ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅
- ΠΠΊΡΠΈΠ²ΠΈΡΠ°ΠΉΡΠ΅ OPcache Π·Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΏΠ΅ΡΠ°Π»Π±ΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ
- ΠΠΈΠΊΠΎΠ³Π° Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π°ΠΉΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ β Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π° Π³ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°ΠΉΡΠ΅
- Π Π΅ΡΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Π²Π°ΡΠΈΡ ΡΠ΅Π± ΡΡΡΠ²ΡΡ ΡΠ»Π΅Π΄ Π²ΡΡΠΊΠ° ΠΏΡΠΎΠΌΡΠ½Π° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Ρ
phpinfo()ΠΈΠ»ΠΈphp -i
Π₯ΠΎΡΡΠΈΠ½Π³ ΡΡΠ΅Π΄Π°ΡΠ°, ΠΊΠΎΡΡΠΎ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅, ΡΡΡΠΎ ΠΈΠ³ΡΠ°Π΅ Π³ΠΎΠ»ΡΠΌΠ° ΡΠΎΠ»Ρ Π² ΡΠΎΠ²Π° ΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ» ΠΈΠΌΠ°ΡΠ΅ Π½Π°Π΄ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° PHP. Π‘ Dedicated Servers ΠΎΡ AlexHost ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ ΠΏΡΠ»Π΅Π½, Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° PHP Π½Π° Π²Π°ΡΠΈΡ ΡΡΡΠ²ΡΡ β ΠΈΠ΄Π΅Π°Π»Π½ΠΎ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π²ΠΈΡΠΎΠΊ ΡΡΠ°ΡΠΈΠΊ ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ. ΠΠ° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΈΠ»ΠΈ Π΅ΠΊΠΈΠΏΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ΠΏΡΡΠ²Π° Π·Π°ΠΏΠΎΡΠ²Π°Ρ, ΠΏΠ»Π°Π½ΠΈΡΠ΅ Π·Π° Shared Web Hosting ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½Π° ΡΡΠ΅Π΄Π°, ΠΊΡΠ΄Π΅ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π° PHP ΡΠ° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π·Π° Π²Π°Ρ.
Π Π΅Π΄ΠΎΠ²Π½ΠΎ ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π°ΠΉΡΠ΅ Π²Π°ΡΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° php.ini Π΄ΠΎΠΊΠ°ΡΠΎ Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°, PHP Π²Π΅ΡΡΠΈΠΈΡΠ΅ ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΈ Π²Π°ΡΠΈΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΡΡΠ°ΡΠΈΠΊ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ. ΠΠΎΠ±ΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅Π½Π° PHP ΡΡΠ΅Π΄Π° Π½Π΅ Π΅ Π΅Π΄Π½ΠΎΠΊΡΠ°ΡΠ½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° β ΡΠΎΠ²Π° Π΅ ΠΏΠΎΡΡΠΎΡΠ½Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°, ΠΊΠΎΡΡΠΎ Π΄Π°Π²Π° Π΄ΠΈΠ²ΠΈΠ΄Π΅Π½ΡΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ ΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ.
ΠΎΡ Π²ΡΠΈΡΠΊΠΈ Ρ
ΠΎΡΡΠΈΠ½Π³ ΡΡΠ»ΡΠ³ΠΈ