Gusto nakong ipaambit ang akong kasinatian sa paghubad sa Apache 2.4 ngadto sa PCRE2, tungod kay bisan ang PHP 7 nagsuporta sa PCRE2 library sa dugay nga panahon, apan ang open source Apache Software Foundation wala gihapon.
Siyempre, ako karon tingali nag-una sa Apache release uban sa PCRE2 nga suporta, tungod kay ako naggamit sa mga tinubdan gikan sa Apache git, nga nagsulti kanato nga ang PCRE2 nga suporta posible na sa sunod nga pagpagawas, apan alang niadtong gusto na sa PCRE2 nga suporta sa Apache 2.4, ug kinsa ang dili gusto nga maghulat nga buhian akong gipaambit ang usa sa mga paagi.
Ang artikulo nagtuo nga imong gikolekta ang tanan nga gikinahanglan nga software gikan sa source code, usa ka lista sa software ug mga bersyon sa panahon sa pagsulat:
PCRE2-10.33
ABR 1.7.0
APR-util 1.6.1
Apache httpd 2.4.41
Unang lakang: paghimo ug pag-compile sa PCRE2
Atong laktawan ang higayon sa pag-download sa mga tinubdan gikan sa opisyal nga mga tinubdan tungod kay kini klaro kaayo, mao nga imong gi-unpack ang archive, adto sa folder nga adunay PCRE2 nga mga tinubdan, ug ipadagan ang mosunod nga sugo sa pagsuporta sa UTF:
./configure --prefix=/etc/webserver/pcre2-1033 --enable-pcre2-8 --enable-pcre2-16 --enable-pcre2-32 --enable-unicode
Ipiho ang imong agianan sa prefix kung dili nimo gusto nga gamiton ang standard nga lokasyon aron i-install ang library:
--prefix=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
Kung dili, mangolekta ka nga walaβy prefix.
Ang nahabilin nga mga sugo nagpakita sa paglakip sa mga suporta alang sa 8-bit, 16-bit ug 32-bit nga mga bloke sa PCRE code, sa niini nga bersyon ang asembliya gihimo uban kanila.
Ug siyempre, gitipon namon kini nga butang gamit ang sunud-sunod nga pagpatuman sa mga mando:
make
make install
Kung maayo ang tanan ug walaβy mga sayup ang pag-compile, padayon sa sunod nga lakang.
Ikaduhang lakang: ikonektar ang PCRE2 library sa APR
Tungod kay ang Apache nag-compile sa mga tinubdan gamit ang APR, kinahanglan natong ilakip ang librarya sa APR mismo, kung dili mahimo nga adunay mga sayup mahitungod sa wala mailhi nga mga function sa Apache nga mga tinubdan, tungod kay kita mogamit sa bag-ong PCRE2 functions.
Atong laktawan ang higayon sa pag-download sa mga tinubdan gikan sa opisyal nga mga tinubdan tungod kay kini klaro kaayo, mao nga imong gi-unpack ang archive ug gihimo ang APR configuration:
./configure --prefix=/etc/webserver/apr-170
Natural, gipakita nimo ang imong agianan sa prefix kung dili nimo gusto nga gamiton ang sukaranan nga lokasyon alang sa pag-install sa librarya, o kung dili nimo ipiho:
--prefix=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
Human makompleto ang configuration, adto sa direktoryo: /etc/webserver/srcsrv/apr-1.7.0/build
O: /imong/dalan/sa library/build
Pangitaa ang apr_rules.mk file niini nga direktoryo, ug idugang ang mga linya sa katapusan diin:
EXTRA_LIBS=-lrt -lcrypt -lpthread -ldl
Pagkonektar sa librarya:
-lpcre2-8 -L/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pcre2/lib
I-save ug adto sa root directory sa APR sources: /your/path/sa library.
Atong tigumon ang atong giusab nga APR:
make
make install
Kung maayo ang tanan ug walaβy mga sayup ang pag-compile, padayon sa sunod nga lakang.
Ikatulong lakang: paghimo og APR-util para sa Apache gikan sa mga tinubdan
Imong gi-download kini nga librarya gikan sa tinubdan, adto sa root folder sa unpacked archive uban sa APR-util, ug isulod ang mosunod nga mga sugo nga sunud-sunod:
./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ apr
make
make install
Natural, gipakita nimo ang imong agianan sa prefix kung dili nimo gusto nga gamiton ang sukaranan nga lokasyon alang sa pag-install sa librarya, o kung dili nimo ipiho:
--prefix=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
Gikonektar usab namo ang among APR dinhi:
--with-apr=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ apr
Ikaupat nga lakang: pag-download sa mga tinubdan gikan sa Apache git aron suportahan ang PCRE2
Importante: Gi-download namo ang mga tinubdan gikan sa pinakabag-o nga edisyon sa git.
Kinahanglan namong i-download ang duha ka tinubdan sama sa ap_regex.h ug util_pcre.c, mga link sa ubos:
Karon adto sa imong Apache httpd source directory ug pagtukod og Apache uban sa mosunod nga mga sugo:
./configure --prefix=/etc/webserver/apache-2441 --with-apr=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ apr --with-apr-util=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ apr-util --with-pcre=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pcre2/bin/pcre2-config
Natural, gipakita nimo ang imong agianan sa prefix kung dili nimo gusto nga gamiton ang sukaranan nga lokasyon alang sa pag-install sa librarya, o kung dili nimo ipiho:
--prefix=/Π²Π°Ρ/ΠΏΡΡΡ/Π΄ΠΎ Apache httpd
Mahimo usab nimo ipiho ang dugang nga mga mando alang sa pagtukod sa Apache sa imong pagkabuotan, gipasabut nako ang mga mando alang sa pagpagana o pag-disable sa mga module ug librarya.
Sunod moadto kami sa among direktoryo sa gigikanan sa Apache httpd, naa nako kini:
/etc/webserver/srcsrv/httpd-2.4.41
Natural nga moadto ka sa imong direktoryo, ilisan sa direktoryo:
/etc/webserver/srcsrv/httpd-2.4.41/include
Ang file ap_regex.h, nga among gi-download gikan sa Apache git.
Moadto usab kami sa direktoryo:
/etc/webserver/srcsrv/httpd-2.4.41/server
Among ilisan ang file nga util_pcre.c sa usa nga among gi-download gikan sa Apache git
Karon ang nahabilin mao ang pagdugang sa koneksyon sa PCRE2 sa Apache mismo, kinahanglan nimo pangitaon ang file ap_config_auto.h, kini nahimutang sa direktoryo:
/etc/webserver/srcsrv/httpd-2.4.41/include
Sa sinugdanan pa niini nga file, isulod ang mosunod nga mga linya:
/* Load PCRE2 */
#define HAVE_PCRE2 1
Aw, karon andam na kami alang sa tinuud nga higayon sa pag-compile sa Apache httpd nga adunay suporta sa PCRE2.
Adto ta sa among Apache httpd source directory ug i-compile kini pinaagi sa sunodsunod nga pagpatuman sa mga sugo:
make
make install
Karon, kung maayo ang tanan ug walaβy mga kasaypanan, nan imong gitigum ug giipon ang Apache httpd nga adunay suporta sa PCRE2, nga nagpasabut nga positibo nga mga pagbag-o sa mga module sa Apache nga naggamit mga regular nga ekspresyon sa PCRE, usa niini mao ang pagsulat pag-usab sa Module.
Sa konklusyon, kini nga pamaagi nagpaposible sa paggamit sa PCRE2 sa wala pa ang opisyal nga pagpagawas gikan sa Apache Software Foundation, nanghinaut ko nga ang usa ka bersyon nga adunay suporta sa PCRE2 ipagawas sa dili madugay.
Usab, sa panahon sa pagsulay sa standard .htaccess, walay mga sayop nga nahitabo, kon adunay bisan unsa nga mga sayop, isulat sa mga komento.
PS
Medyo naglibog ko sa sitwasyon sa paggamit sa duha ka lainlaing bersyon sa PCRE para sa akong stack, ug nakahukom ko nga ayohon kini.
Source: www.habr.com