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

So aktualisieren Sie CentOS7 auf CentOS8 (detaillierte Schritte)

Dieser Artikel erläutert anhand eines konkreten B...

So fügen Sie einer großen Datentabelle in MySQL Felder hinzu

Vorwort Ich glaube, jeder ist mit dem Hinzufügen ...

Vue Shuttle-Box ermöglicht Auf- und Abbewegung

In diesem Artikelbeispiel wird der spezifische Co...

CentOS7-Bereitstellung Flask (Apache, mod_wsgi, Python36, venv)

1. Installieren Sie Apache # yum install -y httpd...

Detaillierte Erläuterung der MySQL-Existes- und Not-Existes-Beispiele

Detaillierte Erläuterung der MySQL-Existes- und N...

JavaScript implementiert die asynchrone Erfassung von Formulardaten

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierter Installationsprozess des NodeJS-Verwaltungstools NVM

keine Ahnung nvm ist für die Verwaltung mehrerer ...

Detaillierter Prozessbericht der Vue2-Initiierungsanfragen mit Axios

Inhaltsverzeichnis Vorwort Axios-Installation und...

Vertikales und horizontales Aufteilen von MySQL-Tabellen

Vertikale Teilung Vertikale Aufteilung bezieht si...

Üben Sie die Verwendung von Golang, um mit der Docker-API zu spielen

Inhaltsverzeichnis Installieren des SDK Lokalen D...

MySQL-Serie 15: Allgemeine MySQL-Konfiguration und Leistungsstresstest

1. Allgemeine MySQL-Konfiguration Alle folgenden ...