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