Kif tagħmel l-appoġġ PCRE2 għal Apache 2.4

Nixtieq naqsam l-esperjenza tiegħi tat-traduzzjoni tal-Apache 2.4 għal PCRE2, peress li anke PHP 7 appoġġa l-librerija PCRE2 għal żmien twil, iżda l-Apache Software Foundation xorta waħda ma tagħmilx appoġġ.
Naturalment, issa probabilment jien qabel ir-rilaxx Apache bl-appoġġ PCRE2, peress li qed nuża s-sorsi mill-Apache git, li jgħidilna li l-appoġġ PCRE2 huwa diġà possibbli fir-rilaxx li jmiss, iżda għal dawk li diġà jridu appoġġ PCRE2 f' Apache 2.4, u li ma jridux jistennew ir-rilaxx naqsam wieħed mill-modi.

L-artikolu jassumi li qed tiġbor is-softwer kollu meħtieġ mill-kodiċi tas-sors, lista ta 'softwer u verżjonijiet fil-ħin tal-kitba:

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

L-ewwel pass: ibni u kkumpila PCRE2

Ejja naqbżu l-mument tat-tniżżil tas-sorsi mis-sorsi uffiċjali peress li dan huwa ovvju wisq, allura inti żppakkjat l-arkivju, mur fil-folder bis-sorsi PCRE2, u mexxi l-kmand li ġej biex tappoġġja l-UTF:

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

Speċifika l-passaġġ tiegħek fil-prefiss jekk ma tridx tuża l-post standard biex tinstalla l-librerija:

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

Inkella, tiġbor mingħajr prefiss.

Il-kmandi li jifdal jindikaw l-inklużjoni ta 'appoġġi għal blokki ta' kodiċi PCRE ta '8-bit, 16-bit u 32-bit, f'din il-verżjoni l-assemblaġġ sar magħhom.

U ovvjament, aħna niġbru din il-ħaġa billi tuża eżekuzzjoni sekwenzjali ta 'kmandi:

make
make install

Jekk kollox huwa tajjeb u l-kumpilazzjoni marret mingħajr żbalji, imxi għall-pass li jmiss.

It-tieni pass: qabbad il-librerija PCRE2 ma 'APR

Peress li Apache jiġbor is-sorsi bl-użu ta 'APR, għandna bżonn ninkludu l-librerija fl-APR innifsu, inkella jista' jkun hemm żbalji dwar funzjonijiet mhux magħrufa fis-sorsi Apache, minħabba li se nkunu qed nużaw funzjonijiet PCRE2 ġodda.

Ejja nħallu barra l-mument tat-tniżżil tas-sorsi minn sorsi uffiċjali peress li dan huwa ovvju wisq, għalhekk ħatt l-arkivju u wettaqt il-konfigurazzjoni tal-APR:

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

Naturalment, tindika l-passaġġ tiegħek fil-prefiss jekk ma tridx tuża l-post standard għall-installazzjoni tal-librerija, jew jekk ma tispeċifikax:

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

Wara li tlesti l-konfigurazzjoni, mur fid-direttorju: /etc/webserver/srcsrv/apr-1.7.0/build

Jew: /tiegħek/passaġġ/sal-librerija/bini

Sib il-fajl apr_rules.mk f'dan id-direttorju, u żid il-linji fl-aħħar fejn:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

Konnessjoni tal-librerija:

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

Issejvja u mur fid-direttorju tal-għeruq tas-sorsi tal-APR: /your/path/to the library.

Ejja niġbru l-APR modifikat tagħna:

make
make install

Jekk kollox huwa tajjeb u l-kumpilazzjoni marret mingħajr żbalji, imxi għall-pass li jmiss.

It-tielet pass: ibni APR-util għal Apache minn sorsi

Int niżżilt din il-librerija mis-sors, mur fil-folder tal-għeruq tal-arkivju mhux ippakkjat b'APR-util, u daħħal il-kmandi li ġejjin b'mod sekwenzjali:

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

Naturalment, tindika l-passaġġ tiegħek fil-prefiss jekk ma tridx tuża l-post standard għall-installazzjoni tal-librerija, jew jekk ma tispeċifikax:

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

Aħna ngħaqqdu wkoll l-APR tagħna hawn:

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

L-erba 'pass: niżżel is-sorsi minn Apache git biex tappoġġja PCRE2

Importanti: Iniżżlu s-sorsi mill-aħħar edizzjoni tal-git.

Irridu tniżżel żewġ sorsi bħal ap_regex.h u util_pcre.c, links hawn taħt:
ap_regex.h
util_pcre.c

Issa mur fid-direttorju tas-sors httpd Apache tiegħek u ibni Apache bil-kmandi li ġejjin:

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

Naturalment, tindika l-passaġġ tiegħek fil-prefiss jekk ma tridx tuża l-post standard għall-installazzjoni tal-librerija, jew jekk ma tispeċifikax:

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

Tista 'wkoll tispeċifika kmandi addizzjonali għall-bini ta' Apache fid-diskrezzjoni tiegħek, niġifieri l-kmandi għall-attivazzjoni jew id-diżattivazzjoni ta 'moduli u libreriji.

Sussegwentement immorru fid-direttorju tas-sors httpd Apache tagħna, għandi dan:

/etc/webserver/srcsrv/httpd-2.4.41

Int naturalment tmur fid-direttorju tiegħek, ibdel fid-direttorju:

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

Il-fajl ap_regex.h, li niżżilna mill-Apache git.

Immorru wkoll fid-direttorju:

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

Nissostitwixxu l-fajl util_pcre.c b'dak li niżżilna mill-Apache git

Issa dak kollu li jibqa 'huwa li żżid il-konnessjoni PCRE2 f'Apache innifsu, trid issib il-fajl ap_config_auto.h, jinsab fid-direttorju:

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

Fil-bidu nett ta’ dan il-fajl, daħħal il-linji li ġejjin:

/* Load PCRE2 */
#define HAVE_PCRE2 1

Ukoll, issa aħna lesti għall-mument reali tal-kumpilazzjoni ta 'Apache httpd bl-appoġġ PCRE2.
Ejja mmorru fid-direttorju tas-sors httpd Apache tagħna u ikkumpila dan billi tesegwixxi l-kmandi b'mod sekwenzjali:

make
make install

Issa, jekk kollox mar tajjeb u mingħajr żbalji, allura inti tkun immuntat u kkumpilat Apache httpd b'appoġġ PCRE2, li jfisser bidliet pożittivi fil-moduli Apache li jużaw espressjonijiet regolari PCRE, waħda minn dawn hija l-kitba mill-ġdid tal-Modulu.

Bħala konklużjoni, dan il-metodu jagħmilha possibbli li tuża PCRE2 qabel ir-rilaxx uffiċjali mill-Apache Software Foundation, nispera li dalwaqt tiġi rilaxxata verżjoni b'appoġġ PCRE2.

Ukoll, waqt l-ittestjar tal-istandard .htaccess, ma seħħew l-ebda żbalji, jekk xi ħadd ikollu xi żbalji, ikteb fil-kummenti.

PS

Kont xi ftit konfuż bis-sitwazzjoni li nuża żewġ verżjonijiet differenti ta 'PCRE għall-munzell tiegħi, u ddeċidejt li nirranġaha.

Sors: www.habr.com

Żid kumment