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:
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