ื›ื™ืฆื“ ืœื™ืฆื•ืจ ืชืžื™ื›ื” ื‘-PCRE2 ืขื‘ื•ืจ Apache 2.4

ืื ื™ ืจื•ืฆื” ืœื—ืœื•ืง ืืช ื”ื ื™ืกื™ื•ืŸ ืฉืœื™ ื‘ืชืจื’ื•ื Apache 2.4 ืœ-PCRE2, ืžื›ื™ื•ื•ืŸ ืฉืืคื™ืœื• PHP 7 ืชื•ืžื›ืช ื‘ืกืคืจื™ื™ืช PCRE2 ื‘ืžืฉืš ื–ืžืŸ ืจื‘, ืืš ืงืจืŸ ื”ืงื•ื“ ื”ืคืชื•ื— Apache Software Foundation ืขื“ื™ื™ืŸ ืœื.
ื›ืžื•ื‘ืŸ ืฉื›ืขืช ืื ื™ ื›ื ืจืื” ืžืงื“ื™ื ืืช ืžื”ื“ื•ืจืช ื”-Apache ืขื ืชืžื™ื›ื” ื‘-PCRE2, ืžื›ื™ื•ื•ืŸ ืฉืื ื™ ืžืฉืชืžืฉ ื‘ืžืงื•ืจื•ืช ืžื”-Apache git, ืžื” ืฉืื•ืžืจ ืœื ื• ืฉืชืžื™ื›ื” ื‘-PCRE2 ืืคืฉืจื™ืช ื›ื‘ืจ ื‘ืžื”ื“ื•ืจื” ื”ื‘ืื”, ืื‘ืœ ืœืžื™ ืฉื›ื‘ืจ ืจื•ืฆื” ืชืžื™ื›ื” ื‘-PCRE2 ื‘- Apache 2.4, ื•ืžื™ ืฉืœื ืจื•ืฆื” ืœื—ื›ื•ืช ืœืฉื—ืจื•ืจ ืื ื™ ื—ื•ืœืง ืืช ืื—ืช ื”ื“ืจื›ื™ื.

ื”ืžืืžืจ ืžื ื™ื— ืฉืืชื” ืื•ืกืฃ ืืช ื›ืœ ื”ืชื•ื›ื ื•ืช ื”ื ื“ืจืฉื•ืช ืžืงื•ื“ ืžืงื•ืจ, ืจืฉื™ืžืช ืชื•ื›ื ื•ืช ื•ื’ืจืกืื•ืช ื‘ื–ืžืŸ ื›ืชื™ื‘ืช ืฉื•ืจื•ืช ืืœื”:

PCRE2-10.33
ืืคืจื™ืœ 1.7.0
ืืคืจื™ืœ-ืขื“ 1.6.1
ืืคืืฆ 'ื™

ืฉืœื‘ ืจืืฉื•ืŸ: ื‘ื ื” ื•ื”ื™ื“ื•ืจ PCRE2

ื‘ื•ื ื ื“ืœื’ ืขืœ ืจื’ืข ื”ื•ืจื“ืช ื”ืžืงื•ืจื•ืช ืžื”ืžืงื•ืจื•ืช ื”ืจืฉืžื™ื™ื ืžื›ื™ื•ื•ืŸ ืฉื–ื” ื‘ืจื•ืจ ืžื“ื™, ืื– ืคืจืงืช ืืช ื”ืืจื›ื™ื•ืŸ, ืขื‘ื•ืจ ืœืชื™ืงื™ื” ืขื ืžืงื•ืจื•ืช PCRE2, ื•ื”ืคืขืœ ืืช ื”ืคืงื•ื“ื” ื”ื‘ืื” ื›ื“ื™ ืœืชืžื•ืš ื‘-UTF:

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

ืฆื™ื™ืŸ ืืช ื”ื ืชื™ื‘ ืฉืœืš ื‘ืงื™ื“ื•ืžืช ืื ืื™ื ืš ืจื•ืฆื” ืœื”ืฉืชืžืฉ ื‘ืžื™ืงื•ื ื”ืกื˜ื ื“ืจื˜ื™ ืœื”ืชืงื ืช ื”ืกืคืจื™ื™ื”:

--prefix=/ะฒะฐัˆ/ะฟัƒั‚ัŒ/ะดะพ ะฑะธะฑะปะธะพั‚ะตะบะธ

ืื—ืจืช, ืืชื” ืื•ืกืฃ ืœืœื ืงื™ื“ื•ืžืช.

ื”ืคืงื•ื“ื•ืช ื”ื ื•ืชืจื•ืช ืžืฆื‘ื™ืขื•ืช ืขืœ ื”ื›ืœืœืช ืชืžื™ื›ื” ืขื‘ื•ืจ ื‘ืœื•ืงื™ ืงื•ื“ PCRE 8-bit, 16-bit ื•-32-bit, ื‘ื’ืจืกื” ื–ื• ื”ื”ืจื›ื‘ื” ื‘ื•ืฆืขื” ืื™ืชื.

ื•ื›ืžื•ื‘ืŸ, ืื ื• ืžืจื›ื™ื‘ื™ื ืืช ื”ื“ื‘ืจ ื”ื–ื” ื‘ืืžืฆืขื•ืช ื‘ื™ืฆื•ืข ืจืฆื™ืฃ ืฉืœ ืคืงื•ื“ื•ืช:

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

ืฉืžื•ืจ ื•ืขื‘ื•ืจ ืœืกืคืจื™ื™ืช ื”ืฉื•ืจืฉ ืฉืœ ืžืงื•ืจื•ืช ื”-APR: /your/path/to the library.

ื‘ื•ื ื ืจื›ื™ื‘ ืืช ื”ืืคืจื™ืœ ื”ืžื•ืชืื ืฉืœื ื•:

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 Software Foundation, ืื ื™ ืžืงื•ื•ื” ืฉืชืฆื ื‘ืงืจื•ื‘ ื’ืจืกื” ืขื ืชืžื™ื›ื” ื‘-PCRE2.

ื›ืžื• ื›ืŸ, ื‘ืžื”ืœืš ื‘ื“ื™ืงื” ืฉืœ .htaccess ืกื˜ื ื“ืจื˜ื™, ืœื ื”ืชืจื—ืฉื• ืฉื’ื™ืื•ืช, ืื ืœืžื™ืฉื”ื• ื™ืฉ ืฉื’ื™ืื•ืช, ื›ืชื‘ื• ื‘ืชื’ื•ื‘ื•ืช.

ื .ื‘.

ื”ื™ื™ืชื™ ืงืฆืช ืžื‘ื•ืœื‘ืœ ืžื”ืžืฆื‘ ืฉืœ ืฉื™ืžื•ืฉ ื‘ืฉืชื™ ื’ืจืกืื•ืช ืฉื•ื ื•ืช ืฉืœ PCRE ืขื‘ื•ืจ ื”ืžื—ืกื ื™ืช ืฉืœื™, ื•ื”ื—ืœื˜ืชื™ ืœืชืงืŸ ืืช ื–ื”.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”