ΠΠ½ΠΎΠ³Ρ Π»ΡΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ apache2 ΠΊΠ°ΠΊΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ. Π‘Π΅ΠΏΠ°ΠΊ, ΠΌΠ°Π»ΠΊΡ Π»ΡΡΠ΅ ΡΠ°Π·ΠΌΠΈΡΠ»ΡΠ²Π°Π°Ρ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ, ΡΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»Π½ΠΎ Π²Π»ΠΈΡΠ°Π΅ Π½Π° Π±ΡΠ·ΠΈΠ½Π°ΡΠ° Π½Π° Π²ΡΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°, Π±ΡΠ·ΠΈΠ½Π°ΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠΊΡΠΈΠΏΡΠΈΡΠ΅ (ΠΎΡΠΎΠ±Π΅Π½ΠΎ php), ΠΊΠ°ΠΊΠΎ ΠΈ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ ΠΈ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π°ΡΠ° Π½Π° RAM ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°.
Π’Π°ΠΊΠ°, ΡΠ»Π΅Π΄Π½ΠΈΠΎΡ ΠΏΡΠΈΡΠ°ΡΠ½ΠΈΠΊ ΡΡΠ΅Π±Π° Π΄Π° ΠΈΠΌ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π½Π° ΠΏΠΎΡΠ΅ΡΠ½ΠΈΡΠΈΡΠ΅ (ΠΈ Π½Π΅ ΡΠ°ΠΌΠΎ) ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ.
Π‘ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΈ ΠΏΠΎΠ΄ΠΎΠ»Ρ Π±Π΅Π° ΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΈ Π½Π° Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.
ΠΠ½Π°ΡΠΈ, Π°ΡΠ΄Π΅ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅.
1. ΠΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°ΡΠ΅ Π½Π° Π½Π΅ΠΈΡΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ
ΠΡΠ²ΠΈΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π΄Π° Π³ΠΈ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΡΡΠΎ Π½Π΅ Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅:
Π‘ΠΏΠΈΡΠΎΠΊΠΎΡ Π½Π° ΡΠ΅ΠΊΠΎΠ²Π½ΠΎ ΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ ΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°:
apache2ctl -M
ΠΠ° Π΄Π° Π³ΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΎΡ, ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°:
a2dismod *Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ*
Π‘ΠΏΠΎΡΠ΅Π΄ ΡΠΎΠ°, Π·Π° Π΄Π° Π³ΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΎΡ, ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°:
a2enmod *Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ*
ΠΠ΅ ΠΌΠΎΠ»ΠΈΠΌΠ΅ ΠΈΠΌΠ°ΡΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π΄Π΅ΠΊΠ° ΠΊΠΎΠ³Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ a2dismod, ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΎΡ ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π±Π΅Π· ΡΠ°ΠΌΠΈΠΎΡ Π·Π±ΠΎΡ ΠΌΠΎΠ΄ΡΠ».
ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΡΡΠ΅ Π²ΠΎ ΠΈΠ·Π»Π΅Π·ΠΎΡ ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° apache2ctl -M Π²ΠΈΠ΄ΠΎΠ² ΠΏΡΠΎΠΊΡΠΈ_ΠΌΠΎΠ΄ΡΠ», ΠΏΠΎΡΠΎΠ° Π·Π° Π΄Π° Π³ΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈΡΠ΅ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° - a2dismod ΠΏΡΠΎΠΊΡΠΈ
ΠΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΠΊΠΎΠΈ Π½Π°ΡΠΌΠ½ΠΎΠ³Ρ Π³ΠΎ Π²ΡΠΈΡΡΠ²Π°Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΡ (ΠΎΠ΄ Π»ΠΈΡΠ½ΠΎ ΠΈΡΠΊΡΡΡΠ²ΠΎ) ΡΠ΅:
- PHP, Ruby, Perl ΠΈ Π΄ΡΡΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°Π·ΠΈΡΠΈ Π·Π° ΡΠΊΡΠΈΠΏΡΠΈΡΠ°ΡΠ΅
- SSL
- Π Π΅ΡΠΈΡΠ°
- CGI-
ΠΠ°ΡΠΎΠ°, Π²ΠΎ ΡΠ»ΡΡΠ°ΠΈ ΠΊΠΎΠ³Π° Π½Π΅ Π²ΠΈ ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ ΠΎΠ²ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΡΠ²Π°ΠΌ Π΄Π° Π³ΠΈ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈΡΠ΅ ΠΎΠ²ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
ΠΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΏΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ ΠΌΠΎΠ΄ΡΠ», ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΡΠ²Π°ΠΌ Π΄Π° ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° - apache2ctl ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°, ΠΊΠΎΡ ΡΠ΅ ΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΈ Π΄ΠΎΠΊΠΎΠ»ΠΊΡ Π½Π΅ΠΊΠΎΡ ΠΎΠ΄ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠΌ Π±ΠΈΠ» Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π΅Π½, ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π³ΡΠ΅ΡΠΊΠ°.
2. ΠΡΠΎΠΌΠ΅Π½Π° Π½Π° MPM (ΠΠΎΠ΄ΡΠ» Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΠΊΡΠ°ΡΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°) ΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ php-fpm
Π‘ΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ, ΠΏΠΎ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ°ΡΠ°, apache2 ΠΊΠΎΡΠΈΡΡΠΈ MPM Prefork (1 Π½ΠΈΡΠΊΠ° Π½Π° 1 Π²ΡΡΠΊΠ°), ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π³ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅, Π½ΠΎ Π²ΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡΠ° ΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡΠ°.
ΠΠΎ, Π·Π° Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π°Ρ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅, ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΡΠ²Π°ΠΌ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° MPM Worker, ΠΊΠΎΡ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π½ΠΈΡΠΊΠΈ ΠΏΠΎ Π²ΡΡΠΊΠ°.
ΠΠ° Π΄Π° Π³ΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈΠΌΠ΅, Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:
a2dismod mpm_prefork //ΠΡΠΊΠ»ΡΡΠ°Π΅ΠΌ prefork
a2dismod php7.3 //ΠΡΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ php, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ prefork
a2enmod mpm_worker //ΠΠΊΠ»ΡΡΠ°Π΅ΠΌ worker
ΠΠ΅ΡΡΡΠΎΠ°, ΠΏΡΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° Worker ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΈΠ΄Π΅ΡΠ΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π±ΠΈΠ΄Π΅ΡΡΠΈ ... ΠΠΎΠ΄ΡΠ»ΠΎΡ php7.3 Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»ΠΎΡ Prefork.
ΠΠ° Π΄Π° Π³ΠΎ ΡΠ΅ΡΠΈΠΌΠ΅ ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π΄Π° Π³ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΎΡ php7.3-fpm, ΠΊΠΎΡ ΡΠ΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° PHP ΡΠΊΡΠΈΠΏΡΠΈ:
apt-get update && apt-get install php7.3-fpm //Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ
systemctl enable php7.3-fpm && systemctl start php7.3-fpm //ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π² Π°Π²ΡΠΎΠ·Π°Π³ΡΡΠ·ΠΊΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ
a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf //ΠΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ Π΄Π»Ρ Π½Π΅Π³ΠΎ
ΠΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΏΠΎΠΌΠ΅Π½Π΅ Π΄Π΅ΠΊΠ° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ΡΠΎ php-fpm ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ° Π½Π°ΠΌΠ°Π»ΠΈ ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π°ΡΠ° Π½Π° RAM ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° ΡΡΠΎ ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡ apache2 ΠΈ ΠΌΠ°Π»ΠΊΡ ΡΠ΅ ΡΠ° Π·Π°Π±ΡΠ·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° PHP ΡΠΊΡΠΈΠΏΡΠΈΡΠ΅.
3. ΠΠ°ΠΊΠ»ΡΡΠΎΠΊ
Π’Π°ΠΊΠ°, ΡΠΎ ΡΠ°ΠΊΠ²ΠΈ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΡΠΏΠ΅Π°Π²ΠΌΠ΅ Π΄Π° Π³ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ ΠΈ Π΄Π° Π³ΠΎ Π½Π°ΠΌΠ°Π»ΠΈΠΌΠ΅ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΌΠ°ΡΠΈΠ½Π°ΡΠ° (Π²ΠΎ ΠΎΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ RPI3).
Π‘Π΅ ΡΠ°Π·Π±ΠΈΡΠ°, ΠΏΠΎΡΡΠΎΡΠ°Ρ ΡΡΠΎΡΠΈΡΠΈ Π΄ΡΡΠ³ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠ°, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° (ΡΡΠΎ Π΅ Π½Π°Π²ΠΈΡΡΠΈΠ½Π° ΠΊΠΎΡΠΈΡΠ½ΠΎ, Π½ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ΅ Π²Π΅ΡΠ΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΈ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ), ΠΏΡΠΎΠΌΠ΅Π½Π° Π½Π° ΠΏΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ Π·Π° MPM (Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°), ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°ΡΠ΅ Π½Π° HostnameLookups ΠΈΡΠ½., Π½ΠΎ Π²ΠΎ ΠΎΠ²Π°Π° ΡΡΠ°ΡΠΈΡΠ° ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΠΎΠ² Π΄Π° ΠΎΠ΄ΡΠ°Π·ΡΠ²Π°Π°Ρ ΠΠ²Π° ΡΠ΅ ΡΠΎΡΠΊΠΈΡΠ΅ ΠΊΠΎΠΈ Π½Π°ΡΠΌΠ½ΠΎΠ³Ρ ΠΌΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Π°, Π° ΡΠ΅ Π½Π°Π΄Π΅Π²Π°ΠΌ Π΄Π΅ΠΊΠ° ΡΠ΅ ΠΈΠΌ ΠΏΠΎΠΌΠΎΠ³Π½Π°ΠΌ ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΡΠ΅.
ΠΠ·Π²ΠΎΡ: www.habr.com