Cumu fà u supportu PCRE2 per Apache 2.4

Vogliu sparte a mo sperienza di traduzzione Apache 2.4 à PCRE2, postu chì ancu PHP 7 hà supportatu a biblioteca PCRE2 per un bellu pezzu, ma l'Apache Software Foundation ùn hè micca sempre.
Di sicuru, avà sò prubabilmente avanti di a versione Apache cù u supportu PCRE2, postu chì aghju utilizatu e fonti da l'Apache git, chì ci dice chì u supportu PCRE2 hè digià pussibule in a prossima versione, ma per quelli chì volenu digià supportu PCRE2 in Apache 2.4, è chì ùn volenu aspittà a liberazione, sparte unu di i modi.

L'articulu assume chì vi cullà tuttu u software necessariu da u codice fonte, una lista di software è versioni à u mumentu di a scrittura:

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

Primu passu: custruisce è cumpilà PCRE2

Saltamu u mumentu di scaricamentu di e fonti da e fonti ufficiali postu chì questu hè troppu ovvi, cusì avete sbulicatu l'archiviu, andate à u cartulare cù e fonti PCRE2, è eseguite u cumandimu seguitu per sustene UTF:

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

Specificate a vostra strada in u prefissu se ùn vulete micca aduprà u locu standard per installà a biblioteca:

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

Altrimenti, cullate senza prefissu.

I cumandamenti rimanenti indicanu l'inclusione di supporti per i blocchi di codice PCRE 8-bit, 16-bit è 32-bit, in questa versione l'assemblea hè stata realizata cun elli.

E di sicuru, compilemu sta cosa usendu l'esekzione sequenziale di cumandamenti:

make
make install

Se tuttu va bè è a compilazione hè andata senza errori, andate à u passu prossimu.

Passu dui: cunnette a biblioteca PCRE2 à APR

Siccomu Apache compile i fonti cù l'APR, avemu bisognu di includà a biblioteca in APR stessu, altrimenti ci ponu esse errori nantu à e funzioni scunnisciute in i fonti Apache, perchè avemu da aduprà novi funzioni PCRE2.

Omettemu u mumentu di scaricamentu di fonti da fonti ufficiali postu chì questu hè troppu ovvi, cusì avete sbulicatu l'archiviu è eseguite a cunfigurazione APR:

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

Naturalmente, indicate a vostra strada in u prefissu se ùn vulete micca aduprà u locu standard per installà a biblioteca, o se ùn specificate micca:

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

Dopu avè finitu a cunfigurazione, andate à u cartulare: /etc/webserver/srcsrv/apr-1.7.0/build

O: /your/path/à a biblioteca/build

Truvate u schedariu apr_rules.mk in questu repertoriu, è aghjunghje e linee à a fine induve:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

Cunnessu a biblioteca:

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

Salvà è andate à u repertoriu radicali di e fonti APR: /your/path/to the library.

Cumpilemu u nostru APR mudificatu:

make
make install

Se tuttu va bè è a compilazione hè andata senza errori, andate à u passu prossimu.

Passu trè: custruite APR-util per Apache da fonti

Avete scaricatu sta biblioteca da a fonte, andate à u cartulare radicale di l'archiviu unpacked cù APR-util, è inserite i seguenti cumandamenti in sequenza:

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

Naturalmente, indicate a vostra strada in u prefissu se ùn vulete micca aduprà u locu standard per installà a biblioteca, o se ùn specificate micca:

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

Cunnetteremu ancu u nostru APR quì:

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

Quattru passu: scaricate e fonti da Apache git per supportà PCRE2

Impurtante: Scaricamu e fonti da l'ultima edizione di git.

Avemu bisognu di scaricà duie fonti cum'è ap_regex.h è util_pcre.c, ligami sottu:
ap_regex.h
util_pcre.c

Avà andate à u vostru cartulare di fonte httpd Apache è custruisce Apache cù i seguenti cumandamenti:

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

Naturalmente, indicate a vostra strada in u prefissu se ùn vulete micca aduprà u locu standard per installà a biblioteca, o se ùn specificate micca:

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

Pudete ancu specificà cumandamenti supplementari per custruisce Apache à a vostra discrezione, vogliu dì i cumandamenti per attivà o disattivà moduli è biblioteche.

Dopu andemu à u nostru annuariu di fonte httpd Apache, aghju questu:

/etc/webserver/srcsrv/httpd-2.4.41

Naturalmente andate in u vostru cartulare, rimpiazzate in u cartulare:

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

U schedariu ap_regex.h, chì avemu scaricatu da l'Apache git.

Andemu ancu à u cartulare:

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

Sustituemu u schedariu util_pcre.c cù quellu chì avemu scaricatu da l'Apache git

Avà tuttu ciò chì resta hè di aghjunghje a cunnessione PCRE2 in Apache stessu, avete bisognu di truvà u schedariu ap_config_auto.h, si trova in u cartulare:

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

À u principiu di stu schedariu, inserite e seguenti linee:

/* Load PCRE2 */
#define HAVE_PCRE2 1

Ebbè, avà simu pronti per u veru mumentu di cumpilà Apache httpd cù supportu PCRE2.
Andemu à u nostru repertoriu di fonte Apache httpd è compile questu eseguendu sequenzialmente i cumandamenti:

make
make install

Avà, se tuttu hè andatu bè è senza errori, allora avete assemblatu è compilatu Apache httpd cù u supportu PCRE2, chì significa cambiamenti pusitivi in ​​i moduli Apache chì utilizanu espressioni regulari PCRE, unu di questi hè Module rewrite.

In cunclusioni, stu metudu permette di utilizà PCRE2 prima di a liberazione da l'Apache Software Foundation, spergu chì una versione cù supportu PCRE2 serà liberatu prestu.

Inoltre, durante a prova di .htaccess standard, ùn ci hè micca un errore, se qualchissia hà qualchì errore, scrivite in i cumenti.

PS

Eru un pocu cunfusu da a situazione di utilizà duie versioni diffirenti di PCRE per a mo pila, è aghju decisu di riparà.

Source: www.habr.com

Add a comment