Il est courant d'utiliser Nginx pour créer un serveur Web sur Mac, mais vous rencontrez parfois le problème que Nginx ne peut pas analyser les fichiers PHP. Dans ce cas, lors de l'accès au fichier PHP, il sera téléchargé directement au lieu d'être analysé et exécuté, ce qui gêne le développement Web.
Cet article explique comment résoudre le problème selon lequel Nginx ne peut pas analyser les fichiers PHP lors de l'utilisation de Nginx pour créer un serveur Web sur Mac. Il comprend principalement les aspects suivants :
Nginx ne prend pas en charge l'analyse PHP par défaut et PHP-FPM doit être utilisé pour implémenter l'analyse PHP. Une fois PHP-FPM démarré, il établit une connexion Socket avec Nginx et transmet la demande au processus PHP-FPM pour traitement, puis renvoie les résultats du traitement à Nginx, et Nginx renvoie enfin les résultats au client.
Par conséquent, les raisons pour lesquelles Nginx ne peut pas analyser les fichiers PHP peuvent être les suivantes :
Pour les raisons ci-dessus, les méthodes suivantes sont adoptées pour les résoudre.
2.1 Installer PHP-FPM
Vous devez d'abord installer PHP-FPM, vous pouvez utiliser Homebrew pour l'installer :
brew install php-fpm
Une fois l'installation terminée, vous pouvez utiliser la commande suivante pour vérifier si l'installation a réussi :
php-fpm -v
Si les informations sur la version de PHP s'affichent, cela signifie que l'installation a réussi.
2.2 Démarrez PHP-FPM
Après avoir installé PHP-FPM, vous devez démarrer le processus PHP-FPM :
sudo php-fpm
Après le démarrage, vous pouvez utiliser la commande suivante pour vérifier si PHP-FPM a démarré avec succès :
ps aux | grep php-fpm
Si des informations similaires à celles-ci s'affichent, puis indique que PHP-FPM a démarré avec succès :
_www 49202 0.0 0.7 5871400 11664 ?? S 11:42上午 0:00.03 php-fpm: pool www
2.3 Configurer Nginx
Ajouter la configuration d'analyse PHP dans le fichier de configuration Nginx Vous pouvez ajouter le contenu suivant dans le segment du serveur :
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
Parsing. instructions :
location ~ .php $
: Indique la correspondance avec toutes les requêtes se terminant par .phplocation ~ .php$
:表示匹配所有以.php结尾的请求fastcgi_pass 127.0.0.1:9000;
:表示将请求转发到PHP-FPM进程处理,此处端口号应与PHP-FPM进程启动时使用的端口号保持一致fastcgi_index index.php;
:表示当请求目录下没有指定文件时,默认使用index.php作为入口文件fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
:表示将请求文件完整路径传递给PHP-FPM进程,其中$document_root表示Nginx配置的Web根目录,$fastcgi_script_name表示请求的完整路径(不包含域名和参数)include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
: Indique le transfert de la requête vers le PHP -Processus FPM pour le traitement. Le numéro de port ici doit être le même que celui de PHP. -Le numéro de port utilisé lors du démarrage du processus FPM reste cohérentfastcgi_index index.php;
: Indique que lorsqu'il n'y a pas de spécification. fichier dans le répertoire de requête, index.php est utilisé comme fichier d'entrée par défaut
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
: Indique que le chemin complet du fichier demandé est transmis au PHP-FPM processus, où $document_root représente le répertoire racine Web configuré par Nginx, et $fastcgi_script_name représente le chemin complet de la requête (hors nom de domaine et paramètres)
include fastcgi_params;
: indique l'introduction du FastCGI fichier de configuration des paramètres, qui contient certaines configurations de paramètres liées à FastCGI. 🎜🎜🎜Une fois la configuration terminée, vous pouvez utiliser la commande suivante pour recharger la configuration de Nginx : 🎜sudo nginx -s reload
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!