Како Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° PCRE2 Π·Π° Apache 2.4

Π‘ΠΈ сакал Π΄Π° Π³ΠΎ сподСлам ΠΌΠΎΠ΅Ρ‚ΠΎ искуство Π·Π° ΠΏΡ€Π΅Π²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° Apache 2.4 Π½Π° PCRE2, бидСјќи Π΄ΡƒΡ€ΠΈ ΠΈ PHP 7 ја ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° PCRE2 Π΄ΠΎΠ»Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅, Π½ΠΎ Π€ΠΎΠ½Π΄Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° софтвСр со ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Apache сè ΡƒΡˆΡ‚Π΅ Π½Π΅ ја ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π°.
Π‘Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°, сСга сум Π²Π΅Ρ€ΠΎΡ˜Π°Ρ‚Π½ΠΎ ΠΏΡ€Π΅Π΄ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Apache со ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° PCRE2, бидСјќи Π³ΠΈ користам ΠΈΠ·Π²ΠΎΡ€ΠΈΡ‚Π΅ ΠΎΠ΄ Apache git, ΡˆΡ‚ΠΎ Π½ΠΈ ΠΊΠ°ΠΆΡƒΠ²Π° Π΄Π΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° PCRE2 Π΅ вСќС ΠΌΠΎΠΆΠ½Π° Π²ΠΎ слСдното ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, Π½ΠΎ Π·Π° ΠΎΠ½ΠΈΠ΅ ΠΊΠΎΠΈ вСќС сакаат ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° PCRE2 Π²ΠΎ Apache 2.4, Π° ΠΊΠΎΠΈ Π½Π΅ сакаат Π΄Π° Ρ‡Π΅ΠΊΠ°Π°Ρ‚ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡƒΠ²Π°ΡšΠ΅ сподСлувам Π΅Π΄Π΅Π½ ΠΎΠ΄ Π½Π°Ρ‡ΠΈΠ½ΠΈΡ‚Π΅.

Π‘Ρ‚Π°Ρ‚ΠΈΡ˜Π°Ρ‚Π° прСтпоставува Π΄Π΅ΠΊΠ° Π³ΠΎ собиратС Ρ†Π΅Π»ΠΈΠΎΡ‚ Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π΅Π½ софтвСр ΠΎΠ΄ ΠΈΠ·Π²ΠΎΡ€Π½ΠΈΠΎΡ‚ ΠΊΠΎΠ΄, список Π½Π° софтвСр ΠΈ Π²Π΅Ρ€Π·ΠΈΠΈ Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΡ‚ Π½Π° ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅:

PCRE2-10.33
АПР 1.7.0
APR-util 1.6.1
Apache httpd 2.4.41

Π§Π΅ΠΊΠΎΡ€ Π΅Π΄Π΅Π½: ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Ρ˜ PCRE2

АјдС Π΄Π° Π³ΠΎ прСскокнСмС ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΡ‚ Π½Π° ΠΏΡ€Π΅Π·Π΅ΠΌΠ°ΡšΠ΅ Π½Π° ΠΈΠ·Π²ΠΎΡ€ΠΈΡ‚Π΅ ΠΎΠ΄ ΠΎΡ„ΠΈΡ†ΠΈΡ˜Π°Π»Π½ΠΈΡ‚Π΅ ΠΈΠ·Π²ΠΎΡ€ΠΈ бидСјќи Ρ‚ΠΎΠ° Π΅ ΠΏΡ€Π΅ΠΌΠ½ΠΎΠ³Ρƒ ΠΎΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΎ, Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ стС ја ΠΎΡ‚ΠΏΠ°ΠΊΡƒΠ²Π°Π»Π΅ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚Π°, ΠΎΠ΄Π΅Ρ‚Π΅ Π²ΠΎ ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° со ΠΈΠ·Π²ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° PCRE2 ΠΈ ΠΈΠ·Π²Ρ€ΡˆΠ΅Ρ‚Π΅ ја слСднава ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π½Π° UTF:

./configure --prefix=/etc/webserver/pcre2-1033 --enable-pcre2-8 --enable-pcre2-16 --enable-pcre2-32 --enable-unicode

