Bii o ṣe le ṣe atilẹyin PCRE2 fun Apache 2.4

Emi yoo fẹ lati pin iriri mi ti itumọ Apache 2.4 si PCRE2, nitori paapaa PHP 7 ti ṣe atilẹyin ile-ikawe PCRE2 fun igba pipẹ, ṣugbọn orisun ṣiṣi Apache Software Foundation ko tun ṣe.
Nitoribẹẹ, Mo wa ni bayi ṣaaju itusilẹ Apache pẹlu atilẹyin PCRE2, nitori Mo n lo awọn orisun lati Apache git, eyiti o sọ fun wa pe atilẹyin PCRE2 ṣee ṣe tẹlẹ ni itusilẹ atẹle, ṣugbọn fun awọn ti o fẹ atilẹyin PCRE2 tẹlẹ ninu Apache 2.4, ati awọn ti ko fẹ duro itusilẹ Mo pin ọkan ninu awọn ọna naa.

Nkan naa dawọle pe o n gba gbogbo sọfitiwia pataki lati koodu orisun, atokọ ti sọfitiwia ati awọn ẹya ni akoko kikọ:

PCRE2-10.33
Oṣu Kẹrin ọdun 1.7.0
APR-soke 1.6.1
Apache httpd 2.4.41

Igbesẹ akọkọ: kọ ati ṣajọ PCRE2

Jẹ ki a foju akoko igbasilẹ awọn orisun lati awọn orisun osise nitori eyi jẹ kedere pupọ, nitorinaa o ti ṣii iwe-ipamọ naa, lọ si folda pẹlu awọn orisun PCRE2, ati ṣiṣe aṣẹ atẹle lati ṣe atilẹyin UTF:

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

Pato ọna rẹ ni asọtẹlẹ ti o ko ba fẹ lo ipo boṣewa lati fi sori ẹrọ ile-ikawe naa:

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

Bibẹẹkọ, o gba laisi ìpele kan.

Awọn ofin to ku tọkasi ifisi ti awọn atilẹyin fun awọn bulọọki koodu PCRE 8-bit, 16-bit ati 32-bit, ninu ẹya yii a ṣe apejọ pẹlu wọn.

Ati pe nitorinaa, a ṣe akopọ nkan yii nipa lilo ipaniyan lẹsẹsẹ ti awọn aṣẹ:

make
make install

Ti ohun gbogbo ba dara ati pe akopo lọ laisi awọn aṣiṣe, tẹsiwaju si igbesẹ ti n tẹle.

Igbesẹ meji: so ile-ikawe PCRE2 pọ si APR

Niwọn bi Apache ṣe n ṣajọ awọn orisun ni lilo APR, a nilo lati fi ile-ikawe sinu APR funrararẹ, bibẹẹkọ awọn aṣiṣe le wa nipa awọn iṣẹ aimọ ni awọn orisun Apache, nitori a yoo lo awọn iṣẹ PCRE2 tuntun.

Jẹ ki a yọkuro akoko gbigba awọn orisun lati awọn orisun osise nitori eyi ti han gbangba, nitorinaa o ṣii ibi ipamọ naa ati ṣe iṣeto APR:

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

Nipa ti ara, o tọka ọna rẹ ni asọtẹlẹ ti o ko ba fẹ lo ipo boṣewa fun fifi sori ile-ikawe, tabi ti o ko ba pato:

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

Lẹhin ipari iṣeto, lọ si liana: /etc/webserver/srcsrv/apr-1.7.0/build

Tabi: /your/ona/si ile ikawe/kọle

Wa faili apr_rules.mk ninu itọsọna yii, ki o ṣafikun awọn laini ni ipari nibiti:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

Nsopọ ile-ikawe:

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

Fipamọ ki o lọ si itọsọna root ti awọn orisun APR: /your/ona/si ile-ikawe.

Jẹ ki a ṣe akopọ APR ti a ti yipada:

make
make install

Ti ohun gbogbo ba dara ati pe akopo lọ laisi awọn aṣiṣe, tẹsiwaju si igbesẹ ti n tẹle.

