Pehea e hana ai i ke kākoʻo PCRE2 no Apache 2.4

Makemake au e kaʻana like i koʻu ʻike no ka unuhi ʻana i ka Apache 2.4 i ka PCRE2, ʻoiai ua kākoʻo ʻo PHP 7 i ka waihona PCRE2 no ka manawa lōʻihi, akā ʻaʻole naʻe ʻo Apache Software Foundation.
ʻOiaʻiʻo, aia paha wau ma mua o ka hoʻokuʻu ʻana o Apache me ke kākoʻo PCRE2, ʻoiai ke hoʻohana nei au i nā kumu mai ka Apache git, e haʻi ana iā mākou ua hiki ke kākoʻo PCRE2 i ka hoʻokuʻu ʻana aʻe, akā no ka poʻe makemake i ke kākoʻo PCRE2 ma Apache 2.4, a ʻo wai makemake ʻole e kali i ka hoʻokuʻu ʻana ke kaʻana aku nei au i kekahi o nā ala.

Manaʻo ka ʻatikala e hōʻiliʻili ana ʻoe i nā polokalamu pono āpau mai ka code kumu, kahi papa inoa o nā polokalamu a me nā mana i ka manawa e kākau ai:

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

KaʻAnuʻu hoʻokahi: kūkulu a hōʻuluʻulu PCRE2

E hoʻokuʻu i ka manawa o ka hoʻoiho ʻana i nā kumu mai nā kumu kumu no ka mea ua maopopo loa kēia, no laila ua wehe ʻoe i ka waihona, hele i ka waihona me nā kumu PCRE2, a holo i kēia kauoha e kākoʻo iā UTF:

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

Ma ka prefix, e kuhikuhi i kou ala inā ʻaʻole ʻoe makemake e hoʻohana i ka wahi maʻamau e hoʻokomo i ka waihona:

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

A i ʻole, hōʻiliʻili ʻoe me ka prefix ʻole.

Hōʻike nā kauoha i koe i ka hoʻokomo ʻana i nā kākoʻo no nā poloka code PCRE 8-bit, 16-bit a me 32-bit, ma kēia ʻano ua hana ʻia ka hui me lākou.

A ʻoiaʻiʻo, hōʻuluʻulu mākou i kēia mea me ka hoʻokō sequential o nā kauoha:

make
make install

Inā maikaʻi nā mea a pau a hele ʻole ka hui ʻana me ka hala ʻole, e neʻe i ka pae aʻe.

KaʻAnuʻu ʻelua: hoʻohui i ka waihona PCRE2 iā APR

Ma muli o ka hōʻuluʻulu ʻana o Apache i nā kumuwaiwai me ka hoʻohana ʻana i ka APR, pono mākou e hoʻokomo i ka waihona i loko o APR ponoʻī, inā ʻaʻole e loaʻa nā hewa e pili ana i nā hana i ʻike ʻole ʻia ma nā kumu Apache, no ka mea, e hoʻohana ana mākou i nā hana PCRE2 hou.

E haʻalele mākou i ka manawa o ka hoʻoiho ʻana i nā kumu mai nā kumu kūhelu no ka mea maopopo loa kēia, no laila wehe ʻoe i ka waihona a hana i ka hoʻonohonoho APR:

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

Ma keʻano maoli, hōʻike ʻoe i kou ala i ka prefix inā ʻaʻole ʻoe makemake e hoʻohana i ka wahi maʻamau no ka hoʻokomo ʻana i ka waihona, a inā ʻaʻole ʻoe e kuhikuhi:

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

Ma hope o ka hoʻopau ʻana i ka hoʻonohonoho, e hele i ka papa kuhikuhi: /etc/webserver/srcsrv/apr-1.7.0/build

A i ʻole: /kou/ala/i ka hale waihona puke/build

E huli i ka faila apr_rules.mk ma kēia papa kuhikuhi, a hoʻohui i nā laina ma ka hope kahi:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

Hoʻohui i ka waihona:

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

E mālama a hele i ka papa kuhikuhi kumu o nā kumu APR: /kou/ala/i ka waihona.

E hōʻuluʻulu mākou i kā mākou APR i hoʻololi ʻia:

make
make install

Inā maikaʻi nā mea a pau a hele ʻole ka hui ʻana me ka hala ʻole, e neʻe i ka pae aʻe.