Π’ΠΎ прСфиксот, Π½Π°Π²Π΅Π΄Π΅Ρ‚Π΅ ја Π²Π°ΡˆΠ°Ρ‚Π° ΠΏΠ°Ρ‚Π΅ΠΊΠ° Π°ΠΊΠΎ Π½Π΅ сакатС Π΄Π° ја користитС стандардната Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Π° Π·Π° Π΄Π° ја инсталиратС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π°:

--prefix=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Π’ΠΎ спротивно ΡΠΎΠ±ΠΈΡ€Π°Ρˆ Π±Π΅Π· прСфикс.

ΠžΡΡ‚Π°Π½Π°Ρ‚ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΡƒΠΊΠ°ΠΆΡƒΠ²Π°Π°Ρ‚ Π½Π° Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π°Ρ‡ΠΈ Π·Π° 8-Π±ΠΈΡ‚Π½ΠΈ, 16-Π±ΠΈΡ‚Π½ΠΈ ΠΈ 32-Π±ΠΈΡ‚Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ со ΠΊΠΎΠ΄ΠΎΠ²ΠΈ PCRE, Π²ΠΎ ΠΎΠ²Π°Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π° ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ бСшС ΠΈΠ·Π²Ρ€ΡˆΠ΅Π½ΠΎ со Π½ΠΈΠ².

И, сС Ρ€Π°Π·Π±ΠΈΡ€Π°, Π½ΠΈΠ΅ ја составувамС ΠΎΠ²Π°Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ΡΠ΅ΠΊΠ²Π΅Π½Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:

make
make install

Ако сè Π΅ Π²ΠΎ Ρ€Π΅Π΄ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΏΠΎΠΌΠΈΠ½Π° Π±Π΅Π· Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅Ρ‚Π΅ Π½Π° слСдниот Ρ‡Π΅ΠΊΠΎΡ€.

Π§Π΅ΠΊΠΎΡ€ Π΄Π²Π°: ΠΏΠΎΠ²Ρ€Π·Π΅Ρ‚Π΅ ја Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° PCRE2 со APR

Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ Apache Π³ΠΈ составува ΠΈΠ·Π²ΠΎΡ€ΠΈΡ‚Π΅ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ APR, Ρ‚Ρ€Π΅Π±Π° Π΄Π° ја Π²ΠΊΠ»ΡƒΡ‡ΠΈΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π²ΠΎ самата APR, ΠΈΠ½Π°ΠΊΡƒ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π³Ρ€Π΅ΡˆΠΊΠΈ Π·Π° Π½Π΅ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎ ΠΈΠ·Π²ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° Apache, бидСјќи ќС користимС Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ PCRE2.

АјдС Π΄Π° Π³ΠΎ ΠΈΡΠΏΡƒΡˆΡ‚ΠΈΠΌΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΡ‚ Π½Π° ΠΏΡ€Π΅Π·Π΅ΠΌΠ°ΡšΠ΅ ΠΈΠ·Π²ΠΎΡ€ΠΈ ΠΎΠ΄ ΠΎΡ„ΠΈΡ†ΠΈΡ˜Π°Π»Π½ΠΈ ΠΈΠ·Π²ΠΎΡ€ΠΈ бидСјќи ΠΎΠ²Π° Π΅ ΠΏΡ€Π΅ΠΌΠ½ΠΎΠ³Ρƒ ΠΎΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΎ, ΠΏΠ° ја ΠΎΡ‚ΠΏΠ°ΠΊΡƒΠ²Π°Π²Ρ‚Π΅ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚Π° ΠΈ ја ΠΈΠ·Π²Ρ€ΡˆΠΈΠ²Ρ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° APR:

./configure --prefix=/etc/webserver/apr-170

Π‘Π΅ΠΊΠ°ΠΊΠΎ, ја ΠΎΠ·Π½Π°Ρ‡ΡƒΠ²Π°Ρ‚Π΅ Π²Π°ΡˆΠ°Ρ‚Π° ΠΏΠ°Ρ‚Π΅ΠΊΠ° Π²ΠΎ прСфиксот Π°ΠΊΠΎ Π½Π΅ сакатС Π΄Π° ја користитС стандардната Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Π° Π·Π° ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΠΈΠ»ΠΈ Π°ΠΊΠΎ Π½Π΅ Π½Π°Π²Π΅Π΄Π΅Ρ‚Π΅:

