Hoffwn rannu fy mhrofiad o gyfieithu Apache 2.4 i PCRE2, gan fod hyd yn oed PHP 7 wedi cefnogi'r llyfrgell PCRE2 ers amser maith, ond nid yw'r ffynhonnell agored Apache Software Foundation yn dal i wneud hynny.
Wrth gwrs, mae'n debyg fy mod bellach ar y blaen i ryddhad Apache gyda chefnogaeth PCRE2, gan fy mod yn defnyddio'r ffynonellau o'r Apache git, sy'n dweud wrthym fod cefnogaeth PCRE2 eisoes yn bosibl yn y datganiad nesaf, ond i'r rhai sydd eisoes eisiau cefnogaeth PCRE2 yn Apache 2.4, a phwy sydd ddim eisiau aros rhyddhau Rwy'n rhannu un o'r ffyrdd.
Mae'r erthygl yn cymryd yn ganiataol eich bod yn casglu'r holl feddalwedd angenrheidiol o'r cod ffynhonnell, rhestr o feddalwedd a fersiynau ar adeg ysgrifennu:
PCRE2-10.33
EBRILL 1.7.0
APR-defnydd 1.6.1
Apache httpd 2.4.41
Cam un: adeiladu a llunio PCRE2
Gadewch i ni hepgor yr eiliad o lawrlwytho'r ffynonellau o'r ffynonellau swyddogol gan fod hyn yn rhy amlwg, felly rydych chi wedi dadbacio'r archif, ewch i'r ffolder gyda'r ffynonellau PCRE2, a rhedeg y gorchymyn canlynol i gefnogi UTF:
./configure --prefix=/etc/webserver/pcre2-1033 --enable-pcre2-8 --enable-pcre2-16 --enable-pcre2-32 --enable-unicode
Nodwch eich llwybr yn y rhagddodiad os nad ydych am ddefnyddio'r lleoliad safonol i osod y llyfrgell:
--prefix=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
Fel arall, byddwch yn casglu heb rhagddodiad.
Mae'r gorchmynion sy'n weddill yn nodi cynnwys cefnogaeth ar gyfer blociau cod PCRE 8-bit, 16-bit a 32-bit, yn y fersiwn hwn perfformiwyd y cynulliad gyda nhw.
Ac wrth gwrs, rydym yn llunio'r peth hwn gan ddefnyddio gweithredu dilyniannol o orchmynion:
make
make install
Os yw popeth yn iawn a bod y casgliad wedi mynd heb wallau, symudwch ymlaen i'r cam nesaf.
Cam dau: cysylltu'r llyfrgell PCRE2 ag APR
Gan fod Apache yn llunio ffynonellau gan ddefnyddio APR, mae angen i ni gynnwys y llyfrgell yn APR ei hun, fel arall efallai y bydd gwallau ynghylch swyddogaethau anhysbys yn ffynonellau Apache, oherwydd byddwn yn defnyddio swyddogaethau PCRE2 newydd.
Gadewch i ni hepgor yr eiliad o lawrlwytho ffynonellau o ffynonellau swyddogol gan fod hyn yn rhy amlwg, felly fe wnaethoch chi ddadbacio'r archif a pherfformio'r ffurfwedd APR:
./configure --prefix=/etc/webserver/apr-170
Yn naturiol, rydych chi'n nodi'ch llwybr yn y rhagddodiad os nad ydych chi am ddefnyddio'r lleoliad safonol ar gyfer gosod y llyfrgell, neu os nad ydych chi'n nodi:
--prefix=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
Ar Γ΄l cwblhau'r ffurfweddiad, ewch i'r cyfeiriadur: /etc/webserver/srcsrv/apr-1.7.0/build
Neu: /eich/llwybr/i'r llyfrgell/adeilad
Dewch o hyd i'r ffeil apr_rules.mk yn y cyfeiriadur hwn, ac ychwanegwch y llinellau ar y diwedd lle:
EXTRA_LIBS=-lrt -lcrypt -lpthread -ldl
Cysylltu'r llyfrgell:
-lpcre2-8 -L/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pcre2/lib
Arbedwch ac ewch i gyfeiriadur gwraidd y ffynonellau APR: / eich / llwybr / i'r llyfrgell.
Gadewch i ni lunio ein APR addasedig:
make
make install
Os yw popeth yn iawn a bod y casgliad wedi mynd heb wallau, symudwch ymlaen i'r cam nesaf.
Cam tri: adeiladu APR-util ar gyfer Apache o ffynonellau
Rydych chi wedi lawrlwytho'r llyfrgell hon o'r ffynhonnell, ewch i ffolder gwraidd yr archif heb ei bacio gydag APR-util, a rhowch y gorchmynion canlynol yn olynol:
./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ apr
make
make install
Yn naturiol, rydych chi'n nodi'ch llwybr yn y rhagddodiad os nad ydych chi am ddefnyddio'r lleoliad safonol ar gyfer gosod y llyfrgell, neu os nad ydych chi'n nodi:
--prefix=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
Rydym hefyd yn cysylltu ein APR yma:
--with-apr=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ apr
Cam pedwar: lawrlwythwch ffynonellau o Apache git i gefnogi PCRE2
Pwysig: Rydym yn lawrlwytho'r ffynonellau o'r rhifyn diweddaraf o'r git.
Mae angen i ni lawrlwytho dwy ffynhonnell fel ap_regex.h ac util_pcre.c, dolenni isod:
Nawr ewch i'ch cyfeiriadur ffynhonnell Apache httpd ac adeiladu Apache gyda'r gorchmynion canlynol:
./configure --prefix=/etc/webserver/apache-2441 --with-apr=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ apr --with-apr-util=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ apr-util --with-pcre=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pcre2/bin/pcre2-config
Yn naturiol, rydych chi'n nodi'ch llwybr yn y rhagddodiad os nad ydych chi am ddefnyddio'r lleoliad safonol ar gyfer gosod y llyfrgell, neu os nad ydych chi'n nodi:
--prefix=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Apache httpd
Gallwch hefyd nodi gorchmynion ychwanegol ar gyfer adeiladu Apache yn Γ΄l eich disgresiwn, rwy'n golygu'r gorchmynion ar gyfer galluogi neu analluogi modiwlau a llyfrgelloedd.
Nesaf rydyn ni'n mynd i'n cyfeiriadur ffynhonnell Apache httpd, mae gen i hwn:
/etc/webserver/srcsrv/httpd-2.4.41
Rydych chi'n naturiol yn mynd i'ch cyfeiriadur, yn disodli yn y cyfeiriadur:
/etc/webserver/srcsrv/httpd-2.4.41/include
Y ffeil ap_regex.h, y gwnaethom ei lawrlwytho o'r Apache git.
Rydym hefyd yn mynd i'r cyfeiriadur:
/etc/webserver/srcsrv/httpd-2.4.41/server
Rydyn ni'n disodli'r ffeil util_pcre.c gyda'r un y gwnaethom ei lawrlwytho o'r Apache git
Nawr y cyfan sydd ar Γ΄l yw ychwanegu'r cysylltiad PCRE2 yn Apache ei hun, mae angen i chi ddod o hyd i'r ffeil ap_config_auto.h, mae wedi'i leoli yn y cyfeiriadur:
/etc/webserver/srcsrv/httpd-2.4.41/include
Ar ddechrau'r ffeil hon, rhowch y llinellau canlynol:
/* Load PCRE2 */
#define HAVE_PCRE2 1
Wel, nawr rydyn ni'n barod am y foment wirioneddol o lunio Apache httpd gyda chefnogaeth PCRE2.
Gadewch i ni fynd i'n cyfeiriadur ffynhonnell Apache httpd a llunio hwn trwy weithredu'r gorchmynion yn olynol:
make
make install
Nawr, pe bai popeth yn mynd yn dda a heb wallau, yna byddwch wedi cydosod a llunio Apache httpd gyda chefnogaeth PCRE2, sy'n golygu newidiadau cadarnhaol mewn modiwlau Apache sy'n defnyddio ymadroddion rheolaidd PCRE, un o'r rhain yw Modiwl ailysgrifennu.
I gloi, mae'r dull hwn yn ei gwneud hi'n bosibl defnyddio PCRE2 cyn ei ryddhau gan Sefydliad Meddalwedd Apache, rwy'n gobeithio y bydd fersiwn gyda chefnogaeth PCRE2 yn cael ei ryddhau yn fuan.
Hefyd, wrth brofi safon .htaccess, ni ddigwyddodd unrhyw wallau, os oes gan unrhyw un unrhyw wallau, ysgrifennwch y sylwadau.
PS
Roeddwn ychydig yn ddryslyd gan y sefyllfa o ddefnyddio dwy fersiwn wahanol o PCRE ar gyfer fy pentwr, a phenderfynais ei drwsio.
Ffynhonnell: hab.com