Meriv çawa ji bo Apache 2 piştgirî PCRE2.4 çêdike

Ez dixwazim ezmûna xwe ya wergerandina Apache 2.4 ji PCRE2 re parve bikim, ji ber ku PHP 7 jî ji bo demek dirêj ve pirtûkxaneya PCRE2 piştgirî kiriye, lê Weqfa Nermalava Apache ya çavkaniya vekirî hîn jî nake.
Bê guman, ez naha belkî li pêş serbestberdana Apache ya bi piştgiriya PCRE2 im, ji ber ku ez çavkaniyên ji git Apache bikar tînim, ku ji me re dibêje ku piştgirîya PCRE2 jixwe di berdana din de gengaz e, lê ji bo yên ku jixwe piştgirîya PCRE2 dixwazin Apache 2.4, û yên ku naxwazin li benda serbestberdanê bisekinin ez yek ji awayan parve dikim.

Gotar texmîn dike ku hûn di dema nivîsandinê de hemî nermalava hewce ji koda çavkaniyê, navnîşek nermalavê û guhertoyan berhev dikin:

PCRE2-10.33
Nîsan 1.7.0
APR-bikaranîna 1.6.1
Apache httpd 2.4.41

Gav yek: PCRE2 ava bikin û berhev bikin

Werin em kêliya dakêşana çavkaniyan ji çavkaniyên fermî derbas bikin ji ber ku ev pir eşkere ye, ji ber vê yekê we arşîv vekiriye, biçin peldanka bi çavkaniyên PCRE2, û emrê jêrîn bimeşînin da ku UTF piştgirî bikin:

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

Ger hûn nexwazin cîhê standard bikar bînin da ku pirtûkxaneyê saz bikin riya xwe di pêşgiriyê de diyar bikin:

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

Wekî din, hûn bêyî pêşgirek berhev dikin.

Fermanên mayî tevlêbûna piştgirî ji bo blokên kodê PCRE 8-bit, 16-bit û 32-bit destnîşan dikin, di vê guhertoyê de civîn bi wan re hate kirin.

Û bê guman, em vê yekê bi karanîna fermanên rêzdar berhev dikin:

make
make install

Ger her tişt baş e û berhevkirin bêyî xeletî derbas bû, biçin qonaxa din.

Gav du: pirtûkxaneya PCRE2 bi APR ve girêdin

Ji ber ku Apache çavkaniyan bi karanîna APR berhev dike, pêdivî ye ku em pirtûkxaneyê di APR-ê de bixwe, wekî din di çavkaniyên Apache de di derheqê fonksiyonên nenas de xeletî hebin, ji ber ku em ê fonksiyonên nû yên PCRE2 bikar bînin.

Ka em kêliya dakêşana çavkaniyan ji çavkaniyên fermî berdin ji ber ku ev pir eşkere ye, ji ber vê yekê we arşîv vekir û veavakirina APR pêk anî:

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

Bi xwezayî, heke hûn nexwazin cîhê standard ji bo sazkirina pirtûkxaneyê bikar bînin, an hûn ne diyar bikin, hûn riya xwe di pêşgiran de destnîşan dikin:

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

Piştî qedandina veavakirinê, biçin pelrêça: /etc/webserver/srcsrv/apr-1.7.0/build

An jî: / te / riya / pirtûkxane / avahî

Di vê pelrêçê de pelê apr_rules.mk bibînin, û li dawiya rêzan lê zêde bikin:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

Girêdana pirtûkxaneyê:

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

Hilînin û biçin pelrêça root ya çavkaniyên APR: / we / rê / berbi pirtûkxaneyê.

Ka em APR-a xweya guhertî berhev bikin:

make
make install

Ger her tişt baş e û berhevkirin bêyî xeletî derbas bû, biçin qonaxa din.

Gav sê: APR-util ji bo Apache ji çavkaniyan ava bikin

We ev pirtûkxane ji çavkaniyê daxistiye, bi APR-util re biçin peldanka bingehîn a arşîva nepakkirî, û fermanên jêrîn bi rêz binivîsin:

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

Bi xwezayî, heke hûn nexwazin cîhê standard ji bo sazkirina pirtûkxaneyê bikar bînin, an hûn ne diyar bikin, hûn riya xwe di pêşgiran de destnîşan dikin:

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

Em APR-a xwe jî li vir girêdidin:

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

Gav çar: çavkaniyên ji Apache git dakêşin da ku PCRE2 piştgirî bikin

Girîng: Em çavkaniyan ji çapa herî dawî ya git dakêşin.

Pêdivî ye ku em du çavkaniyan wekî ap_regex.h û util_pcre.c dakêşin, lînkên jêrîn:
ap_regex.h
util_pcre.c

Naha biçin pelrêça çavkaniya xwe ya Apache httpd û bi fermanên jêrîn Apache ava bikin:

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

Bi xwezayî, heke hûn nexwazin cîhê standard ji bo sazkirina pirtûkxaneyê bikar bînin, an hûn ne diyar bikin, hûn riya xwe di pêşgiran de destnîşan dikin:

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

Her weha hûn dikarin ji bo avakirina Apache li gorî xwe fermanên din diyar bikin, mebesta min emrên çalakkirin an neçalakkirina modul û pirtûkxaneyan e.

Dûv re em diçin pelrêça çavkaniya xweya Apache httpd, min ev heye:

/etc/webserver/srcsrv/httpd-2.4.41

Hûn bi xwezayî diçin pelrêça xwe, pelrêça xwe biguhezînin:

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

Pelê ap_regex.h, ku me ji git Apache dakêşand.

Em jî diçin navnîşan:

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

Em pelê util_pcre.c bi ya ku me ji git Apache dakêşandiye veguherînin

Naha ya ku dimîne ev e ku hûn pêwendiya PCRE2 li Apache bixwe zêde bikin, hûn hewce ne ku pelê ap_config_auto.h bibînin, ew di pelrêçê de ye:

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

Di destpêka vê pelê de, rêzikên jêrîn binivîsin:

/* Load PCRE2 */
#define HAVE_PCRE2 1

Welê, naha em ji bo dema rastîn a berhevkirina Apache httpd bi piştgiriya PCRE2 re amade ne.
Werin em biçin pelrêça çavkaniya xwe ya Apache httpd û vê yekê bi cîbicîkirina fermanan berhev bikin:

make
make install

Naha, heke her tişt baş û bê xeletî derbas bû, wê hingê hûn ê Apache httpd bi piştgiriya PCRE2 re civandin û berhev kirin, ku tê vê wateyê ku di modulên Apache de guheztinên erênî yên ku îfadeyên birêkûpêk PCRE bikar tînin, yek ji van jî Module rewrite e.

Di encamê de, ev rêbaz dihêle ku hûn PCRE2 bikar bînin berî serbestberdana fermî ji Weqfa Nermalava Apache, ez hêvî dikim ku guhertoyek bi piştgiriya PCRE2 dê di demek nêzîk de were berdan.

Di heman demê de, di dema ceribandina standard .htaccess de, xeletiyek çênebû, heke xeletiyek kesek hebe, di şîroveyan de binivîse.

PS

Ez ji rewşa karanîna du guhertoyên cûda yên PCRE-yê ji bo stûyê xwe hinekî tevlihev bûm, û min biryar da ku wê rast bikim.

Source: www.habr.com

Add a comment