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-unicodeNë 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-170Natyrisht 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 -ldlPërfshirja e bibliotekës:
-lpcre2-8 -L/rruga/juaj/deri në bibliotekë pcre2/libRuajmë në katalogun rrënjësor të burimeve APR: /rruga/jote/deri në bibliotekë.
Kompivojmë APR-në tonë të modifikuar:
make
make installNë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 installNatyrisht 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ë aprHapi 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ë:
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-configNatyrisht 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 httpdPo 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.41Sigurisht kaloni në katalogun tuaj, zëvendësoni në katalog:
/etc/webserver/srcsrv/httpd-2.4.41/includeSkedari ap_regex.h, me atë që e kemi shkarkuar nga gita Apache.
Po ashtu shkojmë në katalog:
/etc/webserver/srcsrv/httpd-2.4.41/serverZë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/includeNë 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 installJa 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
