Apache 2 üçün PCRE2.4 dəstəyini necə etmək olar

Apache 2.4-ün PCRE2-yə tərcüməsi ilə bağlı təcrübəmi bölüşmək istərdim, çünki hətta PHP 7 uzun müddətdir PCRE2 kitabxanasını dəstəkləyir, lakin açıq mənbəli Apache Software Foundation hələ də dəstəkləmir.
Əlbəttə ki, mən indi PCRE2 dəstəyi ilə Apache buraxılışını qabaqlayıram, çünki Apache git-dən olan mənbələrdən istifadə edirəm, bu bizə PCRE2 dəstəyinin növbəti buraxılışda artıq mümkün olduğunu söyləyir, lakin artıq PCRE2 dəstəyini istəyənlər üçün Apache 2.4 və buraxılışını gözləmək istəməyən yollardan birini paylaşıram.

Məqalə, yazarkən bütün lazımi proqram təminatını mənbə kodundan, proqram təminatının siyahısından və versiyalardan toplamağınızı nəzərdə tutur:

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

Birinci addım: PCRE2 qurun və tərtib edin

Rəsmi mənbələrdən mənbələri yükləmək anını atlayaq, çünki bu, çox açıqdır, ona görə də arxivi açdınız, PCRE2 mənbələri olan qovluğa keçin və UTF-ni dəstəkləmək üçün aşağıdakı əmri yerinə yetirin:

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

Kitabxananı quraşdırmaq üçün standart yerdən istifadə etmək istəmirsinizsə, yolunuzu prefiksdə göstərin:

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

Əks halda, prefiks olmadan yığırsınız.

Qalan əmrlər 8-bit, 16-bit və 32-bit PCRE kod blokları üçün dəstəklərin daxil edilməsini göstərir, bu versiyada montaj onlarla birlikdə aparılmışdır.

Və əlbəttə ki, biz əmrlərin ardıcıl icrasından istifadə edərək bu şeyi tərtib edirik:

make
make install

Hər şey qaydasındadırsa və tərtib səhvsiz keçibsə, növbəti mərhələyə keçin.

İkinci addım: PCRE2 kitabxanasını APR-ə qoşun

Apache mənbələri APR-dən istifadə edərək tərtib etdiyinə görə biz kitabxananı APR-nin özünə daxil etməliyik, əks halda Apache mənbələrində naməlum funksiyalar haqqında səhvlər ola bilər, çünki biz yeni PCRE2 funksiyalarından istifadə edəcəyik.

Rəsmi mənbələrdən mənbələri yükləmək anını buraxaq, çünki bu çox açıqdır, ona görə də siz arxivi açdınız və APR konfiqurasiyasını yerinə yetirdiniz:

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

Təbii ki, kitabxananın quraşdırılması üçün standart yerdən istifadə etmək istəmirsinizsə və ya qeyd etməsəniz, yolunuzu prefiksdə qeyd edirsiniz:

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

Konfiqurasiyanı tamamladıqdan sonra qovluğa keçin: /etc/webserver/srcsrv/apr-1.7.0/build

Və ya: /sizin/yolunuz/kitabxanaya/yaradın

Bu kataloqda apr_rules.mk faylını tapın və sonuna sətirləri əlavə edin:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

Kitabxanaya qoşulma:

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

Yadda saxlayın və APR mənbələrinin kök kataloquna keçin: /your/path/to the library.

Dəyişdirilmiş APR-mizi tərtib edək:

make
make install

Hər şey qaydasındadırsa və tərtib səhvsiz keçibsə, növbəti mərhələyə keçin.

Üçüncü addım: mənbələrdən Apache üçün APR-util qurun

Siz bu kitabxananı mənbədən endirdiniz, APR-util ilə açılmamış arxivin kök qovluğuna keçin və ardıcıl olaraq aşağıdakı əmrləri daxil edin:

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

Təbii ki, kitabxananın quraşdırılması üçün standart yerdən istifadə etmək istəmirsinizsə və ya qeyd etməsəniz, yolunuzu prefiksdə qeyd edirsiniz:

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

APR-ni də burada birləşdiririk:

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

Dördüncü addım: PCRE2-ni dəstəkləmək üçün Apache git-dən mənbələri endirin

Əhəmiyyətli: Biz git-in son buraxılışından mənbələri yükləyirik.

Biz ap_regex.h və util_pcre.c kimi iki mənbəni endirməliyik, aşağıdakı linklər:
ap_regex.h
util_pcre.c

İndi Apache httpd mənbə kataloqunuza gedin və aşağıdakı əmrlərlə Apache qurun:

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

Təbii ki, kitabxananın quraşdırılması üçün standart yerdən istifadə etmək istəmirsinizsə və ya qeyd etməsəniz, yolunuzu prefiksdə qeyd edirsiniz:

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

Siz həmçinin öz istəyinizlə Apache qurmaq üçün əlavə əmrlər təyin edə bilərsiniz, mən modulları və kitabxanaları işə salmaq və ya söndürmək üçün əmrləri nəzərdə tuturam.

Sonra Apache httpd mənbə kataloqumuza gedirik, məndə bu var:

/etc/webserver/srcsrv/httpd-2.4.41

Siz təbii olaraq kataloqunuza gedirsiniz, qovluqda dəyişdirin:

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

Apache git-dən endirdiyimiz ap_regex.h faylı.

Biz də qovluğa gedirik:

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

Biz util_pcre.c faylını Apache git-dən endirdiyimiz faylla əvəz edirik

İndi yalnız PCRE2 bağlantısını Apache-nin özünə əlavə etmək qalır, ap_config_auto.h faylını tapmaq lazımdır, o, kataloqda yerləşir:

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

Bu faylın ən əvvəlinə aşağıdakı sətirləri daxil edin:

/* Load PCRE2 */
#define HAVE_PCRE2 1

İndi biz Apache httpd-ni PCRE2 dəstəyi ilə tərtib etməyin əsl anına hazırıq.
Gəlin Apache httpd mənbə kataloqumuza keçək və ardıcıl olaraq əmrləri yerinə yetirərək bunu tərtib edək:

make
make install

İndi, əgər hər şey qaydasında və səhvsiz gedirsə, onda siz PCRE2 dəstəyi ilə Apache httpd-ni yığmış və tərtib etmiş olacaqsınız ki, bu da PCRE müntəzəm ifadələrindən istifadə edən Apache modullarında müsbət dəyişikliklər deməkdir, bunlardan biri Modulun yenidən yazılmasıdır.

Yekun olaraq, bu üsul Apache Software Foundation-dan rəsmi buraxılışdan əvvəl PCRE2-dən istifadə etməyə imkan verir, ümid edirəm ki, PCRE2 dəstəyi ilə versiya tezliklə buraxılacaq.

Həmçinin standart .htaccess testi zamanı heç bir xəta baş verməyib, əgər kiminsə xətası varsa, şərhlərdə yazın.

PS

Stackim üçün PCRE-nin iki fərqli versiyasını istifadə etmək vəziyyəti məni bir az çaşdırdı və mən onu düzəltməyə qərar verdim.

Mənbə: www.habr.com

Добавить комментарий