Би Apache 2.4-ийг PCRE2 руу хөрвүүлсэн туршлагаасаа хуваалцахыг хүсч байна, учир нь PHP 7 хүртэл PCRE2 номын санг удаан хугацаанд дэмжсэн боловч нээлттэй эхийн Apache Software Foundation дэмждэггүй.
Мэдээжийн хэрэг, би Apache git-ийн эх сурвалжуудыг ашиглаж байгаа тул PCRE2-ийн дэмжлэгтэй Apache хувилбарын өмнө байгаа байх, энэ нь PCRE2-ийн дэмжлэгийг дараагийн хувилбарт аль хэдийн авах боломжтой гэдгийг хэлж өгдөг, гэхдээ PCRE2-ийн дэмжлэгийг аль хэдийн хүсэж байгаа хүмүүсийн хувьд Apache 2.4, мөн гарахыг хүлээхийг хүсэхгүй байгаа хүмүүст би нэг арга замыг хуваалцаж байна.
Нийтлэлд та бичих явцад шаардлагатай бүх програм хангамжийг эх код, програм хангамжийн жагсаалт, хувилбаруудаас цуглуулж байна гэж үзэж байна.
PCRE2-10.33
APR 1.7.0 хувилбар
APR-util 1.6.1
Apache httpd 2.4.41
Нэгдүгээр алхам: PCRE2-г бүтээх, эмхэтгэх
Албан ёсны эх сурвалжаас эх сурвалжийг татаж авах мөчийг алгасацгаая, учир нь энэ нь дэндүү ойлгомжтой тул та архивыг задалж, PCRE2 эх сурвалжтай хавтас руу очоод UTF-г дэмжихийн тулд дараах тушаалыг ажиллуулна уу.
./configure --prefix=/etc/webserver/pcre2-1033 --enable-pcre2-8 --enable-pcre2-16 --enable-pcre2-32 --enable-unicodeХэрэв та номын санг суулгахдаа стандарт байршлыг ашиглахыг хүсэхгүй байгаа бол угтварт замаа зааж өгнө үү:
--prefix=/ваш/путь/до библиотекиҮгүй бол та угтваргүйгээр цуглуулдаг.
Үлдсэн командууд нь 8 бит, 16 бит ба 32 бит PCRE кодын блокуудын дэмжлэгийг багтаасан болохыг харуулж байгаа бөгөөд энэ хувилбарт угсралтыг тэдэнтэй хамт гүйцэтгэсэн.
Мэдээжийн хэрэг, бид командын дараалсан гүйцэтгэлийг ашиглан энэ зүйлийг эмхэтгэдэг.
make
make install Хэрэв бүх зүйл хэвийн, эмхэтгэл алдаагүй бол дараагийн алхам руу шилжинэ үү.
Хоёрдугаар алхам: PCRE2 номын санг APR руу холбоно уу
Apache эх сурвалжийг APR ашиглан эмхэтгэдэг тул бид номын санг өөрөө APR-д оруулах шаардлагатай, эс тэгвээс Apache эх сурвалжид үл мэдэгдэх функцүүдийн талаар алдаа гарч болзошгүй, учир нь бид шинэ PCRE2 функцуудыг ашиглах болно.
Албан ёсны эх сурвалжаас эх сурвалжийг татаж авах мөчийг орхиё, учир нь энэ нь хэтэрхий ойлгомжтой тул та архивыг задалж, APR тохиргоог хийсэн.
./configure --prefix=/etc/webserver/apr-170Мэдээжийн хэрэг, хэрэв та номын санг суулгахдаа стандарт байршлыг ашиглахыг хүсэхгүй байгаа эсвэл заагаагүй бол угтварт замаа зааж өгнө.
--prefix=/ваш/путь/до библиотекиТохиргоог хийж дууссаны дараа лавлах руу очно уу: /etc/webserver/srcsrv/apr-1.7.0/build
Эсвэл: /таны/зам/номын сан/барилга
Энэ лавлахаас apr_rules.mk файлыг олоод төгсгөлд нь дараах мөрүүдийг нэмнэ үү:
EXTRA_LIBS=-lrt -lcrypt -lpthread -ldlНомын санг холбох:
-lpcre2-8 -L/ваш/путь/до библиотеки pcre2/libХадгалаад APR эх сурвалжийн үндсэн лавлах руу очно уу: /таны/зам/ номын сан руу.
Өөрчлөгдсөн APR-аа эмхэтгэцгээе:
make
make installХэрэв бүх зүйл хэвийн, эмхэтгэл алдаагүй бол дараагийн алхам руу шилжинэ үү.
Гуравдугаар алхам: Эх сурвалжаас Apache-д зориулсан APR-util-г бүтээх
Та энэ номын санг эх сурвалжаас татаж аваад APR-util-ээр задлаагүй архивын үндсэн хавтас руу орж, дараах тушаалуудыг дарааллаар оруулна уу:
./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/ваш/путь/до библиотеки apr
make
make installМэдээжийн хэрэг, хэрэв та номын санг суулгахдаа стандарт байршлыг ашиглахыг хүсэхгүй байгаа эсвэл заагаагүй бол угтварт замаа зааж өгнө.
--prefix=/ваш/путь/до библиотекиБид мөн APR-аа энд холбодог:
--with-apr=/ваш/путь/до библиотеки aprДөрөвдүгээр алхам: PCRE2-г дэмжихийн тулд Apache git-ээс эх сурвалжийг татаж аваарай
Анхаарах зүйл: Бид git-ийн хамгийн сүүлийн хувилбараас эх сурвалжуудыг татаж авдаг.
Бид ap_regex.h болон util_pcre.c зэрэг хоёр эх сурвалжийг доорх холбоосоор татаж авах шаардлагатай.
Одоо өөрийн Apache httpd эх лавлах руу очоод дараах тушаалуудыг ашиглан Apache-г бүтээнэ үү.
./configure --prefix=/etc/webserver/apache-2441 --with-apr=/ваш/путь/до библиотеки apr --with-apr-util=/ваш/путь/до библиотеки apr-util --with-pcre=/ваш/путь/до библиотеки pcre2/bin/pcre2-configМэдээжийн хэрэг, хэрэв та номын санг суулгахдаа стандарт байршлыг ашиглахыг хүсэхгүй байгаа эсвэл заагаагүй бол угтварт замаа зааж өгнө.
--prefix=/ваш/путь/до Apache httpdТа мөн Apache-г бүтээх нэмэлт командуудыг өөрийн үзэмжээр зааж өгч болно, би модуль болон номын санг идэвхжүүлэх, идэвхгүй болгох командуудыг хэлж байна.
Дараа нь бид Apache httpd эх лавлах руу очиход надад дараах зүйл байна:
/etc/webserver/srcsrv/httpd-2.4.41Мэдээжийн хэрэг та лавлах руугаа очиж, лавлахдаа орлуулаарай:
/etc/webserver/srcsrv/httpd-2.4.41/includeБидний Apache git-ээс татаж авсан ap_regex.h файл.
Бид мөн лавлах руу очно:
/etc/webserver/srcsrv/httpd-2.4.41/serverБид util_pcre.c файлыг Apache git-ээс татаж авсан файлаар солино
Одоо зөвхөн Apache-д PCRE2 холболтыг нэмэх л үлдлээ, та ap_config_auto.h файлыг олох хэрэгтэй, энэ нь лавлахад байрладаг:
/etc/webserver/srcsrv/httpd-2.4.41/includeЭнэ файлын хамгийн эхэнд дараах мөрүүдийг оруулна уу.
/* Load PCRE2 */
#define HAVE_PCRE2 1 Одоо бид PCRE2 дэмжлэгтэйгээр Apache httpd хөрвүүлэх бодит мөчид бэлэн боллоо.
Манай Apache httpd эх лавлах руу орж командуудыг дараалан гүйцэтгэцгээе.
make
make installХэрэв бүх зүйл сайн, алдаагүй байвал та PCRE2 дэмжлэгтэйгээр Apache httpd-г угсарч хөрвүүлсэн байх бөгөөд энэ нь PCRE тогтмол илэрхийлэл ашигладаг Apache модулиудад эерэг өөрчлөлт гарсан гэсэн үг бөгөөд тэдгээрийн нэг нь Модулийг дахин бичих явдал юм.
Дүгнэж хэлэхэд, энэ арга нь Apache Software Foundation-аас гарахаас өмнө PCRE2-г ашиглах боломжийг олгодог тул PCRE2 дэмжлэгтэй хувилбар удахгүй гарна гэж найдаж байна.
Мөн стандарт .htaccess-ийг турших явцад ямар ч алдаа гараагүй, хэрэв хэн нэгэнд алдаа гарсан бол коммент хэсэгт бичээрэй.
PS
Би PCRE-ийн хоёр өөр хувилбарыг стекдээ ашиглах нөхцөл байдалд бага зэрэг эргэлзэж, би үүнийг засахаар шийдсэн.
Эх сурвалж: www.habr.com
