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