Apache 2 үшін PCRE2.4 қолдауын қалай жасауға болады

Мен Apache 2.4-ті PCRE2-ге аудару тәжірибеммен бөліскім келеді, өйткені тіпті PHP 7 ұзақ уақыт бойы PCRE2 кітапханасын қолдады, бірақ ашық бастапқы Apache Software Foundation әлі де қолдамайды.
Әрине, мен қазір PCRE2 қолдауы бар Apache шығарылымынан алда болуым мүмкін, өйткені мен Apache git көздерін пайдаланып жатырмын, бұл келесі шығарылымда PCRE2 қолдауы мүмкін екенін айтады, бірақ PCRE2 қолдауын қазірдің өзінде қалайтындар үшін Apache 2.4 және шығуды күткісі келмейтіндер мен жолдардың бірімен бөлісемін.

Мақалада сіз барлық қажетті бағдарламалық жасақтаманы бастапқы кодтан, бағдарламалық құрал тізімінен және жазу кезінде нұсқалардан жинап жатырсыз деп болжайды:

PCRE2-10.33
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 көздерінің түбірлік каталогына өтіңіз: /your/path/to the library.

Өзгертілген 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 сияқты екі дереккөзді жүктеп алу керек, төмендегі сілтемелер:
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

пікір қалдыру