--prefix=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

ΠžΡ‚ΠΊΠ°ΠΊΠΎ ќС ја Π·Π°Π²Ρ€ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π°, ΠΎΠ΄Π΅Ρ‚Π΅ Π²ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΎΡ‚: /etc/webserver/srcsrv/apr-1.7.0/build

Или: /Ρ‚Π²ΠΎΡ˜Π°Ρ‚Π°/ΠΏΠ°Ρ‚Π΅ΠΊΠ°Ρ‚Π°/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π°/Π³Ρ€Π°Π΄Π±Π°Ρ‚Π°

ΠΠ°Ρ˜Π΄Π΅Ρ‚Π΅ ја Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° apr_rules.mk Π²ΠΎ овој Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌ ΠΈ Π΄ΠΎΠ΄Π°Ρ˜Ρ‚Π΅ Π³ΠΈ Π»ΠΈΠ½ΠΈΠΈΡ‚Π΅ Π½Π° ΠΊΡ€Π°Ρ˜ΠΎΡ‚ ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

ΠŸΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π°:

-lpcre2-8 -L/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pcre2/lib

Π—Π°Ρ‡ΡƒΠ²Π°Ρ˜Ρ‚Π΅ ΠΈ ΠΎΠ΄Π΅Ρ‚Π΅ Π²ΠΎ root Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΎΡ‚ Π½Π° ΠΈΠ·Π²ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° APR: /your/path/to Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π°.

АјдС Π΄Π° Π³ΠΎ составимС Π½Π°ΡˆΠΈΠΎΡ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ АПР:

make
make install

Ако сè Π΅ Π²ΠΎ Ρ€Π΅Π΄ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΏΠΎΠΌΠΈΠ½Π° Π±Π΅Π· Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅Ρ‚Π΅ Π½Π° слСдниот Ρ‡Π΅ΠΊΠΎΡ€.

Π§Π΅ΠΊΠΎΡ€ Ρ‚Ρ€ΠΈ: ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ APR-util Π·Π° Apache ΠΎΠ΄ ΠΈΠ·Π²ΠΎΡ€ΠΈ

Ја ΠΏΡ€Π΅Π·Π΅ΠΌΠ°Π²Ρ‚Π΅ ΠΎΠ²Π°Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΎΠ΄ ΠΈΠ·Π²ΠΎΡ€ΠΎΡ‚, ΠΎΠ΄Π΅Ρ‚Π΅ Π²ΠΎ основната ΠΏΠ°ΠΏΠΊΠ° Π½Π° Π½Π΅ΠΎΡ‚ΠΏΠ°ΠΊΡƒΠ²Π°Π½Π°Ρ‚Π° Π°Ρ€Ρ…ΠΈΠ²Π° со APR-util ΠΈ внСсСтС Π³ΠΈ слСднитС ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ послСдоватСлно:

./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ apr
make
make install

Π‘Π΅ΠΊΠ°ΠΊΠΎ, ја ΠΎΠ·Π½Π°Ρ‡ΡƒΠ²Π°Ρ‚Π΅ Π²Π°ΡˆΠ°Ρ‚Π° ΠΏΠ°Ρ‚Π΅ΠΊΠ° Π²ΠΎ прСфиксот Π°ΠΊΠΎ Π½Π΅ сакатС Π΄Π° ја користитС стандардната Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Π° Π·Π° ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΠΈΠ»ΠΈ Π°ΠΊΠΎ Π½Π΅ Π½Π°Π²Π΅Π΄Π΅Ρ‚Π΅:

--prefix=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

НиС исто Ρ‚Π°ΠΊΠ° Π³ΠΎ ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΠΌΠ΅ Π½Π°ΡˆΠΈΠΎΡ‚ APR ΠΎΠ²Π΄Π΅:

--with-apr=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ apr

Π§Π΅ΠΊΠΎΡ€ Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ: ΠΏΡ€Π΅Π·Π΅ΠΌΠ΅Ρ‚Π΅ ΠΈΠ·Π²ΠΎΡ€ΠΈ ΠΎΠ΄ Apache git Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π½Π° PCRE2

