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 zu lesen, zu schreiben oder auszuführen, was die Berechtigungsanforderungen senkt und das Risiko von Eingriffen und Änderungen birgt.
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 die Ergebnisse für statische Dateien (wie HTML usw.) direkt und gibt sie zurück. Bei PHP-Dateien überträgt Nginx diese jedoch zur Verarbeitung an den PHP-Interpreter php-fpm. Geben Sie die Antwort nach der Verarbeitung an den Client-Browser zurück.
Daher müssen wir die für Nginx- und PHP-Dienste erforderlichen Berechtigungen in unserem Codeverzeichnis 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. Nach dem Angriff wird die Root-Identität abgerufen alle Vorgänge auf dem System.
Wenn die Berechtigungen des Codeverzeichnisses einheitlich auf rwxrwxrwx festgelegt sind, besteht die versteckte Gefahr, dass Benutzer das Codeverzeichnis direkt über den Browser ändern können.
Der beste Weg besteht also darin, sie einer neuen Benutzergruppe zuzuordnen und der Benutzergruppe die erforderlichen Berechtigungen zum Ausführen von Nginx und PHP zuzuweisen, um eine Berechtigungsverzeichnisverwaltung von Webanwendungen zu erreichen. In vielen Fällen verwenden Teams die www-Benutzergruppe, um Codeverzeichnisberechtigungen zu verwalten und Benutzer www einheitlich zu verwalten.
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
来查看:
可以看到nginx的主进程是root,其余子进程均是www的用户
nginx.conf的配置:
同样的,php的运行方式也是由主进程root运行,在子进程池(pool)里面配置由www用户执行,具体配置在php根目录下的etcphp-fpm.conf
下,添加两行:
user = www group = www
即可,同样用ps aux | grep php
可以查看进程使用的用户身份:
通过ps aux | grep mysql
Sie können sehen, dass der Hauptprozess von Nginx Root ist und die anderen Unterprozesse alle Benutzer von www
2. PHP-Berechtigungskonfiguration
Ebenso wird PHP 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. Fügen Sie einfach zwei Zeilen hinzu:
user www www;
ps grep php
verwenden, um die vom Prozess verwendete Benutzeridentität anzuzeigen 🎜 Sie können sehen, dass der MySQL-Dienst unter dem MySQL-Benutzer ausgeführt wird. Für diesen Dienst müssen wir nur den MySQL-Benutzernamen angeben und Passwort, wenn der PHP-Code eine Verbindung zu MySQL herstellt, muss er nicht mit www vereinheitlicht werden, da die Datenschicht von der Geschäftslogikschicht isoliert werden muss, 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
drwxr-xr-x 就是755
Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie Benutzerberechtigungen für Nginx, PHP-FPM und MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!