So aktivieren Sie PCRE2-UnterstĂŒtzung fĂŒr Apache 2.4

Ich möchte meine Erfahrungen mit der Übersetzung von Apache 2.4 auf PCRE2 teilen, da selbst PHP 7 schon lange die PCRE2-Bibliothek unterstĂŒtzt, die Open-Source-Software-Stiftung Apache jedoch noch nicht.
NatĂŒrlich bin ich wahrscheinlich mit meiner Implementierung von PCRE2 in Apache der Veröffentlichung zuvor, da ich die Quellcodes von der Apache-Git-Nutzungsquelle verwende, was darauf hinweist, dass PCRE2 möglicherweise schon in der nĂ€chsten Version unterstĂŒtzt wird. FĂŒr diejenigen, die jetzt schon PCRE2 in Apache 2.4 haben möchten und nicht auf die Veröffentlichung warten wollen, teile ich eine der Methoden.

Der Artikel geht davon aus, dass Sie die gesamte notwendige Software aus den Quellcodes zusammenstellen, die Liste der Software und ihrer Versionen zum Zeitpunkt des Schreibens des Artikels:

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

Schritt eins: PCRE2 kompilieren

Lassen Sie den Teil des Herunterladens der Quellcodes von den offiziellen Quellen außen vor, da dies zu offensichtlich ist. Nachdem Sie das Archiv entpackt haben, wechseln Sie in das Verzeichnis mit den PCRE2-Quellcodes und fĂŒhren Sie den folgenden Befehl zur UnterstĂŒtzung von UTF aus:

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

Im PrĂ€fix geben Sie Ihren Pfad an, wenn Sie nicht den Standardinstallationsort fĂŒr die Bibliothek verwenden möchten:

--prefix=/Ihr/Pfad/zur/Bibliothek

Andernfalls kompilieren Sie ohne PrÀfix.

Die anderen Befehle beziehen sich auf die UnterstĂŒtzung von 8-Bit-, 16-Bit- und 32-Bit-Codeblöcken von PCRE. In diesem Fall wurde die Kompilierung mit ihnen durchgefĂŒhrt.

Und natĂŒrlich kompilieren wir das Ganze durch die aufeinanderfolgende AusfĂŒhrung der Befehle:

make
make install

Wenn alles in Ordnung ist und die Kompilierung ohne Fehler durchgelaufen ist, fahren wir mit dem nÀchsten Schritt fort.

Schritt zwei: Binden Sie die PCRE2-Bibliothek in APR ein

Da Apache die Quellcodes mithilfe von APR kompiliert, mĂŒssen wir die Bibliothek in APR selbst einbinden, da sonst Fehler bezĂŒglich unbekannter Funktionen in den Apache-Quellcodes auftreten können, da wir die neuen Funktionen von PCRE2 verwenden werden.

Lassen Sie den Teil des Herunterladens der Quellcodes von den offiziellen Quellen außen vor, da dies zu offensichtlich ist. Nachdem Sie das Archiv entpackt haben, haben Sie die APR-Konfiguration ausgefĂŒhrt:

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

NatĂŒrlich geben Sie im PrĂ€fix Ihren Pfad an, wenn Sie nicht den Standardinstallationsort fĂŒr die Bibliothek verwenden möchten, oder lassen es einfach weg:

--prefix=/Ihr/Pfad/zur/Bibliothek

Nach der Konfiguration wechseln Sie in das Verzeichnis: /etc/webserver/srcsrv/apr-1.7.0/build

Oder: /Ihr/Pfad/zur/Bibliothek/build

Suchen Sie die Datei apr_rules.mk in diesem Verzeichnis und fĂŒgen Sie am Ende der Zeile, wo steht:

EXTRA_LIBS=-lrt -lcrypt -lpthread -ldl

Binden Sie die Bibliothek ein:

-lpcre2-8 -L/Ihr/Pfad/zur/Bibliothek pcre2/lib

Wir speichern und gehen in das Stammverzeichnis der APR-Quellen: /ihr/pfad/zur/bibliothek.

Wir kompilieren unser modifiziertes APR:

make
make install

Wenn alles in Ordnung ist und die Kompilierung ohne Fehler durchgelaufen ist, fahren wir mit dem nÀchsten Schritt fort.

Schritt drei: Wir erstellen aus den APR-util-Quellen fĂŒr Apache

