Како направити ПЦРЕ2 подршку за Апацхе 2.4

Желео бих да поделим своје искуство превођења Апацхе 2.4 у ПЦРЕ2, пошто чак и ПХП 7 подржава ПЦРЕ2 библиотеку већ дуже време, али опен соурце Апацхе Софтваре Фоундатион још увек не.
Наравно, сада сам вероватно испред Апацхе издања са ПЦРЕ2 подршком, пошто користим изворе из Апацхе гит-а, што нам говори да је ПЦРЕ2 подршка већ могућа у следећем издању, али за оне који већ желе ПЦРЕ2 подршку у Апацхе 2.4, а који не желе да чекају издавање делим један од начина.

Чланак претпоставља да прикупљате сав потребан софтвер из изворног кода, листе софтвера и верзија у време писања:

ПЦРЕ2-10.33
АПР КСНУМКС
АПР-утил 1.6.1
Апацхе хттпд 2.4.41

Први корак: изградите и компајлирајте ПЦРЕ2

Хајде да изоставимо тренутак преузимања извора из званичних извора јер је ово превише очигледно, па сте отпаковали архиву, идите у фасциклу са ПЦРЕ2 изворима и покрените следећу команду да подржи УТФ:

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

Наведите своју путању у префиксу ако не желите да користите стандардну локацију за инсталирање библиотеке:

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

У супротном, сакупљате без префикса.

Преостале команде указују на укључивање подршке за 8-битне, 16-битне и 32-битне ПЦРЕ кодне блокове, у овој верзији је склапање обављено са њима.

И наравно, ми компајлирамо ову ствар користећи секвенцијално извршавање команди:

make
make install

Ако је све у реду и компилација је прошла без грешака, пређите на следећи корак.

Други корак: повежите библиотеку ПЦРЕ2 на АПР

Пошто Апацхе компајлира изворе користећи АПР, морамо да укључимо библиотеку у сам АПР, иначе може доћи до грешака у вези са непознатим функцијама у Апацхе изворима, јер ћемо користити нове ПЦРЕ2 функције.

Хајде да изоставимо тренутак преузимања извора из званичних извора јер је ово превише очигледно, па сте распаковали архиву и извршили АПР конфигурацију:

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

Наравно, своју путању назначите у префиксу ако не желите да користите стандардну локацију за инсталирање библиотеке или ако не наведете:

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

Након што завршите конфигурацију, идите у директоријум: /етц/вебсервер/срцсрв/апр-1.7.0/буилд

Или: /ваш/пут/до библиотеке/буилд

Пронађите датотеку апр_рулес.мк у овом директоријуму и додајте редове на крају где:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

Повезивање библиотеке:

-lpcre2-8 -L/ваш/путь/до библиотеки pcre2/lib

Сачувајте и идите у основни директоријум АПР извора: /ваша/путања/до библиотеке.

Хајде да саставимо наш модификовани АПР:

make
make install

Ако је све у реду и компилација је прошла без грешака, пређите на следећи корак.

Трећи корак: направите АПР-утил за Апацхе из извора

Преузели сте ову библиотеку са извора, идите у основну фасциклу распаковане архиве помоћу АПР-утил-а и унесите следеће команде редом:

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

Наравно, своју путању назначите у префиксу ако не желите да користите стандардну локацију за инсталирање библиотеке или ако не наведете:

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

Такође повезујемо наш АПР овде:

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

Четврти корак: преузмите изворе са Апацхе гит-а да бисте подржали ПЦРЕ2

Важно: преузимамо изворе из најновијег издања гит-а.

Морамо да преузмемо два извора као што су ап_регек.х и утил_пцре.ц, линкови испод:
ап_регек.х
утил_пцре.ц

Сада идите у свој Апацхе хттпд изворни директоријум и направите Апацхе помоћу следећих команди:

./configure --prefix=/etc/webserver/apache-2441 --with-apr=/ваш/путь/до библиотеки apr --with-apr-util=/ваш/путь/до библиотеки apr-util --with-pcre=/ваш/путь/до библиотеки pcre2/bin/pcre2-config

Наравно, своју путању назначите у префиксу ако не желите да користите стандардну локацију за инсталирање библиотеке или ако не наведете:

--prefix=/ваш/путь/до Apache httpd

Такође можете одредити додатне команде за изградњу Апацхе-а по свом нахођењу, мислим на команде за омогућавање или онемогућавање модула и библиотека.

Затим идемо у наш Апацхе хттпд изворни директоријум, имам ово:

/etc/webserver/srcsrv/httpd-2.4.41

Наравно, идете у свој директоријум, замените у директоријуму:

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

Датотека ап_регек.х, коју смо преузели са Апацхе гит-а.

Такође идемо у директоријум:

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

Датотеку утил_пцре.ц замењујемо оном коју смо преузели са Апацхе гит-а

Сада остаје само да додате ПЦРЕ2 везу у самом Апацхе-у, потребно је да пронађете датотеку ап_цонфиг_ауто.х, она се налази у директоријуму:

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

На самом почетку ове датотеке убаците следеће редове:

/* Load PCRE2 */
#define HAVE_PCRE2 1

Па, сада смо спремни за прави тренутак компајлирања Апацхе хттпд са ПЦРЕ2 подршком.
Идемо у наш Апацхе хттпд изворни директоријум и компајлирамо ово узастопним извршавањем команди:

make
make install

Сада, ако је све прошло добро и без грешака, онда ћете саставити и компајлирати Апацхе хттпд са ПЦРЕ2 подршком, што значи позитивне промене у Апацхе модулима који користе ПЦРЕ регуларне изразе, један од њих је Модуле реврите.

У закључку, овај метод омогућава коришћење ПЦРЕ2 пре званичног издања од стране Апацхе Софтваре Фоундатион, надам се да ће ускоро бити објављена верзија са подршком за ПЦРЕ2.

Такође, током тестирања стандардног .хтаццесс-а није дошло до грешке, ако неко има грешку, напишите у коментарима.

ПС

Био сам мало збуњен ситуацијом када сам користио две различите верзије ПЦРЕ-а за свој стек, и одлучио сам да то поправим.

Извор: ввв.хабр.цом

Додај коментар