Deshiroj të ndaj eksperiencën time për përkthimin e Apache 2.4 në PCRE2, pasi edhe PHP 7 e mbështet prej kohësh bibliotekën PCRE2, ndërsa fondacioni i softuerit open-source Apache Software Foundation akoma nuk e ka bërë këtë.
Natyrisht, tani mund të them se po e parakaloj lëshimin e Apache me mbështetje për PCRE2, pasi po përdor burimet nga git-i i Apache, çka sugjeron se mbështetje për PCRE2 mund të jetë në lëshimin e ardhshëm, por për ata që tashmë dëshirojnë mbështetje për PCRE2 në Apache 2.4 dhe nuk duan të presin lëshimin, po ndaj një nga mënyrat.
Artikulli supozon që ju po ndërtoni të gjithë softin e nevojshëm nga burimet, lista e softeve dhe versioneve në momentin e shkruajtjes së artikullit:
PCRE2-10.33
APR 1.7.0
APR-util 1.6.1
Apache httpd 2.4.41
Hapi i parë: ndërtimi dhe kompilimi i PCRE2
Do ta kalojmë momentin e shkarkimit të burimeve nga burimet zyrtare, pasi është shumë e qartë; kështu që, pasi të keni shkarkuar arkivin, kaloni në dosjen me burimet e 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ë prefiks specifikoni rrugën tuaj nëse nuk dëshironi të përdorni vendndodhjen standarde për instalimin e bibliotekës:
--prefix=/rruga/jua/deri/tek/bibliotekaNë të kundërt, e krijoni pa prefiks.
Komandat e tjera specifikojnë përfshirjen e mbështetjes për blloqet e kodit 8-bit, 16-bit dhe 32-bit të PCRE, në këtë rast ndërtimi është realizuar me to.
Natyrisht, ne të kompakojmë këtë duke ekzekutuar komandat në rend:
make
make install Nëse gjithçka shkon mirë dhe kompilimi kalon pa gabime, kaloni në hapin e ardhshëm.
Hapi i dytë: ngjitja e bibliotekës PCRE2 në APR
Pasi Apache ndërton burimet duke përdorur APR, na nevojitet të lidhemi me bibliotekën në vetë APR, përndryshe mund të ndodhin gabime në lidhje me funksionet e panjohura në burimet e Apache, sepse ne do të përdorim funksione të reja të PCRE2.
Do ta kalojmë momentin e shkarkimit të burimeve nga burimet zyrtare, pasi është jashtëzakonisht e qartë; ashtu që, pasi të keni shkarkuar arkivin dhe keni ekzekutuar konfigurimin e APR:
./configure --prefix=/etc/webserver/apr-170Natyrisht, në prefiks specifikoni rrugën tuaj nëse nuk dëshironi të përdorni vendndodhjen standarde për instalimin e bibliotekës, ose mos e specifikoni:
--prefix=/rruga/jua/deri/tek/bibliotekaPas ekzekutimit të konfigurimit gjeni në katalog: /etc/webserver/srcsrv/apr-1.7.0/build
Ose: /rruga/jua/deri/tek/biblioteka/build
Gjeni skedarin apr_rules.mk në këtë katalog dhe shtoni në fund të linjës ku:
EXTRA_LIBS=-lrt -lcrypt -lpthread -ldlLidhja e bibliotekës:
-lpcre2-8 -L/rruga/jua/deri/tek/biblioteka/pcre2/libRuani dhe kaloni në katalogun rrënjor të burimeve të APR: /rruga/jua/deri/tek/biblioteka.
Kompiloni APR-në tone të modifikuar:
make
make installNëse gjithçka shkon mirë dhe kompilimi kalon pa gabime, kaloni në hapin e ardhshëm.
Hapi i tretë: ndërtimi i APR-util nga burimet për Apache
Keni shkarkuar këtë bibliotekë nga burimi zyrtar, kaloni në dosjen rrënjësore të arkivit të shpërndarë të APR-util dhe ekzekutoni radhazi komandat e mëposhtme:
./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/rruga/jua/deri/tek/biblioteka/apr
make
make installNatyrisht, në prefiks specifikoni rrugën tuaj nëse nuk dëshironi të përdorni vendndodhjen standarde për instalimin e bibliotekës, ose mos e specifikoni:
--prefix=/rruga/jua/deri/tek/bibliotekaPo ashtu këtu ne lidhim APR-në tonë:
--with-apr=/rruga/jua/deri/tek/biblioteka/aprHapi i katërt: shkarkoni burimet nga git-i i Apache për mbështetje të PCRE2
ĂshtĂ« e rĂ«ndĂ«sishme: shkarkoni burimet nga git-i nĂ« versionin mĂ« tĂ« fundit.
Na nevojitet të shkarkoni dy burime, si ap_regex.h dhe util_pcre.c, lidhjet më poshtë:
Tani shkojmë në drejtorinë tuaj të burimeve të Apache httpd dhe ndërtoni Apache me komandat e mëposhtme:
./configure --prefix=/etc/webserver/apache-2441 --with-apr=/rruga/jua/deri/tek/biblioteka/apr --with-apr-util=/rruga/jua/deri/tek/biblioteka/apr-util --with-pcre=/rruga/jua/deri/tek/biblioteka/pcre2/bin/pcre2-configNatyrisht, në prefiks specifikoni rrugën tuaj nëse nuk dëshironi të përdorni vendndodhjen standarde për instalimin e bibliotekës, ose mos e specifikoni:
--prefix=/rruga/jua/deri/tek/Apache httpdGjithashtu, komandat shtesë për ndërtimin e Apache jepni sipas dëshirës tuaj, kam parasysh komandat për përfshirjen ose përjashtimin e moduleve dhe bibliotekave.
Më pas kaloni në drejtorinë tuaj të burimeve të Apache httpd, për mua kjo është:
/etc/webserver/srcsrv/httpd-2.4.41Natyrisht, kaloni në katalogun tuaj, zëvendësoni në katalog:
/etc/webserver/srcsrv/httpd-2.4.41/includeSkedarin ap_regex.h, me atë që kemi shkarkuar nga git-i i Apache.
Po ashtu kaloni në katalog:
/etc/webserver/srcsrv/httpd-2.4.41/serverZëvendësoni skedarin util_pcre.c, me atë që kemi shkarkuar nga git-i i Apache.
Tani mbetet të shtoni lidhjen e PCRE2 në vetë Apache, duhet të gjeni skedarin ap_config_auto.h, i cili gjendet në katalogun:
/etc/webserver/srcsrv/httpd-2.4.41/includeNë fillim të këtij skedari, shtoni rreshtat e mëposhtëm:
/* Load PCRE2 */
#define HAVE_PCRE2 1 Tani jemi gati për momentin e vërtetë të kompiletimit të Apache httpd me mbështetje për PCRE2.
Kalo në direktorinë tuaj të burimeve të Apache httpd, dhe ndihmohuni të kompilohet duke ekzekutuar radhazi komandat:
make
make installTani, nëse gjithçka ka shkuar mirë dhe pa gabime, do të keni Apache httpd të ndërtuar dhe të kompiliuar me mbështetje për PCRE2, e cila do të thotë përmirësime pozitive në modulet e Apache që përdorin shprehjet e rregullta të PCRE, një prej të cilave është Moduli i ri.
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 se shumë shpejt do të dalë një version me mbështetje për PCRE2.
Po ashtu, gjatë provës së standardeve .htaccess, nuk ka pasur gabime, nëse ndokush ka gabime, shkruani në komentet.
P.S.
Më shqetësonte pak situata e përdorimit të dy versioneve të ndryshme të PCRE për stakun tim, prandaj vendosa ta rregulloj këtë.
Burimi: habr.com
