ืืื ืืืึธืื ืืื ืฆื ืืืืื ืืืื ืืขืจืคืึทืจืื ื ืคืื ืืืืขืจืืขืฆื Apache 2.4 ืฆื PCRE2, ืืื ื ืืคืืื PHP 7 ืืื ืืขืฉืืืฆื ืื PCRE2 ืืืืืืึธืืขืง ืคึฟืึทืจ ืึท ืืึทื ื ืฆืืึทื, ืึธืืขืจ ืื ืึธืคึฟื ืืงืืจ ืึทืคึผืึทืืฉื ืืืืืืืืืจื ืืืืงืืคึผืขืืืข ื ืึธื ื ืืฉื.
ืืึธื, ืืื ืืื ืืืฆื ืืืกืืึธืืข ืคืึธืจืืืก ืคืื ืื ืึทืคึผืึทืืฉื ืืขืืืื ื ืืื PCRE2 ืฉืืืฆื, ืืื ื ืืื ื ืืฆื ืื ืืงืืจืื ืคืื ืื Apache git, ืืืึธืก ืืขืจืฆืืืื ืืื ืื ืึทื PCRE2 ืฉืืืฆื ืืื ืฉืืื ืืขืืืขื ืืื ืืขืจ ืืืืึทืืขืจ ืืขืืืื ื, ืึธืืขืจ ืคึฟืึทืจ ืื ืืืืก ืฉืืื ืืืขืื PCRE2 ืฉืืืฆื ืืื Apache 2.4, ืืื ืืืึธืก ืืึธื ื ืืฉื ืืืขืื ืฆื ืืืึทืจืื ืคึฟืึทืจ ืืขืืืื ื ืืื ืืืืื ืืืื ืขืจ ืคืื ืื ืืืขืื.
ืืขืจ ืึทืจืืืงื ืึทืกืืื ืึทื ืืืจ ืงืึทืืขืงืืื ื ืึทืืข ืื ื ืืืืืง ืืืืืืืืืจื ืคึฟืื ืืงืืจ ืงืึธื, ืึท ืจืฉืืื ืคืื ืืืืืืืืืจื ืืื ืืืขืจืกืืขืก ืืื ืืขืจ ืฆืืื ืคืื ืฉืจืืืื:
PCRE2-10.33
ืืคืจืื 1.7.0
APR-util 1.6.1
ืึทืคึผืึทืืฉื ืืืืคึผื 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
ืืื ื ืึทืคึผืึทืืฉื ืงืึทืืคึผืืืื ืงืืืืื ื ืืฆื APR, ืืืจ ืืึทืจืคึฟื ืฆื ืึทืจืืึทื ื ืขืืขื ืื ืืืืืืึธืืขืง ืืื APR ืืื, ืึทื ืืขืจืฉ ืขืก ืงืขื ืืืื ืขืจืจืึธืจืก ืืืขืื ืืืืืึทืงืึทื ื ืคืึทื ืืงืฉืึทื ื ืืื ืึทืคึผืึทืืฉื ืงืืืืื, ืืืืึทื ืืืจ ืืืขืื ื ืืฆื ื ืืึทืข 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 ืงืืืืื: / ืืืื / ืืจื / ืฆื ืืขืจ ืืืืืืึธืืขืง.
ืืึธืืืจ ืฆืื ืืืคื ืขืืขื ืืื ืืืขืจ ืืึทืืึทืคืืื ืืคืจืื:
make
make install
ืืืื ืึทืืฅ ืืื ืืื ืืื ืื ืืึทืืืื ื ืืื ืืขืืืขื ืึธื ืขืจืจืึธืจืก, ืืึทื ืืืืฃ ืฆื ืืขืจ ืืืืึทืืขืจ ืฉืจืื.
ืฉืจืื ืืจืื: ืืืืขื APR-util ืคึฟืึทืจ ืึทืคึผืึทืืฉื ืคึฟืื ืงืืืืื
ืืืจ ืืึธื ืืึทืื ืืึธืืืื ืืขื ืืืืืืึธืืขืง ืคึฟืื ืืขืจ ืืงืืจ, ืืืื ืฆื ืื ืืืึธืจืฆื ืืขืงืข ืคืื โโืื ืึทื ืคึผืึทืงื ืึทืจืงืืืื ืืื APR-util, ืืื ืึทืจืืึทื ืื ืคืืืืขื ืืข ืงืึทืืึทื ืื ืกืึทืงืืืขื ืืฉืึทืื:
./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/ะฒะฐั/ะฟััั/ะดะพ ะฑะธะฑะปะธะพัะตะบะธ apr
make
make install
ืืขืืืืื ืืืขื, ืืืจ ืึธื ืืืืึทืื ืืืื ืืจื ืืื ืื ืคึผืจืขืคืืงืก ืืืื ืืืจ ืืึธื ื ืืฉื ืืืขืื ืฆื ื ืืฆื ืื ื ืึธืจืืึทื ืึธืจื ืคึฟืึทืจ ืื ืกืืึธืืื ื ืื ืืืืืืึธืืขืง, ืึธืืขืจ ืืืื ืืืจ ืืึธื ื ืื ืกืคึผืขืฆืืคืืฆืืจื:
--prefix=/ะฒะฐั/ะฟััั/ะดะพ ะฑะธะฑะปะธะพัะตะบะธ
ืืืจ ืืืื ืคืึทืจืืื ืื ืืื ืืืขืจ APR ืืึธ:
--with-apr=/ะฒะฐั/ะฟััั/ะดะพ ะฑะธะฑะปะธะพัะตะบะธ apr
ืฉืจืื ืคืืจ: ืืจืืคืงืืคืืข ืงืืืืื ืคึฟืื Apache git ืฆื ืฉืืืฆื PCRE2
ืืืืืืืง: ืืืจ ืืจืืคืงืืคืืข ืื ืืงืืจืื ืคึฟืื ืื ืืขืฆืืข ืึทืืืฉืึทื ืคืื ืื ืืื.
ืืืจ ืืึทืจืคึฟื ืฆื ืึธืคึผืืึธืืืจื ืฆืืืื ืงืืืืื ืึทืืึท ืืื ap_regex.h ืืื util_pcre.c, ืืื ืงืก ืืื ืื:
ืืืฆื ืืืื ืฆื ืืืื Apache httpd ืืงืืจ ืืืขืืืืืึทืืขืจ ืืื ืืืืขื ืึทืคึผืึทืืฉื ืืื ืื ืคืืืืขื ืืข ืงืึทืืึทื ืื:
./configure --prefix=/etc/webserver/apache-2441 --with-apr=/ะฒะฐั/ะฟััั/ะดะพ ะฑะธะฑะปะธะพัะตะบะธ apr --with-apr-util=/ะฒะฐั/ะฟััั/ะดะพ ะฑะธะฑะปะธะพัะตะบะธ apr-util --with-pcre=/ะฒะฐั/ะฟััั/ะดะพ ะฑะธะฑะปะธะพัะตะบะธ pcre2/bin/pcre2-config
ืืขืืืืื ืืืขื, ืืืจ ืึธื ืืืืึทืื ืืืื ืืจื ืืื ืื ืคึผืจืขืคืืงืก ืืืื ืืืจ ืืึธื ื ืืฉื ืืืขืื ืฆื ื ืืฆื ืื ื ืึธืจืืึทื ืึธืจื ืคึฟืึทืจ ืื ืกืืึธืืื ื ืื ืืืืืืึธืืขืง, ืึธืืขืจ ืืืื ืืืจ ืืึธื ื ืื ืกืคึผืขืฆืืคืืฆืืจื:
--prefix=/ะฒะฐั/ะฟััั/ะดะพ Apache httpd
ืืืจ ืงืขื ื ืืืื ืกืคึผืขืฆืืคืืฆืืจื ื ืึธื ืงืึทืืึทื ืื ืคึฟืึทืจ ืื ืื ืึทืคึผืึทืืฉื ืืืื ืืืื ืืืกืงืจืขืฉืึทื, ืืื ืืืื ืขื ืื ืงืึทืืึทื ืื ืคึฟืึทืจ ืืขืื ืึธืืขืจ ืืืกืืืืึทื ืืึทืืืฉืืื ืืื ืืืืืจืขืจืื.
ืืืืึทืืขืจ ืืืจ ืืืื ืฆื ืืื ืืืขืจ Apache httpd ืืงืืจ ืืืขืืืืืึทืืขืจ, ืืื ืืึธืื ืืขื:
/etc/webserver/srcsrv/httpd-2.4.41
ืืืจ ืืขืืืืื ืืืขื ืืืื ืฆื ืืืื ืืืขืืืืืึทืืขืจ, ืคืึทืจืืืึทืื ืืื ืื ืืืขืืืืืึทืืขืจ:
/etc/webserver/srcsrv/httpd-2.4.41/include
ืืขืจ ืืขืงืข ap_regex.h, ืืืึธืก ืืืจ ืืึทืื ืืึธืืืื ืคึฟืื ืื ืึทืคึผืึทืืฉื ืืื.
ืืืจ ืืืื ืืืื ืฆื ืื ืืืขืืืืืึทืืขืจ:
/etc/webserver/srcsrv/httpd-2.4.41/server
ืืืจ ืคืึทืจืืืึทืื ืื ืืขืงืข util_pcre.c ืืื ืืขืจ ืืขืงืข ืืืจ ืืึทืื ืืึธืืืื ืคึฟืื ืื ืึทืคึผืึทืืฉื ืืื
ืืืฆื ืึทืืข ืืืึธืก ืืืืืื ืืื ืฆื ืืืืื ืื PCRE2 ืงืฉืจ ืืื ืึทืคึผืึทืืฉื ืืื, ืืืจ ืืึทืจืคึฟื ืฆื ืืขืคึฟืื ืขื ืื ืืขืงืข 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 ืฉืืืฆื, ืืืึธืก ืืืื positive ืขื ืืขืจืื ืืขื ืืื ืึทืคึผืึทืืฉื ืืึทืืืฉืืื ืืืึธืก ื ืืฆื PCRE ืจืขืืืืขืจ ืืืืกืืจืืงื, ืืืื ืขืจ ืคืื ืื ืืื ืืึธืืืืข ืจืืจืืื.
ืืื ืืกืงื ื, ืืขื ืืืคึฟื ืืืื ืขืก ืืขืืืขื ืฆื ื ืืฆื PCRE2 ืืืืืขืจ ืืขืจ ืืึทืึทืืืขืจ ืืขืืืื ื ืคืื ืื Apache ืืืืืืืืืจื ืืืืงืืคึผืขืืืข, ืืื ืืึธืคึฟื ืึทื ืึท ืืืขืจืกืืข ืืื PCRE2 ืฉืืืฆื ืืืขื ืืืื ืคืจืื ืืึทืื.
ืืืื, ืืขืฉืึทืก ืืขืกืืื ื ืคืื ื ืึธืจืืึทื .ืืืึทืงืกืขืกืก, ืงืืื ืขืจืจืึธืจืก ืคืืจืืขืงืืืขื, ืืืื ืืืขืจ ืขืก ืื ืืื ืงืืื ืขืจืจืึธืจืก, ืฉืจืืึทืื ืืื ืื ืืึทืืขืจืงืื ืืขื.
ืคึผืก
ืืื ืืื ืืขืืืขื ืึท ืืืกื ืฆืขืืืฉื ืืืจื ืื ืกืืืืึทืฆืืข ืคืื โโื ืืฆื ืฆืืืื ืคืึทืจืฉืืืขื ืข ืืืขืจืกืืขืก ืคืื PCRE ืคึฟืึทืจ ืืืื ืึธื ืืืืื, ืืื ืืื ืืึทืฉืืึธืกื ืฆื ืคืึทืจืจืืืื ืขืก.
ืืงืืจ: www.habr.com