KaʻAnuʻu ʻekolu: kūkulu i ka APR-util no Apache mai nā kumu

Ua hoʻoiho ʻoe i kēia waihona mai ke kumu, e hele i ka waihona kumu o ka waihona i wehe ʻole ʻia me APR-util, a e hoʻokomo i kēia mau kauoha i ka manawa like:

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

Ma keʻano maoli, hōʻike ʻoe i kou ala i ka prefix inā ʻaʻole ʻoe makemake e hoʻohana i ka wahi maʻamau no ka hoʻokomo ʻana i ka waihona, a inā ʻaʻole ʻoe e kuhikuhi:

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

Hoʻohui pū mākou i kā mākou APR ma aneʻi:

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

ʻEhā: hoʻoiho i nā kumu mai Apache git e kākoʻo iā PCRE2

Mea nui: Hoʻoiho mākou i nā kumu mai ka paʻi hou loa o ka git.

Pono mākou e hoʻoiho i ʻelua kumu e like me ap_regex.h a me util_pcre.c, nā loulou ma lalo:
ap_regex.h
util_pcre.c

E hele i kāu papa kuhikuhi kumu Apache httpd a kūkulu iā Apache me kēia mau kauoha:

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

Ma keʻano maoli, hōʻike ʻoe i kou ala i ka prefix inā ʻaʻole ʻoe makemake e hoʻohana i ka wahi maʻamau no ka hoʻokomo ʻana i ka waihona, a inā ʻaʻole ʻoe e kuhikuhi:

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

Hiki iā ʻoe ke kuhikuhi i nā kauoha ʻē aʻe no ke kūkulu ʻana iā Apache ma kāu manaʻo, ʻo kaʻu ʻōlelo i nā kauoha no ka hiki ʻana a i ʻole ka hoʻopau ʻana i nā modules a me nā hale waihona puke.

A laila hele mākou i kā mākou papa kuhikuhi kumu Apache httpd, loaʻa iaʻu kēia:

/etc/webserver/srcsrv/httpd-2.4.41

Hele maoli ʻoe i kāu papa kuhikuhi, e hoʻololi i ka papa kuhikuhi:

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

ʻO ka faila ap_regex.h, i hoʻoiho ʻia mai ka Apache git.

Hele pū mākou i ka papa kuhikuhi:

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

Hoʻololi mākou i ka faila util_pcre.c me ka mea i hoʻoiho ʻia mai ka Apache git

ʻO nā mea a pau i koe e hoʻohui i ka pilina PCRE2 ma Apache ponoʻī, pono ʻoe e ʻimi i ka faila ap_config_auto.h, aia ma ka papa kuhikuhi:

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

I ka hoʻomaka mua o kēia faila, e hoʻokomo i kēia mau laina:

/* Load PCRE2 */
#define HAVE_PCRE2 1

ʻAe, ua mākaukau mākou no ka manawa maoli o ka hōʻuluʻulu ʻana iā Apache httpd me ke kākoʻo PCRE2.
E hele kāua i kā mākou papa kuhikuhi kumu Apache httpd a hōʻuluʻulu i kēia ma ka hoʻokō ʻana i nā kauoha:

make
make install

I kēia manawa, inā maikaʻi nā mea a pau a me ka hewa ʻole, a laila ua ʻākoakoa ʻoe a hōʻuluʻulu ʻia ʻo Apache httpd me ke kākoʻo PCRE2, ʻo ia hoʻi nā loli maikaʻi i nā modules Apache e hoʻohana ana i nā ʻōlelo maʻamau PCRE, ʻo kekahi o kēia ʻo Module rewrite.

I ka hopena, hiki i kēia ala ke hoʻohana i ka PCRE2 ma mua o ka hoʻokuʻu ʻia ʻana mai ka Apache Software Foundation, ke manaʻolana nei au e hoʻokuʻu koke ʻia kahi mana me ke kākoʻo PCRE2.

Eia kekahi, i ka wā o ka hoʻāʻo ʻana i ka .htaccess maʻamau, ʻaʻohe hewa i loaʻa, inā he hewa kekahi, e kākau i nā manaʻo.

PS

Ua pilikia au i ke kūlana o ka hoʻohana ʻana i ʻelua mau mana like ʻole o PCRE no kaʻu waihona, a ua hoʻoholo wau e hoʻoponopono.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka