Nola egin PCRE2 laguntza Apache 2.4

Apache 2.4 PCRE2ra itzultzean nire esperientzia partekatu nahiko nuke, PHP 7-k ere PCRE2 liburutegia onartzen duelako denbora luzez, baina Apache Software Foundation kode irekiak oraindik ez du.
Jakina, orain ziurrenik Apache bertsioaren aurretik nago PCRE2 euskarria duen, Apache git-eko iturriak erabiltzen ari naizelako, eta horrek esaten digu PCRE2 euskarria dagoeneko posible dela hurrengo bertsioan, baina dagoeneko PCRE2 laguntza nahi dutenentzat. Apache 2.4, eta oharra itxaron nahi ez duten moduetako bat partekatzen dut.

Artikuluak suposatzen du beharrezko software guztia iturburu-kodetik, software-zerrenda bat eta bertsioak idazteko unean biltzen ari zarela:

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

Lehen urratsa: PCRE2 eraiki eta konpilatu

Salta dezagun iturri ofizialetatik deskargatzeko unea, hori agerikoa baita, artxiboa deskonprimitu duzu, joan PCRE2 iturriak dituen karpetara eta exekutatu komando hau UTF onartzeko:

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

Zehaztu zure bidea aurrizkian liburutegia instalatzeko kokapen estandarra erabili nahi ez baduzu:

--prefix=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Bestela, aurrizkirik gabe biltzen duzu.

Gainerako komandoek 8 biteko, 16 biteko eta 32 biteko PCRE kode-blokeetarako euskarriak sartzea adierazten dute, bertsio honetan muntaia haiekin egin zen.

Eta noski, gauza hau konpilatzen dugu komandoen exekuzio sekuentziala erabiliz:

make
make install

Dena ondo badago eta konpilazioa akatsik gabe joan bada, joan hurrengo urratsera.

Bigarren urratsa: konektatu PCRE2 liburutegia APR-ra

Apache-k iturriak APR erabiliz konpilatzen dituenez, liburutegia APRn bertan sartu behar dugu, bestela Apache-ko iturrietan funtzio ezezagunen inguruko akatsak egon daitezke, PCRE2 funtzio berriak erabiliko baititugu.

Utzi dezagun iturri ofizialetatik deskargatzeko unea, hau agerikoa baita, beraz, artxiboa deskonprimitu eta APR konfigurazioa egin duzu:

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

Jakina, zure bidea adieraziko duzu aurrizkian liburutegia instalatzeko kokapen estandarra erabili nahi ez baduzu edo zehazten ez baduzu:

--prefix=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Konfigurazioa amaitu ondoren, joan direktoriora: /etc/webserver/srcsrv/apr-1.7.0/build

Edo: /zure/bidea/liburutegira/eraiki

Aurkitu apr_rules.mk fitxategia direktorio honetan eta gehitu lerroak amaieran, non:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

Liburutegia konektatzea:

-lpcre2-8 -L/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pcre2/lib

Gorde eta joan APR iturrien erroko direktoriora: /your/path/liburutegira.

Konpilatu dezagun aldatutako APR:

make
make install

Dena ondo badago eta konpilazioa akatsik gabe joan bada, joan hurrengo urratsera.

Hirugarren urratsa: sortu APR-util Apacherako iturrietatik

Liburutegi hau iturburutik deskargatu duzu, joan despakitu gabeko artxiboaren erroko karpetara APR-util-ekin eta sartu komando hauek sekuentzialki:

./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ apr
make
make install

Jakina, zure bidea adieraziko duzu aurrizkian liburutegia instalatzeko kokapen estandarra erabili nahi ez baduzu edo zehazten ez baduzu:

--prefix=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Hemen ere gure APR konektatzen dugu:

--with-apr=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ apr

Laugarren urratsa: deskargatu iturriak Apache git-etik PCRE2 onartzeko

Garrantzitsua: git-en azken edizioko iturriak deskargatzen ditugu.

Ap_regex.h eta util_pcre.c bezalako bi iturri deskargatu behar ditugu, beheko estekak:
ap_regex.h
util_pcre.c

Orain joan zure Apache httpd iturburu-direktoriora eta eraiki Apache komando hauekin:

./configure --prefix=/etc/webserver/apache-2441 --with-apr=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ apr --with-apr-util=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ apr-util --with-pcre=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pcre2/bin/pcre2-config

Jakina, zure bidea adieraziko duzu aurrizkian liburutegia instalatzeko kokapen estandarra erabili nahi ez baduzu edo zehazten ez baduzu:

--prefix=/ваш/ΠΏΡƒΡ‚ΡŒ/Π΄ΠΎ Apache httpd

Apache eraikitzeko komando gehigarriak ere zehaztu ditzakezu zure diskrezioan, moduluak eta liburutegiak gaitzeko edo desgaitzeko komandoak esan nahi dut.

Ondoren, gure Apache httpd iturri-direktoriora joango gara, hau daukat:

/etc/webserver/srcsrv/httpd-2.4.41

Zure direktoriora joan zaitezke, ordezkatu direktorioa:

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

Apache git-etik deskargatu dugun ap_regex.h fitxategia.

Direktoriora ere joaten gara:

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

util_pcre.c fitxategia Apache git-etik deskargatutakoarekin ordezkatuko dugu

Orain besterik ez da geratzen Apache-n PCRE2 konexioa gehitzea, ap_config_auto.h fitxategia aurkitu behar duzu, direktorioan dago:

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

Fitxategi honen hasieran, sartu lerro hauek:

/* Load PCRE2 */
#define HAVE_PCRE2 1

Beno, orain prest gaude Apache httpd PCRE2 laguntzarekin konpilatzeko benetako momenturako.
Goazen gure Apache httpd iturburu direktorioa eta konpilatu hau komandoak sekuentzialki exekutatuz:

make
make install

Orain, dena ondo joan bada eta akatsik gabe, orduan Apache httpd muntatu eta konpilatu egingo duzu PCRE2 euskarriarekin, hau da, aldaketa positiboak PCRE adierazpen erregularrak erabiltzen dituzten Apache moduluetan, horietako bat Module reidazketa da.

Amaitzeko, metodo honek Apache Software Foundation-en bertsio ofiziala baino lehen PCRE2 erabiltzea posible egiten du, espero dut laster PCRE2 euskarria duen bertsio bat kaleratuko dela.

Gainera, .htaccess estandarraren proban, ez da akatsik gertatu, norbaitek akatsik badu, idatzi iruzkinetan.

PS

Pixka bat nahastu nintzen nire pilarako PCREren bi bertsio ezberdin erabiltzearen egoerarekin, eta konpontzea erabaki nuen.

Iturria: www.habr.com

Gehitu iruzkin berria