Igbesẹ mẹta: kọ APR-util fun Apache lati awọn orisun

O ti ṣe igbasilẹ ile-ikawe yii lati orisun, lọ si folda gbongbo ti ile-ipamọ ti a ko ṣajọpọ pẹlu APR-util, ki o tẹ awọn aṣẹ wọnyi ni atẹlera:

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

Nipa ti ara, o tọka ọna rẹ ni asọtẹlẹ ti o ko ba fẹ lo ipo boṣewa fun fifi sori ile-ikawe, tabi ti o ko ba pato:

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

A tun so APR wa nibi:

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

Igbesẹ mẹrin: ṣe igbasilẹ awọn orisun lati Apache git lati ṣe atilẹyin PCRE2

Pataki: A ṣe igbasilẹ awọn orisun lati ẹda tuntun ti git.

A nilo lati ṣe igbasilẹ awọn orisun meji bii ap_regex.h ati util_pcre.c, awọn ọna asopọ ni isalẹ:
ap_regex.h
util_pcre.c

Bayi lọ si itọsọna orisun httpd Apache rẹ ki o kọ Apache pẹlu awọn aṣẹ wọnyi:

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

Nipa ti ara, o tọka ọna rẹ ni asọtẹlẹ ti o ko ba fẹ lo ipo boṣewa fun fifi sori ile-ikawe, tabi ti o ko ba pato:

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

O tun le pato awọn ofin afikun fun kikọ Apache ni lakaye rẹ, Mo tumọ si awọn aṣẹ fun muu ṣiṣẹ tabi mu awọn modulu ati awọn ile-ikawe duro.

Nigbamii ti a lọ si itọsọna orisun httpd Apache wa, Mo ni eyi:

/etc/webserver/srcsrv/httpd-2.4.41

Iwọ nipa ti ara lọ si itọsọna rẹ, rọpo ninu itọsọna naa:

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

Faili ap_regex.h, eyiti a ṣe igbasilẹ lati Apache git.

A tun lọ si itọsọna naa:

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

A rọpo faili util_pcre.c pẹlu eyiti a ṣe igbasilẹ lati Apache git

Bayi gbogbo ohun ti o ku ni lati ṣafikun asopọ PCRE2 ni Apache funrararẹ, o nilo lati wa faili ap_config_auto.h, o wa ninu itọsọna naa:

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

Ni ibẹrẹ akọkọ ti faili yii, fi awọn laini wọnyi sii:

/* Load PCRE2 */
#define HAVE_PCRE2 1

O dara, ni bayi a ti ṣetan fun akoko gidi ti iṣakojọpọ Apache httpd pẹlu atilẹyin PCRE2.
Jẹ ki a lọ si itọsọna orisun Apache httpd ati ṣajọ eyi nipa ṣiṣe awọn aṣẹ ni atẹlera:

make
make install

Ni bayi, ti ohun gbogbo ba lọ daradara ati laisi awọn aṣiṣe, lẹhinna o yoo ti ṣajọpọ ati ṣajọ Apache httpd pẹlu atilẹyin PCRE2, eyiti o tumọ si awọn ayipada rere ni awọn modulu Apache ti o lo awọn ikosile deede PCRE, ọkan ninu iwọnyi ni Module rewrite.

Ni ipari, ọna yii jẹ ki o ṣee ṣe lati lo PCRE2 ṣaaju itusilẹ osise lati Apache Software Foundation, Mo nireti pe ẹya kan pẹlu atilẹyin PCRE2 yoo tu silẹ laipẹ.

Pẹlupẹlu, lakoko idanwo ti boṣewa .htaccess, ko si awọn aṣiṣe ti o ṣẹlẹ, ti ẹnikẹni ba ni awọn aṣiṣe eyikeyi, kọ ninu awọn asọye.

PS

Mo ni idamu diẹ nipasẹ ipo ti lilo awọn ẹya oriṣiriṣi meji ti PCRE fun akopọ mi, ati pe Mo pinnu lati ṣatunṣe.

orisun: www.habr.com

Fi ọrọìwòye kun