Sie haben diese Bibliothek von der offiziellen Quelle heruntergeladen, gehen Sie nun in das Stammverzeichnis des entpackten APR-util-Archivs und geben Sie der Reihe nach die folgenden Befehle ein:

./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/ihr/pfad/zur/bibliothek/apr
make
make install

NatĂŒrlich geben Sie im PrĂ€fix Ihren Pfad an, wenn Sie nicht den Standardinstallationsort fĂŒr die Bibliothek verwenden möchten, oder lassen es einfach weg:

--prefix=/Ihr/Pfad/zur/Bibliothek

Hier binden wir auch unser APR ein:

--with-apr=/ihr/pfad/zur/bibliothek/apr

Schritt vier: Herunterladen der Quellen von Apache-Git zur UnterstĂŒtzung von PCRE2

Wichtig: Die Quellen werden aus der neuesten Version von Git heruntergeladen.

Wir mĂŒssen zwei Quellen herunterladen, nĂ€mlich ap_regex.h und util_pcre.c, die Links finden Sie unten:
ap_regex.h
util_pcre.c

Jetzt gehen wir in unser Verzeichnis der Apache httpd-Quellen und bauen Apache mit den folgenden Befehlen zusammen:

./configure --prefix=/etc/webserver/apache-2441 --with-apr=/ihr/pfad/zur/bibliothek/apr --with-apr-util=/ihr/pfad/zur/bibliothek/apr-util --with-pcre=/ihr/pfad/zur/bibliothek/pcre2/bin/pcre2-config

NatĂŒrlich geben Sie im PrĂ€fix Ihren Pfad an, wenn Sie nicht den Standardinstallationsort fĂŒr die Bibliothek verwenden möchten, oder lassen es einfach weg:

--prefix=/ihr/pfad/zur/Apache httpd

ZusÀtzlich können Sie weitere Befehle zum Bauen von Apache nach eigenem Ermessen angeben, ich meine Befehle zum Aktivieren oder Deaktivieren von Modulen und Bibliotheken.

Danach gehen wir in unser Verzeichnis der Apache httpd-Quellen, bei mir ist das:

/etc/webserver/srcsrv/httpd-2.4.41

NatĂŒrlich gehen Sie in Ihr Verzeichnis und ersetzen im Verzeichnis:

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

Die Datei ap_regex.h durch die, die wir von Apache-Git heruntergeladen haben.

Wir gehen auch in das Verzeichnis:

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

Ersetzen Sie die Datei util_pcre.c durch die, die wir von Apache-Git heruntergeladen haben.

Jetzt mĂŒssen wir nur noch die PCRE2-Anbindung in Apache selbst hinzufĂŒgen. Suchen Sie die Datei ap_config_auto.h, sie befindet sich im Verzeichnis:

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

FĂŒgen Sie am Anfang dieser Datei die folgenden Zeilen ein:

/* Load PCRE2 */
#define HAVE_PCRE2 1

Jetzt sind wir bereit fĂŒr den entscheidenden Moment der Kompilierung von Apache httpd mit UnterstĂŒtzung fĂŒr PCRE2.
Gehen Sie in Ihr Verzeichnis der Apache httpd-Quellen und kompilieren Sie das Ganze durch die sequentielle AusfĂŒhrung der Befehle:

make
make install

Wenn alles gut gelaufen ist und keine Fehler aufgetreten sind, wird Ihr Apache httpd mit UnterstĂŒtzung fĂŒr PCRE2 kompiliert, was positive Änderungen in den Apache-Modulen bedeutet, die PCRE regulĂ€re AusdrĂŒcke verwenden, eines davon ist das Modul rewrite.

Zusammenfassend lĂ€sst sich sagen, dass diese Methode die Verwendung von PCRE2 vor dem offiziellen Release von der Apache Software Foundation ermöglicht. Ich hoffe, dass bald eine Version mit UnterstĂŒtzung fĂŒr PCRE2 veröffentlicht wird.

WĂ€hrend des Testens der Standard-.htaccess traten keine Fehler auf. Wenn jemand Fehler hat, schreibt gerne in die Kommentare.

P.S.

Die Situation mit der Verwendung von zwei verschiedenen PCRE-Versionen fĂŒr meinen Stack hat mich etwas gestresst, und ich habe beschlossen, das zu beheben.

Quelle: habr.com

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster