Si të bëni mbështetje PCRE2 për Apache 2.4

Unë do të doja të ndaj përvojën time të përkthimit të Apache 2.4 në PCRE2, pasi edhe PHP 7 ka mbështetur bibliotekën PCRE2 për një kohë të gjatë, por Fondacioni Apache Software me burim të hapur ende nuk e bën këtë.
Sigurisht, tani ndoshta jam përpara lëshimit të Apache me mbështetje PCRE2, pasi po përdor burimet nga git Apache, i cili na tregon se mbështetja e PCRE2 është tashmë e mundur në versionin tjetër, por për ata që tashmë duan mbështetjen e PCRE2 në Apache 2.4, dhe ata që nuk duan të presin lëshimin, unë ndaj një nga mënyrat.

Artikulli supozon se po mbledhni të gjithë softuerin e nevojshëm nga kodi burimor, një listë softuerësh dhe versionesh në kohën e shkrimit:

PCRE2-10.33
PRR 1.7.0
APR-util 1.6.1
Apache httpd 2.4.41

Hapi i parë: ndërtoni dhe përpiloni PCRE2

Le të kapërcejmë momentin e shkarkimit të burimeve nga burimet zyrtare pasi kjo është shumë e qartë, kështu që ju keni shpaketuar arkivin, shkoni te dosja me burimet PCRE2 dhe ekzekutoni komandën e mëposhtme për të mbështetur UTF:

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

Specifikoni rrugën tuaj në prefiks nëse nuk dëshironi të përdorni vendndodhjen standarde për të instaluar bibliotekën:

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

Përndryshe, ju mbledhni pa parashtesë.

Komandat e mbetura tregojnë përfshirjen e mbështetësve për blloqet e kodit PCRE 8-bit, 16-bit dhe 32-bit, në këtë version montimi u krye me to.

Dhe sigurisht, ne e përpilojmë këtë gjë duke përdorur ekzekutimin sekuencial të komandave:

make
make install

Nëse gjithçka është në rregull dhe përpilimi shkoi pa gabime, kaloni në hapin tjetër.

Hapi i dytë: lidhni bibliotekën PCRE2 me APR

Meqenëse Apache përpilon burime duke përdorur APR, ne duhet të përfshijmë bibliotekën në vetë APR, përndryshe mund të ketë gabime në lidhje me funksionet e panjohura në burimet Apache, sepse ne do të përdorim funksione të reja PCRE2.

Le të heqim momentin e shkarkimit të burimeve nga burimet zyrtare pasi kjo është shumë e qartë, kështu që ju shpaketoni arkivin dhe keni kryer konfigurimin APR:

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

Natyrisht, ju tregoni rrugën tuaj në prefiks nëse nuk dëshironi të përdorni vendndodhjen standarde për instalimin e bibliotekës, ose nëse nuk specifikoni:

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

Pasi të keni përfunduar konfigurimin, shkoni te drejtoria: /etc/webserver/srcsrv/apr-1.7.0/build

Ose: /ju/rruga/në bibliotekë/ndërtim

Gjeni skedarin apr_rules.mk në këtë direktori dhe shtoni rreshtat në fund ku:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

Lidhja e bibliotekës:

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

Ruani dhe shkoni te direktoria kryesore e burimeve të APR: /your/rruga/në bibliotekë.

Le të përpilojmë prillin tonë të modifikuar:

make
make install

Nëse gjithçka është në rregull dhe përpilimi shkoi pa gabime, kaloni në hapin tjetër.

Hapi i tretë: ndërtoni APR-util për Apache nga burimet

Ju e keni shkarkuar këtë bibliotekë nga burimi, shkoni te dosja rrënjë e arkivit të papaketuar me APR-util dhe futni komandat e mëposhtme me radhë:

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

Natyrisht, ju tregoni rrugën tuaj në prefiks nëse nuk dëshironi të përdorni vendndodhjen standarde për instalimin e bibliotekës, ose nëse nuk specifikoni:

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

Ne gjithashtu lidhim APR-në tonë këtu:

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

Hapi i katërt: shkarkoni burime nga Apache git për të mbështetur PCRE2

E rëndësishme: Ne shkarkojmë burimet nga edicioni i fundit i git.

Duhet të shkarkojmë dy burime si ap_regex.h dhe util_pcre.c, lidhjet më poshtë:
ap_regex.h
util_pcre.c

Tani shkoni te drejtoria juaj e burimit Apache httpd dhe ndërtoni Apache me komandat e mëposhtme:

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

Natyrisht, ju tregoni rrugën tuaj në prefiks nëse nuk dëshironi të përdorni vendndodhjen standarde për instalimin e bibliotekës, ose nëse nuk specifikoni:

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

Ju gjithashtu mund të specifikoni komanda shtesë për ndërtimin e Apache sipas gjykimit tuaj, dua të them komandat për aktivizimin ose çaktivizimin e moduleve dhe bibliotekave.

Më pas shkojmë në drejtorinë tonë të burimit Apache httpd, unë kam këtë:

/etc/webserver/srcsrv/httpd-2.4.41

Ju natyrisht shkoni në drejtorinë tuaj, zëvendësoni në drejtorinë:

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

Skedari ap_regex.h, të cilin e kemi shkarkuar nga git Apache.

Shkojmë gjithashtu te drejtoria:

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

Ne zëvendësojmë skedarin util_pcre.c me atë që kemi shkarkuar nga git Apache

Tani gjithçka që mbetet është të shtoni lidhjen PCRE2 në vetë Apache, duhet të gjeni skedarin ap_config_auto.h, ai ndodhet në drejtori:

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

Në fillim të këtij skedari, futni rreshtat e mëposhtëm:

/* Load PCRE2 */
#define HAVE_PCRE2 1

Epo, tani jemi gati për momentin real të përpilimit të Apache httpd me mbështetje PCRE2.
Le të shkojmë në drejtorinë tonë të burimit Apache httpd dhe ta përpilojmë këtë duke ekzekutuar në mënyrë sekuenciale komandat:

make
make install

Tani, nëse gjithçka shkoi mirë dhe pa gabime, atëherë ju do të keni montuar dhe përpiluar Apache httpd me mbështetje PCRE2, që do të thotë ndryshime pozitive në modulet Apache që përdorin shprehje të rregullta PCRE, një nga këto është Module rewrite.

Si përfundim, kjo metodë bën të mundur përdorimin e PCRE2 përpara lëshimit zyrtar nga Apache Software Foundation, shpresoj që një version me mbështetje PCRE2 të dalë së shpejti.

Gjithashtu, gjatë testimit të standardit .htaccess nuk ka ndodhur asnjë gabim, nëse dikush ka ndonjë gabim, shkruaj në komente.

PS

Isha pak i hutuar nga situata e përdorimit të dy versioneve të ndryshme të PCRE për pirgun tim dhe vendosa ta rregulloj atë.

Burimi: www.habr.com

Shto një koment