Apache 2 үчүн PCRE2.4 колдоосун кантип жасоо керек

Мен Apache 2.4ти PCRE2ге которуу тажрыйбам менен бөлүшкүм келет, анткени PHP 7 да PCRE2 китепканасын көптөн бери колдоп келген, бирок ачык булактуу Apache Software Foundation дагы деле колдобойт.
Албетте, мен азыр PCRE2 колдоосу менен Apache релизинен алдыдамын, анткени мен 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

Сактоо жана APR булактарынын түпкү каталогуна өтүңүз: /your/path/to the library.

Өзгөртүлгөн APRыбызды түзөлү:

make
make install

Эгер баары жакшы болсо жана компиляция катасыз өтсө, кийинки кадамга өтүңүз.

Үчүнчү кадам: булактардан Apache үчүн APR-util түзүңүз

Сиз бул китепкананы булактан жүктөп алдыңыз, APR-util менен таңгаксыз архивдин түпкү папкасына өтүп, төмөнкү буйруктарды ырааттуу түрдө киргизиңиз:

./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/ваш/путь/до библиотеки apr
make
make install

Албетте, сиз китепкананы орнотуу үчүн стандарттуу жерди колдонгуңуз келбесе, же болбосо, сиз префиксте өз жолуңузду көрсөтөсүз:

--prefix=/ваш/путь/до библиотеки

Биз ошондой эле бул жерде биздин APR байланыштырат:

--with-apr=/ваш/путь/до библиотеки apr

Төртүнчү кадам: PCRE2ди колдоо үчүн Apache git булактарын жүктөп алыңыз

Маанилүү: Биз булактарды 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

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нин эки башка версиясын колдонуу кырдаалы мени бир аз чаташтырдым жана аны оңдоону чечтим.

Source: www.habr.com

Комментарий кошуу