Cet article parlera des connaissances de base de PHP et aura une compréhension approfondie des autorisations utilisateur de nginx, php-fpm et mysql. J'espère qu'il sera utile à tout le monde !
Normalement, les serveurs sur lesquels nous exécutons des applications Web incluent des distributions Linux telles que CentOS, Ubuntu, Debian, etc. À l'heure actuelle, le contrôle des autorisations de Nginx, PHP, MySQL et d'autres applications nécessaires à la formation de l'architecture du service est très important. Chaque service a des exigences d'autorisation différentes pour le répertoire de code. L'absence de certaines autorisations entraînera le service. être incapable de lire, d'écrire ou d'exécuter. Faux, réduire les exigences d'autorisation entraînera un danger caché d'être piraté et modifié. Nous résumerons ici la division des autorisations de services tels que nginx, php-fpm et mysql.
Le cadre d'exploitation de PHP est généralement combiné avec Nginx pour former LNMP ou combiné avec Apache pour former l'architecture LAMP. Ici, Nginx est utilisé comme exemple pour décrire les autorisations requises pour exécuter le service Nginx.
Nous savons que Nginx lui-même ne peut pas analyser la syntaxe PHP, donc Nginx analysera et renverra directement les résultats pour les fichiers statiques (tels que HTML, etc.), mais pour les fichiers PHP, Nginx les transférera vers l'interpréteur PHP php-fpm pour traitement . Une fois terminé, renvoyez la réponse au navigateur client.
Par conséquent, nous devons unifier les autorisations requises pour les services Nginx et PHP dans le répertoire de code.
① Si l'utilisateur root est utilisé de manière uniforme, les comptes invités généraux ne pourront pas accéder à l'application. Si nginx est configuré pour s'exécuter en tant que root, il y aura de grands risques de sécurité. Une fois attaqué, l'identité root sera obtenue. effectuer toutes les opérations sur le système. ② Si toutes les autorisations du répertoire de code sont définies sur rwxrwxrwx, il existe un danger caché que les utilisateurs puissent modifier le répertoire de code directement via le navigateur. Le meilleur moyen est donc deles classer dans un nouveau groupe d'utilisateurs et d'attribuer les autorisations nécessaires pour exécuter Nginx et PHP au groupe d'utilisateurs afin de gérer le répertoire d'autorisations pour les applications Web. Habituellement, de nombreuses équipes nommeront ce groupe d'utilisateurs www, et l'utilisateur www gérera uniformément les autorisations du répertoire de codes. Nous pouvons voir que les autorisations d'exécution divisées dans le fichier de configuration Nginx nginix.conf
sont configurées sous l'utilisateur www, de sorte que le processus enfant Nginx est également exécuté par l'utilisateur www, qui peut être exécuté via ps aux | grep nginx
pour afficher :
nginix.conf
里面划分的运行权限就是配置到了www用户下,因此Nginx的子进程也是由www用户执行,可以通过ps aux | grep nginx
来查看:
可以看到nginx的主进程是root,其余子进程均是www的用户
nginx.conf的配置:
同样的,php的运行方式也是由主进程root运行,在子进程池(pool)里面配置由www用户执行,具体配置在php根目录下的<span style="color: rgb(192, 0, 0);">etcphp-fpm.conf</span>
下,添加两行:
user = www group = www
即可,同样用ps aux | grep php
可以查看进程使用的用户身份:
通过ps aux | grep mysql
Vous pouvez voir que le processus principal de nginx est root, et les autres sous-processus sont tous des utilisateurs de la configuration wwwnginx.conf :
<p>etcphp-fpm. conf</p>
dans le répertoire racine de php. Ajoutez deux lignes :user www www;
ps aux | grep php
pour afficher l'identité de l'utilisateur utilisée par le processus :
3. Configuration des autorisations du service MySQL
viaps aux | grep mysql code> Vous pouvez voir que le service MySQL s'exécute sous l'utilisateur 🎜mysql🎜. Ce service 🎜 nous oblige uniquement à apporter le nom d'utilisateur et le mot de passe mysql. lorsque le code php se connecte à mysql. Il n'a pas besoin d'être unifié à www, car la couche de données doit être connectée à mysql. La couche de logique métier est isolée pour assurer la sécurité des données sous-jacentes🎜. L'autorisation de MySQL consiste principalement à ajouter de nouveaux utilisateurs et à diviser les autorisations dans le service MySQL, qui est utilisé pour contrôler différentes entreprises PHP afin de se connecter avec des identités avec différentes plages d'autorisations pour assurer la sécurité des données. 🎜🎜🎜🎜🎜🎜4. Résumé🎜🎜🎜Configuration nginx : 🎜user = www
group = www
Copier après la connexion🎜php-fpm : 🎜🎜drwxr-xr-x 就是755
Copier après la connexion🎜Répertoire : 🎜🎜rrreee🎜Apprentissage recommandé : "🎜Tutoriel vidéo PHP🎜" 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!