Heim  >  Artikel  >  Backend-Entwicklung  >  Organisieren und fassen Sie die Berechtigungsaufteilung von Nginx, PHP-FPM, MySQL usw. zusammen.

Organisieren und fassen Sie die Berechtigungsaufteilung von Nginx, PHP-FPM, MySQL usw. zusammen.

青灯夜游
青灯夜游nach vorne
2022-06-14 12:17:553814Durchsuche

In diesem Artikel geht es um die Grundkenntnisse von PHP und um ein detailliertes Verständnis der Benutzerberechtigungen von Nginx, PHP-FPM und MySQL. Ich hoffe, dass er für alle hilfreich ist!

Organisieren und fassen Sie die Berechtigungsaufteilung von Nginx, PHP-FPM, MySQL usw. zusammen.

Normalerweise umfassen die Server, auf denen wir Webanwendungen ausführen, Linux-Distributionen wie CentOS, Ubuntu, Debian usw. Zu diesem Zeitpunkt ist die Berechtigungskontrolle von Nginx, PHP, MySQL und anderen Anwendungen, die zur Bildung der Dienstarchitektur erforderlich sind, sehr wichtig. Jeder Dienst hat unterschiedliche Berechtigungsanforderungen für das Codeverzeichnis nicht in der Lage sein, zu lesen, zu schreiben oder auszuführen. Eine Senkung der Berechtigungsanforderungen birgt das Risiko, gehackt und geändert zu werden. Hier fassen wir die Berechtigungsaufteilung von Diensten wie Nginx, PHP-FPM und MySQL zusammen.

1. Webserver-Nginx-Berechtigungen

Das Betriebssystem von PHP wird normalerweise mit Nginx kombiniert, um LNMP zu bilden, oder mit Apache, um eine LAMP-Architektur zu bilden. Hier wird Nginx als Beispiel verwendet, um die Berechtigungen zu beschreiben, die zum Ausführen des Nginx-Dienstes erforderlich sind.
Wir wissen, dass Nginx selbst die PHP-Syntax nicht analysieren kann, daher analysiert Nginx statische Dateien (wie HTML usw.) direkt und gibt Ergebnisse zurück. Bei PHP-Dateien überträgt Nginx diese jedoch zur Verarbeitung an den PHP-Interpreter php-fpm . Geben Sie nach Abschluss die Antwort an den Client-Browser zurück .

Daher müssen wir die für Nginx- und PHP-Dienste erforderlichen Berechtigungen im code-Verzeichnis vereinheitlichen.

① Wenn der Root-Benutzer einheitlich verwendet wird, können allgemeine Gastkonten nicht auf die Anwendung zugreifen. Wenn Nginx für die Ausführung als Root konfiguriert ist, besteht ein großes Sicherheitsrisiko Führen Sie alle Vorgänge am System aus.

② Wenn alle Codeverzeichnisberechtigungen auf rwxrwxrwx gesetzt sind, besteht die versteckte Gefahr, dass Benutzer das Codeverzeichnis direkt über den Browser ändern können.

Der beste Weg ist also, sie einer neuen Benutzergruppe zuzuordnen und der Benutzergruppe die erforderlichen Berechtigungen zum Ausführen von Nginx und PHP zuzuweisen, um eine Berechtigungsverzeichnisverwaltung für Webanwendungen zu erreichen. Normalerweise nennen viele Teams diese Benutzergruppe www, und der www-Benutzer verwaltet einheitlich die Codeverzeichnisberechtigungen.

Wir können sehen, dass die in der Nginx-Konfigurationsdatei nginix.conf unterteilten Ausführungsberechtigungen unter dem www-Benutzer konfiguriert sind, sodass der untergeordnete Nginx-Prozess auch vom www-Benutzer ausgeführt wird, der über ausgeführt werden kann ps aux |. grep nginx zum Anzeigen:

nginix.conf里面划分的运行权限就是配置到了www用户下,因此Nginx的子进程也是由www用户执行,可以通过ps aux | grep nginx来查看:

Organisieren und fassen Sie die Berechtigungsaufteilung von Nginx, PHP-FPM, MySQL usw. zusammen.

可以看到nginx的主进程是root,其余子进程均是www的用户

nginx.conf的配置:

Organisieren und fassen Sie die Berechtigungsaufteilung von Nginx, PHP-FPM, MySQL usw. zusammen.

二、php的权限配置

同样的,php的运行方式也是由主进程root运行,在子进程池(pool)里面配置由www用户执行,具体配置在php根目录下的<span style="color: rgb(192, 0, 0);">etcphp-fpm.conf</span>下,添加两行:

user = www
group = www

即可,同样用ps aux | grep php可以查看进程使用的用户身份:

Organisieren und fassen Sie die Berechtigungsaufteilung von Nginx, PHP-FPM, MySQL usw. zusammen.

三、MySQL服务的权限配置

通过ps aux | grep mysqlOrganisieren und fassen Sie die Berechtigungsaufteilung von Nginx, PHP-FPM, MySQL usw. zusammen.Sie können sehen, dass der Hauptprozess von Nginx Root ist und die anderen Unterprozesse alle Benutzer von www

nginx.conf-Konfiguration sind:

Organisieren und fassen Sie die Berechtigungsaufteilung von Nginx, PHP-FPM, MySQL usw. zusammen.Organisieren und fassen Sie die Berechtigungsaufteilung von Nginx, PHP-FPM, MySQL usw. zusammen.

Zweitens PHP-Berechtigungskonfiguration

In ähnlicher Weise wird PHP auch vom Hauptprozessstamm ausgeführt und im untergeordneten Prozesspool (Pool) für die Ausführung durch den www-Benutzer konfiguriert. Die spezifische Konfiguration befindet sich unter

etcphp-fpm. conf

im PHP-Stammverzeichnis hinzufügen:

user www www;

Das ist es. Sie können auch ps grep php verwenden, um die vom Prozess verwendete Benutzeridentität anzuzeigen:


Organisieren und fassen Sie die Berechtigungsaufteilung von Nginx, PHP-FPM, MySQL usw. zusammen.

3. Berechtigungskonfiguration des MySQL-Dienstes über ps grep mysql code> Sie können sehen, dass der MySQL-Dienst unter dem Benutzer mysql

ausgeführt wird Wenn der PHP-Code eine Verbindung zu MySQL herstellt, muss er nicht mit www vereinheitlicht werden, da die Datenschicht mit MySQL verbunden sein muss. Die Geschäftslogikschicht ist isoliert, um die Sicherheit der zugrunde liegenden Daten zu gewährleisten. Die Autorisierung von MySQL dient hauptsächlich dem Hinzufügen neuer Benutzer und der Aufteilung von Berechtigungen im MySQL-Dienst, der zur Steuerung verschiedener PHP-Unternehmen verwendet wird, um eine Verbindung mit Identitäten mit unterschiedlichen Berechtigungsbereichen herzustellen, um die Datensicherheit zu gewährleisten. 🎜🎜🎜🎜🎜🎜IV Zusammenfassung 🎜🎜🎜nginx-Konfiguration: 🎜
user = www
group = www
🎜php-fpm: 🎜🎜
drwxr-xr-x 就是755
🎜Verzeichnis: 🎜🎜rrreee🎜Empfohlenes Lernen: „🎜PHP-Video-Tutorial 🎜"🎜

Das obige ist der detaillierte Inhalt vonOrganisieren und fassen Sie die Berechtigungsaufteilung von Nginx, PHP-FPM, MySQL usw. zusammen.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen