Standardmäßig wird PHP unter CentOS 7 als Apache oder Nobody ausgeführt. Diese Methode erfordert umfangreiche Berechtigungen zum Ausführen von PHP, was ein Sicherheitsrisiko darstellen und auch von anderen Benutzern des Servers beeinflusst werden kann. SuPHP ist ein Apache-Modul, das es ermöglicht, PHP unter einem anderen Linux-Benutzer als dem Apache-Benutzer auszuführen. Dies kann die Sicherheit Ihrer gehosteten Websites erhöhen, da Sie die PHP-Skripte jeder Website unter einem anderen Benutzer ausführen können. Dieses Tutorial behandelt SuPHP auf CentOS 7.2, installiert aus dem Quellcode, da für CentOS 7.2 keine SuPHP-Pakete verfügbar sind. Voraussetzungen Sie haben einen CentOS 7.2-Server oder höher installiert. Ich werde dieses Tutorial als Grundlage für mein Setup verwenden. In diesem ersten Kapitel werde ich den Apache-Webserver installieren. Wenn Sie Apache bereits installiert haben, beginnen Sie jetzt mit Kapitel 2. Mein Server verwendet den Hostnamen server1.example.com und die IP-Adresse 192.168.1.100. Ersetzen Sie diese Werte in den folgenden Tutorials durch den Hostnamen und die IP-Adresse Ihres Servers. Aus Sicherheitsgründen empfiehlt es sich, eine Firewall zu installieren. Falls Sie noch keine Firewall installiert haben, können Sie diese mit dem folgenden Befehl nachinstallieren:
Starten Sie die Firewall und aktivieren Sie den Start beim Booten.
Öffnen Sie als Nächstes Ihren SSH-Port, um sicherzustellen, dass Sie über SSH eine Verbindung zu Ihrem Server herstellen können.
1. Installieren Sie Apache 2.4 und PHP 5 Apache und PHP sind in den CentOS-Basis-Repositorys verfügbar, daher können wir beide Pakete mit yum installieren. Installieren Sie Apache- und Aapache-Entwicklungspakete, die die für die spätere SuPHP-Kompilierung erforderlichen Dateien enthalten.
PHP-Installation (ich habe einige gängige PHP-Module hinzugefügt):
Wir müssen Apache so aktivieren, dass es beim Booten gestartet wird und den Dienst startet.
Wir müssen die Ports HTTP (80) und HTTPS (443) öffnen, um den Webserver von anderen Computern aus zugänglich zu machen. Führen Sie den folgenden Befehl aus, um die Firewall zu konfigurieren:
2. Installieren Sie SuPHP In diesem Schritt kompilieren wir SuPHP aus dem Quellcode. Installieren Sie die Entwicklungstools, um die erforderliche Build-Kette einzurichten.
Und wget kann Quelldateien und den Nano-Editor herunterladen.
Laden Sie das SuPHP-Quellcode-Tar.gz-Archiv herunter und extrahieren Sie es.
CentOS 7 verwendet Apache 2.4, also müssen wir suphp patchen und können es dann gegen Apache kompilieren. Der Patch wird wie folgt angewendet:
Der Befehl autoreconf wendet den Patch an und jetzt können wir die neue Quelle wie folgt konfigurieren. HINWEIS: Der Konfigurationsbefehl besteht aus einer Zeile!
Dann kompilieren und installieren Sie SuPHP.
Fügen Sie dann das suPHP-Modul zu Ihrer Apache-Konfiguration hinzu, indem Sie eine neue suphp.conf-Datei hinzufügen.
Mit folgendem Inhalt. Lademodul suphp_module module/mod_suphp.so ...und erstellen Sie die Datei /etc/suphp.conf wie folgt: nano /etc/suphp.conf
Zum Schluss starten wir Apache neu:
3. Konfigurieren Sie Apache Vhost mit SuPHP In diesem Kapitel erkläre ich, wie man in Apache virtuelle Hosts hinzufügt, auf denen PHP unter separaten Benutzern ausgeführt wird. Ich werde die Domäne www.example.com für die Website verwenden, PHP wird als Benutzer und Gruppe „web1“ ausgeführt und das Dokumentstammverzeichnis der Website ist /var/www/example.com Fügen Sie zunächst einen neuen Benutzer und die Gruppe „web1“ hinzu.
Fügen Sie das Stammverzeichnis der Website hinzu.
Fügen Sie nun die Konfigurationsdatei des virtuellen Hosts im Apache-Verzeichnis conf.d hinzu.
Für diesen Inhalt: <VirtuellerHost *> Dokumentstammverzeichnis /var/www/beispiel.com ServerName example.com ServerAdmin [email protected] <FilesMatch ".+\.ph(p[345]?|t|tml)$"> SetHandler Keine </FilesMatch> <IfModule mod_suphp.c> suPHP_Engine ein <FilesMatch "\.php[345]?$"> SetHandler x-httpd-suphp </FilesMatch> suPHP_AddHandler x-httpd-suphp </IfModule> </VirtualHost> Ersetzen Sie den Domänennamen in den Zeilen „ServerName“ und „ServerAdmin“ durch Ihre eigene Domäne. Starten Sie dann Apache neu, um die Konfigurationsänderungen anzuwenden.
4. Testen Sie die SuPHP-Einstellungen In diesem Kapitel zeige ich Ihnen mehrere Möglichkeiten, PHP auf dieser Website zu testen. Zuerst erstelle ich eine Datei, die die Funktion phpinfo() verwendet, um anzuzeigen, ob PHP ordnungsgemäß funktioniert und derzeit im CGI-Modus ausgeführt wird. Erstellen Sie mit Nano eine info.php-Datei:
Und fügen Sie der neuen Datei die folgenden Zeilen hinzu:
Ändern Sie dann den Besitzer der Datei in den Benutzer und die Gruppe „web1“.
Öffnen Sie die URL der Datei http://example.com/info.php in einem Webbrowser. Die folgende Seite wird angezeigt. Wichtig ist die ServerAPI-Zeile, die CGI/FastCGI anzeigt. Dies zeigt an, dass PHP über SuPHP statt über mod_php ausgeführt wird. Nun werde ich testen, ob PHP unter dem richtigen Benutzer (web1) läuft. Woher weiß SuPHP, welcher Benutzer verwendet werden soll? SuPHP stellt PHP auf den Benutzer um, dem die PHP-Skripte gehören. Daher ist es sehr wichtig, dass alle PHP-Dateien in unserem Web-Stammordner /var/www/example.com dem Benutzer und der Gruppe web1 gehören. Wie teste ich also, ob PHP den richtigen Benutzer verwendet? Eine Möglichkeit besteht darin, den Befehl „whoami“ auszuführen, der den Benutzernamen zurückgibt. Ich werde ein neues Skript testuser.php im Stammverzeichnis der Website erstellen:
mit diesem Inhalt:
Ändern Sie dann den Besitzer der Datei in den Benutzer und die Gruppe „web1“.
Öffnen Sie http://example.com/testuser.php in einem Webbrowser. Das Ergebnis sollte sein: web1 SuPHP ist so konfiguriert, dass PHP-Dateien als Benutzer dieser Website ausgeführt werden. Entfernen Sie die Testdateien aus dem Website-Verzeichnis und beginnen Sie mit dem Hinzufügen Ihrer Website-Skripte. 5. Laden Sie diesen CentOS 7.2-Server als virtuelle Maschine herunter Mit dieser Einstellung können virtuelle Maschinen im OVA-/OVF-Format (kompatibel mit VMWare und Virtualbox) heruntergeladen werden, wobei die Identität des Benutzers bekannt ist. Anmeldedaten für die VM Das Root-Passwort lautet: howtoforge Die IP-Adresse der virtuellen Maschine lautet 192.168.1.100 6. Links CentOS Apache-Webserver SuPHP Das könnte Sie auch interessieren:
|
<<: MySQL 8.0.11 Installationshandbuch für Mac
>>: Mehrere Möglichkeiten zur Implementierung eines 0-ms-Verzögerungstimers in js
In diesem Artikelbeispiel wird der spezifische Co...
Wer King of Glory gespielt hat, sollte mit der Wi...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis Hintergrund Wirkung Ideen Hint...
1. Ziehen Sie das Bild Docker-Pull-Registrierung....
Vorwort Wenn Bildlaufereignisse wie Scrollen und ...
Überblick Heute werde ich hauptsächlich erklären,...
Lassen Sie uns zunächst verstehen, was MySQL ist....
Überblick Ich verwende Docker seit über einem Jah...
Inhaltsverzeichnis 1. Installieren Sie Docker auf...
1. Vermeiden Sie es, die Seite als XML-Typ zu dek...
Öffentliche kostenlose STUN-Server Wenn das SIP-T...
Inhaltsverzeichnis Logische Schichtung Trennen Si...
Entpacken Sie das Maven-Paket tar xf apache-maven...
Inhaltsverzeichnis Vorwort 1. Lazy Loading-Routin...