So installieren Sie suPHP für PHP5 auf CentOS 7 (Peng Ge)

So installieren Sie suPHP für PHP5 auf CentOS 7 (Peng Ge)

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.

Zeigen Sie die PHP-Informationen über phpinfo wie folgt an:

Apache führt PHP aus

Wie Sie sehen, wird PHP derzeit als Teil von Apache ausgeführt, anstatt für jedes Skript einen separaten Prozess auszuführen. Wenn Sie möchten, dass PHP-Skripte als aktueller Benutzer statt als Apache ausgeführt werden, können Sie dies durch die Bereitstellung von suPHP erreichen. Als Nächstes stellen wir vor, wie suPHP auf CentOS 7 installiert wird.

Konfigurieren Sie zunächst die für die Installation von suphp erforderliche Umgebung:

yum -y groupinstall 'Entwicklungstools'
yum -y installiere apr-devel
yum -y installiere httpd-devel

Laden Sie das suphp-Installationspaket herunter:

mkdir temp
CD-Temperatur
wget http://suphp.org/download/suphp-0.7.2.tar.gz
tar zxvf suphp-0.7.2.tar.gz

Laden Sie den Suphp-Patch herunter und installieren Sie ihn:

wget -O patchingsuphp.patch https://www.webhostinghero.com/downloads/php/suphp.patch
patch -Np1 -d suphp-0.7.2 < Patchen von suphp.patch
cd suphp-0.7.2
autoreconf -if

Führen Sie ./configure aus:

./configure --prefix=/usr/ --sysconfdir=/etc/ --with-apr=/usr

/bin/apr-1-config --with-apache-user=apache --with-setid-mode=owner

--with-logfile=/var/log/httpd/suphp_log

Kompilieren und installieren:

machen
installieren

Erstellen Sie suphp.conf im Apache-Konfigurationsverzeichnis

vi /etc/httpd/conf.d/suphp.conf

Und schreibe:

Lademodul suphp_module module/mod_suphp.so

Erstellen Sie die Konfigurationsdatei suphp.conf im Verzeichnis /etc:

vi /etc/suphp.conf

Und schreiben Sie den Inhalt der Konfigurationsdatei wie folgt:

[global]
;Pfad zur Logdatei
logfile=/var/log/httpd/suphp.log
;Loglevel
loglevel=info
;Benutzer Apache läuft als
webserver_user=apache
;Pfad, in dem sich alle Skripte befinden müssen
docroot=/
;Pfad zu chroot() vor der Ausführung des Skripts
;chroot=/mychroot
; Sicherheitsoptionen
allow_file_group_writeable=true
allow_file_others_writeable=false
allow_directory_group_writeable=true
allow_directory_others_writeable=false
;Überprüfen Sie, welches Skript sich in DOCUMENT_ROOT befindet
check_vhost_docroot=true
;Sendet kleinere Fehlermeldungen an den Browser
Fehler im Browser = falsch
;PATH-Umgebungsvariable
env_path=/bin:/usr/bin
;Zu setzende Umask, in Oktalnotation angeben
umask=0077
; Mindest-UID
min_uid=100
; Minimale GID
min_gid=100

[Handler]
;Handler für PHP-Skripte
x-httpd-suphp="php:/usr/bin/php-cgi"
;Handler für CGI-Skripte
x-suphp-cgi="ausführen:!selbst"

Wenn Sie möchten, dass das Domänennamenverzeichnis als Benutzer „user“ ausgeführt wird, ändern Sie die Eigentümereigenschaft des Verzeichnisses wie folgt in „user“:

chown -R [Benutzer].[Benutzer] /var/www/html/[Domänenname]

Suchen Sie abschließend den entsprechenden Domänennamen in der Apache-Konfigurationsdatei und aktivieren Sie suphp:

<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>

Starten Sie abschließend die Apache-Datei neu. Durch den info.php-Test können wir feststellen, dass die Server-API, die den Domänennamen ausführt, von Apache zu CGI/FastCGI geändert wurde, wie in der folgenden Abbildung dargestellt:

An diesem Punkt haben wir die Domänennamen-Zugriffseinstellungen von CentOS so abgeschlossen, dass sie über suph statt über den standardmäßigen Apache-Handler ausgeführt werden. Andere Domänennamen müssen eingerichtet werden. Befolgen Sie einfach die obigen Schritte erneut.

Das könnte Sie auch interessieren:
  • Detaillierte Anweisungen zur Installation von SuPHP auf CentOS 7.2

<<:  Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.16 unter macOS

>>:  Eine ausführliche Einführung in React-Referenzen

Artikel empfehlen

CSS Acht auffällige HOVER-Effekt-Beispielcodes

1. Effekt-HTML senden <div id="senden-btn...

Schritte zum Verpacken und Konfigurieren von SVG-Komponenten in Vue-Projekten

Ich bin erst vor Kurzem in eine neue Firma einges...

Einige allgemeine erweiterte SQL-Anweisungen in MySQL

Erweiterte MySQL-SQL-Anweisungen benutze kgc; Tab...

Eine kurze Analyse der Netzwerkprogrammierfunktionen von Linux

Inhaltsverzeichnis 1. Erstellen Sie einen Socket ...

Ausführliche Erklärung der Closure in JavaScript

Einführung Closure ist eine sehr leistungsstarke ...

Detaillierte Erklärung der Linux-Systemverzeichnisse sys, tmp, usr, var!

Der Wachstumspfad vom Linux-Neuling zum Linux-Mei...

HTML implementiert die Funktion zur Erkennung der Eingabevervollständigung

Verwenden Sie „onInput(event)“, um festzustellen,...

So betten Sie Dateien im Flash-Videoformat (FLV, SWF) in HTML-Dateien ein

Flash-Dateiformate: .FLV und .SWF Für das Flash-Vi...

Ein tiefer Einblick in JavaScript-Promises

Inhaltsverzeichnis 1. Was ist Promise? 2. Warum g...

So führen Sie mehrere MySQL-Instanzen unter Windows aus

Vorwort Unter Windows können Sie mehrere MySQL-In...