์ ๋ Apache 2.4๋ฅผ PCRE2๋ก ๋ณํํ ๊ฒฝํ์ ๊ณต์ ํ๊ณ ์ถ์ต๋๋ค. PHP 7์กฐ์ฐจ๋ PCRE2 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค๋ซ๋์ ์ง์ํ์ง๋ง ์คํ ์์ค Apache Software Foundation์ ์ฌ์ ํ โโ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค.
๋ฌผ๋ก , ๋๋ PCRE2 ์ง์์ด ํฌํจ๋ Apache ๋ฆด๋ฆฌ์ค๋ณด๋ค ์์ ์์ ๊ฒ์
๋๋ค. Apache git์ ์์ค๋ฅผ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์ด๋ PCRE2 ์ง์์ด ๋ค์ ๋ฆด๋ฆฌ์ค์์ ์ด๋ฏธ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋งํด์ค๋๋ค. Apache 2 ์ถ์๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ธฐ ์ซ์ ๋ถ๋ค์ ์ํ ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ๊ณต์ ํฉ๋๋ค.
์ด ๊ธฐ์ฌ์์๋ ์์ค ์ฝ๋, ์์ฑ ๋น์ ์ํํธ์จ์ด ๋ฐ ๋ฒ์ ๋ชฉ๋ก์์ ํ์ํ ๋ชจ๋ ์ํํธ์จ์ด๋ฅผ ์์งํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
PCRE2-10.33
APR 1.7.0
APR-์ ํธ 1.6.1
์ํ์น httpd 2.4.41
2๋จ๊ณ: PCREXNUMX ๋น๋ ๋ฐ ์ปดํ์ผ
๊ณต์ ์์ค์์ ์์ค๋ฅผ ๋ค์ด๋ก๋ํ๋ ์๊ฐ์ ๋๋ฌด ๋ปํ๋ฏ๋ก ๊ฑด๋๋ฐ๊ณ ์์นด์ด๋ธ์ ์์ถ์ ํ๊ณ 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
๋ชจ๋ ๊ฒ์ด ์ ์์ด๊ณ ์ปดํ์ผ์ด ์ค๋ฅ ์์ด ์งํ๋์๋ค๋ฉด ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค.
2๋จ๊ณ: PCREXNUMX ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ APR์ ์ฐ๊ฒฐ
Apache๋ APR์ ์ฌ์ฉํ์ฌ ์์ค๋ฅผ ์ปดํ์ผํ๋ฏ๋ก APR ์์ฒด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ก์ด PCRE2 ํจ์๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ Apache ์์ค์ ์ ์ ์๋ ํจ์์ ๋ํ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๊ณต์ ์์ค์์ ์์ค๋ฅผ ๋ค์ด๋ก๋ํ๋ ์๊ฐ์ ๋๋ฌด ๋ปํ๋ฏ๋ก ์๋ตํ๊ฒ ์ต๋๋ค. ๋ฐ๋ผ์ ์์นด์ด๋ธ์ ์์ถ์ ํ๊ณ APR ๊ตฌ์ฑ์ ์ํํ์ต๋๋ค.
./configure --prefix=/etc/webserver/apr-170
๋น์ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น์ ํ์ค ์์น๋ฅผ ์ฌ์ฉํ์ง ์๊ฑฐ๋ ๋ค์์ ์ง์ ํ์ง ์๋ ๊ฒฝ์ฐ ์ ๋์ฌ์ ๊ฒฝ๋ก๋ฅผ ํ์ํฉ๋๋ค.
--prefix=/ะฒะฐั/ะฟััั/ะดะพ ะฑะธะฑะปะธะพัะตะบะธ
๊ตฌ์ฑ์ ์๋ฃํ ํ /etc/webserver/srcsrv/apr-1.7.0/build ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ํฉ๋๋ค.
๋๋: /your/path/๋ผ์ด๋ธ๋ฌ๋ฆฌ/๋น๋
์ด ๋๋ ํฐ๋ฆฌ์์ apr_rules.mk ํ์ผ์ ์ฐพ์ ๋์ ๋ค์ ์ค์ ์ถ๊ฐํฉ๋๋ค.
EXTRA_LIBS=-lrt -lcrypt -lpthread -ldl
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐ๊ฒฐ:
-lpcre2-8 -L/ะฒะฐั/ะฟััั/ะดะพ ะฑะธะฑะปะธะพัะตะบะธ pcre2/lib
์ ์ฅํ๊ณ APR ์์ค์ ๋ฃจํธ ๋๋ ํฐ๋ฆฌ์ธ /your/path/to the library๋ก ์ด๋ํฉ๋๋ค.
์์ ๋ APR์ ์ปดํ์ผํด ๋ณด๊ฒ ์ต๋๋ค.
make
make install
๋ชจ๋ ๊ฒ์ด ์ ์์ด๊ณ ์ปดํ์ผ์ด ์ค๋ฅ ์์ด ์งํ๋์๋ค๋ฉด ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค.
XNUMX๋จ๊ณ: ์์ค์์ Apache์ฉ APR-util ๋น๋
์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ค์์ ๋ค์ด๋ก๋ํ๊ณ APR-util์ ์ฌ์ฉํ์ฌ ์์ถ์ ํผ ์์นด์ด๋ธ์ ๋ฃจํธ ํด๋๋ก ์ด๋ํ ํ ๋ค์ ๋ช ๋ น์ ์์ฐจ์ ์ผ๋ก ์ ๋ ฅํฉ๋๋ค.
./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/ะฒะฐั/ะฟััั/ะดะพ ะฑะธะฑะปะธะพัะตะบะธ apr
make
make install
๋น์ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น์ ํ์ค ์์น๋ฅผ ์ฌ์ฉํ์ง ์๊ฑฐ๋ ๋ค์์ ์ง์ ํ์ง ์๋ ๊ฒฝ์ฐ ์ ๋์ฌ์ ๊ฒฝ๋ก๋ฅผ ํ์ํฉ๋๋ค.
--prefix=/ะฒะฐั/ะฟััั/ะดะพ ะฑะธะฑะปะธะพัะตะบะธ
๋ํ APR์ ์ฌ๊ธฐ์ ์ฐ๊ฒฐํฉ๋๋ค.
--with-apr=/ะฒะฐั/ะฟััั/ะดะพ ะฑะธะฑะปะธะพัะตะบะธ apr
2๋จ๊ณ: PCREXNUMX๋ฅผ ์ง์ํ๊ธฐ ์ํด Apache git์์ ์์ค ๋ค์ด๋ก๋
์ค์: ์ต์ ๋ฒ์ ์ Git์์ ์์ค๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค.
์๋ ๋งํฌ์์ 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
Apache git์์ ๋ค์ด๋ก๋ํ ap_regex.h ํ์ผ.
๋ํ ๋ค์ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํฉ๋๋ค.
/etc/webserver/srcsrv/httpd-2.4.41/server
util_pcre.c ํ์ผ์ Apache git์์ ๋ค์ด๋ก๋ํ ํ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
์ด์ ๋จ์ ๊ฒ์ Apache ์์ฒด์ PCRE2 ์ฐ๊ฒฐ์ ์ถ๊ฐํ๋ ๊ฒ๋ฟ์ ๋๋ค. ap_config_auto.h ํ์ผ์ ์ฐพ์์ผ ํ๋ฉฐ ์ด ํ์ผ์ ๋ค์ ๋๋ ํฐ๋ฆฌ์ ์์ต๋๋ค.
/etc/webserver/srcsrv/httpd-2.4.41/include
์ด ํ์ผ์ ๋งจ ์ฒ์ ๋ถ๋ถ์ ๋ค์ ์ค์ ์ฝ์ ํฉ๋๋ค.
/* Load PCRE2 */
#define HAVE_PCRE2 1
์, ์ด์ ์ฐ๋ฆฌ๋ PCRE2 ์ง์์ผ๋ก Apache httpd๋ฅผ ์ปดํ์ผํ๋ ์ค์ ์๊ฐ์ ๋ง์ดํ ์ค๋น๊ฐ ๋์์ต๋๋ค.
Apache httpd ์์ค ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ํ์ฌ ๋ค์ ๋ช
๋ น์ ์์ฐจ์ ์ผ๋ก ์คํํ์ฌ ์ด๋ฅผ ์ปดํ์ผํด ๋ณด๊ฒ ์ต๋๋ค.
make
make install
์ด์ ๋ชจ๋ ๊ฒ์ด ์ค๋ฅ ์์ด ์ ์งํ๋์๋ค๋ฉด PCRE2 ์ง์์ ์ฌ์ฉํ์ฌ Apache httpd๋ฅผ ์ด์ ๋ธํ๊ณ ์ปดํ์ผํ์ ๊ฒ์ ๋๋ค. ์ด๋ PCRE ์ ๊ท ํํ์์ ์ฌ์ฉํ๋ Apache ๋ชจ๋์ ๊ธ์ ์ ์ธ ๋ณํ๋ฅผ ์๋ฏธํฉ๋๋ค. ๊ทธ ์ค ํ๋๋ ๋ชจ๋ ์ฌ์์ฑ์ ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด Apache Software Foundation์ ๊ณต์ ์ถ์ ์ด์ ์ PCRE2๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ฏ๋ก PCRE2๋ฅผ ์ง์ํ๋ ๋ฒ์ ์ด ๊ณง ์ถ์๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ํ ํ์ค .htaccess๋ฅผ ํ ์คํธํ๋ ๋์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์์ต๋๋ค. ๋๊ตฌ๋ ์ง ์ค๋ฅ๊ฐ ์์ผ๋ฉด ์๊ฒฌ์ ์์ฑํ์ญ์์ค.
PS
๋ด ์คํ์ ๋ ๊ฐ์ง ๋ค๋ฅธ ๋ฒ์ ์ PCRE๋ฅผ ์ฌ์ฉํ๋ ์ํฉ์ ์ฝ๊ฐ ํผ๋์ค๋ฌ์์ ์ด๋ฅผ ์์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
์ถ์ฒ : habr.com