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

Dua të ndaj përvojën time në përkthimin e Apache 2.4 në PCRE2, pasi edhe PHP 7 e mbështet prej kohësh bibliotekën PCRE2, ndërsa fondacioni open source Apache Software Foundation ende nuk është.
Sigurisht tani ndoshta po e parakaloj versionin e Apache me mbështetje për PCRE2, pasi përdor burimet nga git Apache, që na tregon se mbështetja për PCRE2 mund të jetë e mundur në versionin e ardhshëm, por për ata që dëshirojnë tashmë mbështetje për PCRE2 në Apache 2.4 dhe që nuk duan të presin publikimin, po ndaj një nga mënyrat.

Artikulli supozon që po grumbulloni të gjithë softin e nevojshëm nga burimet, lista e softëve dhe versioneve në momentin e shkruarjes së artikullit:

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

Hapi i parë: grumbulloni dhe kompikoni PCRE2

Do ta anashkalojmë momentin e shkarkimit të burimeve nga burimet zyrtare pasi është shumë e qartë, kështu që keni shkarkuar arkivin, kaloni në dosjen me burimet PCRE2, dhe ekzekutoni komandën e mëposhtme për mbështetje UTF:

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

Në prefix specifikoni rrugën tuaj nëse nuk doni të përdorni vendndodhjen standard për instalimin e bibliotekës:

--prefix=/rruga/juaj/deri në bibliotekë

Në të kundërt, grumbulloni pa prefix.

Komandat e tjera tregojnë përfshirjen e mbështetjes për blloqet koduese 8-bit, 16-bit dhe 32-bit të PCRE, në këtë variant grumbullimi u krye me ta.

Natyrisht e kompikojmë këtë punë duke ekzekutuar komandat në rend:

make
make install

Nëse gjithçka është në rregull dhe kompilimi kaloi pa gabime, kaloni në hapin tjetër.

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

Duke qenë se Apache kompilon burimet nëpërmjet APR, duhet të lidhim bibliotekën në vetë APR, përndryshe ka mundësi të shfaqen gabime mbi funksionet e panjohura në burimet e Apache, sepse do të përdorim funksione të reja të PCRE2.

Do ta anashkalojmë momentin e shkarkimit të burimeve nga burimet zyrtare pasi është shumë e qartë, kështu që keni shkarkuar arkivin, keni kryer konfigurimin APR:

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

Natyrisht në prefix specifikoni rrugën tuaj nëse nuk doni të përdorni vendndodhjen standard për instalimin e bibliotekës, ose mos e specifikoni:

--prefix=/rruga/juaj/deri në bibliotekë

Pas përfundimit të konfigurimit, shkoni në katalogun: /etc/webserver/srcsrv/apr-1.7.0/build

Ose: /rruga/juaj/deri në bibliotekë/build

Gjeni skedarin apr_rules.mk në këtë katalog, dhe shtoni në fund të linjës ku:

EXTRA_LIBS=-lrt -lcrypt -lpthread -ldl

Përfshirja e bibliotekës:

-lpcre2-8 -L/rruga/juaj/deri në bibliotekë pcre2/lib

Ruajmë në katalogun rrënjësor të burimeve APR: /rruga/jote/deri në bibliotekë.

Kompivojmë APR-në tonë të modifikuar:

make
make install

Nëse gjithçka është në rregull dhe kompilimi kaloi pa gabime, kaloni në hapin tjetër.

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

Keni shkarkuar këtë bibliotekë nga burimi zyrtar, shkojmë në dosjen rrënjësore të arkivës së shkarkuar me APR-util, dhe japim radhazi komandat e mëposhtme:

./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/rruga/jote/deri në bibliotekë apr
make
make install

Natyrisht në prefix specifikoni rrugën tuaj nëse nuk doni të përdorni vendndodhjen standard për instalimin e bibliotekës, ose mos e specifikoni:

--prefix=/rruga/juaj/deri në bibliotekë

Po ashtu këtu ne lidhim APR-në tonë:

--with-apr=/rruga/jote/deri në bibliotekë apr

Hapi i katërt: shkarkojmë burimet nga gita Apache për mbështetje PCRE2

Është e rëndësishme: shkarkoni burimet nga gita versionin më të fundit.

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

Tani shkojmë në dyqanin e burimeve të Apache httpd, dhe ndërtojmë Apache me komandat e mëposhtme:

./configure --prefix=/etc/webserver/apache-2441 --with-apr=/rruga/jote/deri në bibliotekë apr --with-apr-util=/rruga/jote/deri në bibliotekë apr-util --with-pcre=/rruga/jote/deri në bibliotekë pcre2/bin/pcre2-config

Natyrisht në prefix specifikoni rrugën tuaj nëse nuk doni të përdorni vendndodhjen standard për instalimin e bibliotekës, ose mos e specifikoni:

--prefix=/rruga/jote/deri në Apache httpd

Po ashtu komandat shtesë për ndërtimin e Apache i shënon sipas dëshirës suaj, kam parasysh komandat për përfshirjen dhe çaktivizimin e moduleve dhe bibliotekave.

Pastaj shkojmë në dyqanin e burimeve të Apache httpd, për mua është:

/etc/webserver/srcsrv/httpd-2.4.41

Sigurisht kaloni në katalogun tuaj, zëvendësoni në katalog:

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

Skedari ap_regex.h, me atë që e kemi shkarkuar nga gita Apache.

Po ashtu shkojmë në katalog:

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

Zëvendësojmë skedarin util_pcre.c, me atë që e kemi shkarkuar nga gita Apache.

Tani na mbetet të shtojmë lidhjen e PCRE2 në vetë Apache, duhet të gjejmë skedarin ap_config_auto.h, ai ndodhet në katalogun:

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

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

/* Load PCRE2 */
#define HAVE_PCRE2 1

Ja tani jemi gati për momentin e vërtetë të kompilimit të Apache httpd me mbështetje PCRE2.
Shkojmë në dyqanin e burimeve të Apache httpd, e kompilojmë duke kryer komandat radhazi:

make
make install

Ja tani, nëse gjithçka ka shkuar mirë dhe pa gabime, do të keni një Apache httpd të ndërtuar dhe të kompiluar me mbështetje PCRE2, që do të thotë ndryshime pozitive në modulet e Apache që përdorin shprehjet rregullatore PCRE, njëra prej tyre është Moduli rewrite.

Në përfundim, kjo mënyrë ofron mundësinë për të përdorur PCRE2 deri në lëshimin zyrtar nga Apache Software Foundation, shpresoj që së shpejti do të dalë versioni me mbështetje për PCRE2.

Po ashtu gjatë testimit të standardeve .htaccess, nuk u shfaqën gabime, nëse ndokush ka probleme shkruani në koment.

P.S.

Më shqetësoi pak situata e përdorimit të dy versioneve të ndryshme të PCRE për hingstin tim, dhe vendosa ta rregulloj këtë.

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster