Kumaha carana ngadamel dukungan PCRE2 pikeun Apache 2.4

Abdi hoyong bagikeun pangalaman narjamahkeun Apache 2.4 ka PCRE2, saprak PHP 7 parantos ngadukung perpustakaan PCRE2 kanggo waktos anu lami, tapi open source Apache Software Foundation tetep henteu.
Tangtosna, kuring ayeuna sigana payuneun sékrési Apache kalayan dukungan PCRE2, sabab kuring nganggo sumber tina Apache git, anu nyarioskeun ka urang yén dukungan PCRE2 parantos tiasa dilaksanakeun dina sékrési salajengna, tapi pikeun anu parantos hoyong dukungan PCRE2 di Apache 2.4, sareng saha anu henteu hoyong ngantosan pelepasan kuring bagikeun salah sahiji cara.

Tulisan éta nganggap yén anjeun ngumpulkeun sadaya parangkat lunak anu diperyogikeun tina kode sumber, daptar parangkat lunak sareng versi nalika nyerat:

PCRE2-10.33
April 1.7.0
Apr-util 1.6.1
Apache httpd 2.4.41

Léngkah hiji: ngawangun sareng kompilasi PCRE2

Hayu urang skip momen pikeun ngundeur sumber ti sumber resmi saprak ieu teuing atra, jadi anjeun geus unpacked arsip, buka folder kalawan sumber PCRE2, sarta ngajalankeun paréntah di handap pikeun ngarojong UTF:

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

Sebutkeun jalur anjeun dina awalan upami anjeun henteu hoyong nganggo lokasi standar pikeun masang perpustakaan:

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

Upami teu kitu, anjeun ngumpulkeun tanpa awalan a.

Paréntah sésana nunjukkeun citakan pangrojong pikeun 8-bit, 16-bit jeung 32-bit blok kode PCRE, dina versi ieu assembly dipigawé sareng maranehna.

Sarta tangtu, urang compile hal ieu ngagunakeun palaksanaan sequential paréntah:

make
make install

Lamun sagalana geus rupa jeung kompilasi indit tanpa kasalahan, ngaléngkah ka lengkah saterusna.

Lengkah dua: sambungkeun perpustakaan PCRE2 ka Apr

Kusabab Apache compiles sumber maké Apr, urang kudu kaasup perpustakaan di Apr sorangan, disebutkeun meureun aya kasalahan ngeunaan fungsi kanyahoan dina sumber Apache, sabab urang bakal ngagunakeun fungsi PCRE2 anyar.

Hayu urang ngaleungitkeun waktos ngaunduh sumber tina sumber resmi kusabab ieu atra teuing, janten anjeun ngabongkar arsip sareng ngalaksanakeun konfigurasi APR:

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

Alami, anjeun nunjukkeun jalur anjeun dina awalan upami anjeun henteu hoyong nganggo lokasi standar pikeun masang perpustakaan, atanapi upami anjeun henteu netepkeun:

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

Saatos réngsé konfigurasi, angkat ka diréktori: /etc/webserver/srcsrv/apr-1.7.0/build

Atawa: / anjeun / jalur / ka perpustakaan / ngawangun

Milarian file apr_rules.mk dina diréktori ieu, sareng tambahkeun garis dina tungtung dimana:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

Nyambungkeun perpustakaan:

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

Simpen tur buka diréktori akar tina sumber Apr: / anjeun / jalur / ka perpustakaan.

Hayu urang kompilasi APR kami anu dirobih:

make
make install

Lamun sagalana geus rupa jeung kompilasi indit tanpa kasalahan, ngaléngkah ka lengkah saterusna.

Lengkah katilu: ngawangun APR-util pikeun Apache tina sumber

Anjeun parantos ngaunduh perpustakaan ieu tina sumberna, angkat kana polder akar arsip anu teu dibungkus nganggo APR-util, sareng lebetkeun paréntah di handap ieu sacara berurutan:

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

Alami, anjeun nunjukkeun jalur anjeun dina awalan upami anjeun henteu hoyong nganggo lokasi standar pikeun masang perpustakaan, atanapi upami anjeun henteu netepkeun:

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

Kami ogé nyambungkeun APR kami di dieu:

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

Lengkah opat: unduh sumber tina Apache git pikeun ngadukung PCRE2

Penting: Urang unduh sumber tina édisi panganyarna tina git.

Urang kedah ngaunduh dua sumber sapertos ap_regex.h sareng util_pcre.c, tautan di handap ieu:
ap_regex.h
util_pcre.c

Ayeuna buka diréktori sumber httpd Apache anjeun sareng ngawangun Apache kalayan paréntah di handap ieu:

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

Alami, anjeun nunjukkeun jalur anjeun dina awalan upami anjeun henteu hoyong nganggo lokasi standar pikeun masang perpustakaan, atanapi upami anjeun henteu netepkeun:

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

Anjeun oge bisa nangtukeun paréntah tambahan pikeun ngawangun Apache kana kawijaksanaan anjeun, maksudna mah paréntah pikeun ngaktipkeun atawa nganonaktipkeun modul jeung perpustakaan.

Salajengna urang buka diréktori sumber httpd Apache kami, abdi gaduh ieu:

/etc/webserver/srcsrv/httpd-2.4.41

Anjeun sacara alami angkat ka diréktori anjeun, ganti dina diréktori:

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

Berkas ap_regex.h, anu kami unduh tina Apache git.

Urang ogé buka diréktori:

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

Kami ngagentos file util_pcre.c sareng anu kami unduh tina Apache git

Ayeuna sadayana anu tetep nyaéta pikeun nambihan sambungan PCRE2 dina Apache sorangan, anjeun kedah milarian file ap_config_auto.h, ayana dina diréktori:

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

Dina awal file ieu, selapkeun garis handap:

/* Load PCRE2 */
#define HAVE_PCRE2 1

Nya, ayeuna urang siap pikeun momen nyata pikeun nyusun Apache httpd kalayan dukungan PCRE2.
Hayu urang angkat ka diréktori sumber httpd Apache kami sareng kompilasi ieu ku cara ngaéksekusi paréntahna sacara berurutan:

make
make install

Ayeuna, upami sadayana lancar sareng tanpa kasalahan, maka anjeun bakal ngumpul sareng nyusun Apache httpd kalayan dukungan PCRE2, anu hartosna parobihan positip dina modul Apache anu nganggo ekspresi biasa PCRE, salah sahijina nyaéta nulis ulang Modul.

Dina kacindekan, métode ieu ngamungkinkeun ngagunakeun PCRE2 saméméh release resmi ti Apache Software Foundation, abdi miharep éta versi kalawan rojongan PCRE2 bakal dileupaskeun pas.

Ogé, nalika nguji standar .htaccess, teu aya kasalahan, upami aya anu ngagaduhan kasalahan, nyerat dina koméntar.

PS

Kuring éta saeutik bingung ku kaayaan ngagunakeun dua versi béda tina PCRE pikeun tumpukan kuring, sarta kuring mutuskeun pikeun ngalereskeun eta.

sumber: www.habr.com

Tambahkeun komentar