Π’Π°ΠΆΠ½ΠΎ: Π“ΠΈ ΠΏΡ€Π΅Π·Π΅ΠΌΠ°ΠΌΠ΅ ΠΈΠ·Π²ΠΎΡ€ΠΈΡ‚Π΅ ΠΎΠ΄ Π½Π°Ρ˜Π½ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° git.

Π’Ρ€Π΅Π±Π° Π΄Π° ΠΏΡ€Π΅Π·Π΅ΠΌΠ΅ΠΌΠ΅ Π΄Π²Π° ΠΈΠ·Π²ΠΎΡ€Π° ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС ap_regex.h ΠΈ util_pcre.c, Π»ΠΈΠ½ΠΊΠΎΠ²ΠΈ ΠΏΠΎΠ΄ΠΎΠ»Ρƒ:
ap_regex.h
util_pcre.c

Π‘Π΅Π³Π° ΠΎΠ΄Π΅Ρ‚Π΅ Π²ΠΎ Π²Π°ΡˆΠΈΠΎΡ‚ ΠΈΠ·Π²ΠΎΡ€Π΅Π½ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌ Π½Π° Apache httpd ΠΈ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Ρ‚Π΅ Apache со слСднитС ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:

./configure --prefix=/etc/webserver/apache-2441 --with-apr=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ apr --with-apr-util=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ apr-util --with-pcre=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pcre2/bin/pcre2-config

Π‘Π΅ΠΊΠ°ΠΊΠΎ, ја ΠΎΠ·Π½Π°Ρ‡ΡƒΠ²Π°Ρ‚Π΅ Π²Π°ΡˆΠ°Ρ‚Π° ΠΏΠ°Ρ‚Π΅ΠΊΠ° Π²ΠΎ прСфиксот Π°ΠΊΠΎ Π½Π΅ сакатС Π΄Π° ја користитС стандардната Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Π° Π·Π° ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΠΈΠ»ΠΈ Π°ΠΊΠΎ Π½Π΅ Π½Π°Π²Π΅Π΄Π΅Ρ‚Π΅:

--prefix=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Apache httpd

ΠœΠΎΠΆΠ΅Ρ‚Π΅ исто Ρ‚Π°ΠΊΠ° Π΄Π° Π½Π°Π²Π΅Π΄Π΅Ρ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° Π³Ρ€Π°Π΄Π΅ΡšΠ΅ Π½Π° Apache ΠΏΠΎ ваша Π΄ΠΈΡΠΊΡ€Π΅Ρ†ΠΈΡ˜Π°, мислам Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ Π·Π° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π°ΡšΠ΅ ΠΈΠ»ΠΈ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π‘Π»Π΅Π΄Π½ΠΎ, ΠΎΠ΄ΠΈΠΌΠ΅ Π²ΠΎ Π½Π°ΡˆΠΈΠΎΡ‚ ΠΈΠ·Π²ΠΎΡ€Π΅Π½ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌ Π½Π° Apache httpd, Π³ΠΎ ΠΈΠΌΠ°ΠΌ ΠΎΠ²Π°:

/etc/webserver/srcsrv/httpd-2.4.41

Π’ΠΈΠ΅ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π½ΠΎ ΠΎΠ΄ΠΈΡ‚Π΅ Π²ΠΎ Π²Π°ΡˆΠΈΠΎΡ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌ, Π·Π°ΠΌΠ΅Π½Π΅Ρ‚Π΅ Π³ΠΎ Π²ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΎΡ‚:

/etc/webserver/srcsrv/httpd-2.4.41/include

Π”Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ap_regex.h, која ја ΠΏΡ€Π΅Π·Π΅Π΄ΠΎΠ²ΠΌΠ΅ ΠΎΠ΄ Apache git.

ОдимС ΠΈ Π²ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΎΡ‚:

/etc/webserver/srcsrv/httpd-2.4.41/server

