Kuinka saada PCRE2-tuki Apache 2.4:lle

Haluaisin jakaa kokemukseni Apache 2.4:n kääntämisestä PCRE2:ksi, koska jopa PHP 7 on tukenut PCRE2-kirjastoa pitkään, mutta avoimen lähdekoodin Apache Software Foundation ei vieläkään.
Tietysti olen nyt luultavasti edellä Apache-julkaisua PCRE2-tuella, koska käytän Apache-gitin lähteitä, mikä kertoo meille, että PCRE2-tuki on mahdollista jo seuraavassa julkaisussa, mutta niille, jotka jo haluavat PCRE2-tuen Apache 2.4, ja jotka eivät halua odottaa julkaisua, jaan yhden tavoista.

Artikkelissa oletetaan, että keräät kaikki tarvittavat ohjelmistot lähdekoodista, ohjelmistoluettelosta ja versioista kirjoittaessasi:

PCRE2-10.33
APR 1.7.0
Huhtikuu 1.6.1
Apache httpd 2.4.41

Vaihe yksi: rakentaa ja kääntää PCRE2

Jätetään lähteiden lataaminen virallisista lähteistä pois, koska tämä on liian ilmeistä, joten olet purkanut arkiston, mene PCRE2-lähteiden kansioon ja suorita seuraava komento tukeaksesi UTF:ää:

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

Määritä polkusi etuliitteessä, jos et halua käyttää vakiosijaintia kirjaston asentamiseen:

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

Muussa tapauksessa keräät ilman etuliitettä.

Loput komennot osoittavat tuen sisällyttämisen 8-bittisille, 16-bittisille ja 32-bittisille PCRE-koodilohkoille, tässä versiossa kokoonpano suoritettiin niiden kanssa.

Ja tietysti kokoamme tämän asian käyttämällä komentojen peräkkäistä suorittamista:

make
make install

Jos kaikki on kunnossa ja käännös sujui ilman virheitä, siirry seuraavaan vaiheeseen.

Vaihe kaksi: yhdistä PCRE2-kirjasto APR:ään

Koska Apache kääntää lähteet APR:n avulla, meidän on sisällytettävä kirjasto itse APR:ään, muuten Apache-lähteissä voi esiintyä tuntemattomista funktioista virheitä, koska käytämme uusia PCRE2-funktioita.

Jätetään pois lähteiden lataaminen virallisista lähteistä, koska tämä on liian ilmeistä, joten purit arkiston ja suoritit APR-määrityksen:

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

Ilmoitat luonnollisesti etuliitteessä polkusi, jos et halua käyttää kirjaston asennuksessa vakiosijaintia tai jos et määritä:

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

Kun asetukset on tehty, siirry hakemistoon /etc/webserver/srcsrv/apr-1.7.0/build

Tai: /oma/polku/kirjastoon/koonti

Etsi apr_rules.mk-tiedosto tästä hakemistosta ja lisää rivit loppuun:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

Kirjaston yhdistäminen:

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

Tallenna ja siirry APR-lähteiden juurihakemistoon: /oma/polku/kirjastoon.

Kootaan muokattu vuosikorko:

make
make install

Jos kaikki on kunnossa ja käännös sujui ilman virheitä, siirry seuraavaan vaiheeseen.

Vaihe kolme: rakenna APR-util Apachelle lähteistä

Olet ladannut tämän kirjaston lähteestä, siirry pakkaamattoman arkiston juurikansioon APR-utililla ja anna seuraavat komennot peräkkäin:

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

Ilmoitat luonnollisesti etuliitteessä polkusi, jos et halua käyttää kirjaston asennuksessa vakiosijaintia tai jos et määritä:

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

Yhdistämme myös vuosikorkomme tähän:

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

Vaihe neljä: lataa lähteet Apache gitistä PCRE2:n tukemiseksi

Tärkeää: Lataamme lähteet gitin uusimmasta versiosta.

Meidän on ladattava kaksi lähdettä, kuten ap_regex.h ja util_pcre.c, linkit alla:
ap_regex.h
util_pcre.c

Siirry nyt Apachen httpd-lähdehakemistoon ja rakenna Apache seuraavilla komennoilla:

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

Ilmoitat luonnollisesti etuliitteessä polkusi, jos et halua käyttää kirjaston asennuksessa vakiosijaintia tai jos et määritä:

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

Voit myös määrittää lisäkomentoja Apachen rakentamiseen oman harkintasi mukaan, tarkoitan komentoja moduulien ja kirjastojen käyttöönottoon tai poistamiseen.

Seuraavaksi siirrymme Apache httpd -lähdehakemistoomme, minulla on tämä:

/etc/webserver/srcsrv/httpd-2.4.41

Menet luonnollisesti hakemistoosi, vaihdat hakemistoon:

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

Tiedosto ap_regex.h, jonka latasimme Apache-gitistä.

Menemme myös hakemistoon:

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

Korvaamme tiedoston util_pcre.c Apache-gitistä ladatulla tiedostolla

Nyt on jäljellä vain PCRE2-yhteyden lisääminen itse Apachessa, sinun on löydettävä tiedosto ap_config_auto.h, se sijaitsee hakemistossa:

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

Lisää tämän tiedoston alkuun seuraavat rivit:

/* Load PCRE2 */
#define HAVE_PCRE2 1

No, nyt olemme valmiita todelliseen hetkeen kääntämään Apache httpd PCRE2-tuella.
Siirrytään Apachen httpd-lähdehakemistoomme ja käännetään tämä suorittamalla komennot peräkkäin:

make
make install

Nyt, jos kaikki meni hyvin ja ilman virheitä, olet koottu ja kääntänyt Apache httpd:n PCRE2-tuella, mikä tarkoittaa myönteisiä muutoksia Apache-moduuleissa, jotka käyttävät PCRE-säännöllisiä lausekkeita, yksi näistä on Module rewrite.

Yhteenvetona voidaan todeta, että tämä menetelmä mahdollistaa PCRE2:n käytön ennen Apache Software Foundationin virallista julkaisua, toivon, että PCRE2-tuella varustettu versio julkaistaan ​​pian.

Myös standardin .htaccess-testauksen aikana ei tapahtunut virheitä, jos jollain on virheitä, kirjoita kommentteihin.

PS.

Olin hieman hämmentynyt kahden eri PCRE-version käyttämisestä pinossani, ja päätin korjata sen.

Lähde: will.com

Lisää kommentti