Π”Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° util_pcre.c ја Π·Π°ΠΌΠ΅Π½ΡƒΠ²Π°ΠΌΠ΅ со ΠΎΠ½Π°Π° ΡˆΡ‚ΠΎ ја ΠΏΡ€Π΅Π·Π΅ΠΌΠ°Π²ΠΌΠ΅ ΠΎΠ΄ Apache git

Π‘Π΅Π³Π° останува само Π΄Π° ја Π΄ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ врската PCRE2 Π²ΠΎ самиот Apache, Ρ‚Ρ€Π΅Π±Π° Π΄Π° ја ΠΏΡ€ΠΎΠ½Π°Ρ˜Π΄Π΅Ρ‚Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ap_config_auto.h, Ρ‚Π°Π° сС Π½Π°ΠΎΡ“Π° Π²ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΎΡ‚:

/etc/webserver/srcsrv/httpd-2.4.41/include

На самиот ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊ Π½Π° ΠΎΠ²Π°Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°, Π²ΠΌΠ΅Ρ‚Π½Π΅Ρ‚Π΅ Π³ΠΈ слСднитС Ρ€Π΅Π΄ΠΎΠ²ΠΈ:

/* Load PCRE2 */
#define HAVE_PCRE2 1

Па, сСга смС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ Π·Π° вистинскиот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°ΡšΠ΅ Π½Π° Apache httpd со ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° PCRE2.
АјдС Π΄Π° ΠΎΠ΄ΠΈΠΌΠ΅ Π²ΠΎ Π½Π°ΡˆΠΈΠΎΡ‚ ΠΈΠ·Π²ΠΎΡ€Π΅Π½ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌ Π½Π° Apache httpd ΠΈ Π΄Π° Π³ΠΎ составимС ΠΎΠ²Π° со послСдоватСлно ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅:

make
make install

Π‘Π΅Π³Π°, Π°ΠΊΠΎ сè бСшС Π΄ΠΎΠ±Ρ€ΠΎ ΠΈ Π±Π΅Π· Π³Ρ€Π΅ΡˆΠΊΠΈ, Ρ‚ΠΎΠ³Π°Ρˆ ќС ΠΈΠΌΠ°Ρ‚Π΅ склопСно ΠΈ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π½ΠΎ Apache httpd со ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° PCRE2, ΡˆΡ‚ΠΎ Π·Π½Π°Ρ‡ΠΈ ΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ²Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ Apache-ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ ΠΊΠΎΠΈ користат Ρ€Π΅Π΄ΠΎΠ²Π½ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ Π½Π° PCRE, Π΅Π΄Π΅Π½ ΠΎΠ΄ Π½ΠΈΠ² Π΅ Module rewrite.

Како Π·Π°ΠΊΠ»ΡƒΡ‡ΠΎΠΊ, овој ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° PCRE2 ΠΏΡ€Π΅Π΄ ΠΎΡ„ΠΈΡ†ΠΈΡ˜Π°Π»Π½ΠΎΡ‚ΠΎ ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ ΠΎΠ΄ Π€ΠΎΠ½Π΄Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° софтвСр Apache, сС Π½Π°Π΄Π΅Π²Π°ΠΌ Π΄Π΅ΠΊΠ° наскоро ќС Π±ΠΈΠ΄Π΅ објавСна Π²Π΅Ρ€Π·ΠΈΡ˜Π° со ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° PCRE2.

Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ°, ΠΏΡ€ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° стандардниот .htaccess, Π½Π΅ сС појавија Π³Ρ€Π΅ΡˆΠΊΠΈ, Π΄ΠΎΠΊΠΎΠ»ΠΊΡƒ нСкој ΠΈΠΌΠ° Π½Π΅ΠΊΠ°ΠΊΠ²ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π²ΠΎ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€.

PS

Π‘Π΅Π² ΠΌΠ°Π»ΠΊΡƒ Π·Π±ΡƒΠ½Π΅Ρ‚ ΠΎΠ΄ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π΄Π° користам Π΄Π²Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²Π΅Ρ€Π·ΠΈΠΈ Π½Π° PCRE Π·Π° ΠΌΠΎΡ˜ΠΎΡ‚ оџак ΠΈ Ρ€Π΅ΡˆΠΈΠ² Π΄Π° Π³ΠΎ ΠΏΠΎΠΏΡ€Π°Π²Π°ΠΌ.

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€