Maison >développement back-end >Problème PHP >Que dois-je faire si Mac Nginx n'analyse pas PHP ?
La solution pour mac nginx qui n'analyse pas php : 1. cp un nouveau fichier avec le nom correct ; 2. Exécutez la commande "php-fpm --fpm-config..." ; ;4. Tuez le processus de solution.
L'environnement d'exploitation de cet article : système macOS10.15, version PHP7.1, ordinateur MacBook Air 2019
Que dois-je faire si mac nginx n'analyse pas php ?
Les pièges rencontrés par mac lors du déploiement de php sous nginx
Quelqu'un m'a demandé de l'aider à déployer un site Web, puis j'ai d'abord voulu le déboguer dans nginx local. Au début, lorsque j'ai ouvert la page, elle affichait 403. J'avais déjà vu cela. C'était un problème d'autorisation avec nginx. Après avoir modifié les autorisations, j'ai constaté que lorsque j'accédais à la page PHP, je la téléchargeais directement sans l'analyser. Je me suis souvenu que mon ordinateur n'avait peut-être pas d'environnement PHP, j'ai donc téléchargé PHP. Puis toujours le même problème. Bref, comme je ne connais pas très bien PHP (j'utilisais auparavant des logiciels comme xampp), j'ai mis du temps à le faire.
La première chose à comprendre est que nginx lui-même ne peut pas gérer PHP, il s'agit simplement d'un serveur Web. Lorsque le front-end demande PHP, nginx doit envoyer l'interface à l'interpréteur PHP pour traitement, puis renvoyer le résultat au serveur. l'extrémité avant. Généralement, nginx envoie la demande au processus de gestion fastcgi pour traitement. Tel que configuré dans nginx :
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#这里原来不是$document_root,搞得我很蒙,还好网上查到改好了,不然会报file not found include fastcgi_params; }
Donc, pour démarrer un fastcgi, php-fpm est utilisé ici. C'est un gestionnaire php fastcgi, utilisé uniquement pour le langage php (l'ancienne version de php doit télécharger php-fpm séparément, j'utilise php). -fpm l'intègre déjà).
Il y a beaucoup de questions bizarres ici.
La première exécution de php-fpm
échec : le fichier /private/etc/php-fpm.conf est introuvable,
Solution : mais il y a php-fpm.conf.default dans ce fichier de répertoire, donc cp un nouveau fichier avec le nom correct
Exécutez php-fpm pour la deuxième fois
Échec : impossible de trouver /usr/var/log/php-fpm.log
Solution : il n'existe pas de répertoire de ce type du tout, je l'ai modifié dans le fichier de conf mais cela n'a eu aucun effet. Je n'ai pas eu d'autre choix que d'exécuter php-fpm via la commande suivante (j'utiliserai cette commande pour l'exécuter plus tard)
php-fpm --fpm-config /private/etc/php-fpm.conf --prefix /usr/local/var
Exécutez php-fpm. pour la troisième fois
Failed: No pool defined. at least one pool section must be specified in config file
Solution : Allez dans le répertoire /etc/php-fpm.d/ et trouvez le fichier www.conf.default, cp un fichier nommé www.conf
Exécutez php-fpm pour la quatrième fois
Échec : le port est occupé
Solution : tuer ce processus
sudo lsof -i tcp:9000#Trouver le numéro de processus occupant le port 9000
kill -9 port#Kill !
Cinquième fois que j'exécute php-fpm
Succès !
##Ajout :
Il y a une petite différence lors de la configuration de nginx Sur mac, php-fpm écoute directement le port 9000, mais sur le serveur, il écoute le php7.0-fpm.sock mais pas le. fichier socket. Cette méthode peut être plus rapide, vous devez donc modifier
fastcgi_pass 127.0.0.1:9000;
dans la configuration php sur nginx par :
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
pour exécuter avec succès php
Apprentissage recommandé : "Tutoriel vidéo PHP"
Continuer à ajouter
Une chose très intéressante, lorsque je veux télécharger une vidéo de 27 millions, nginx a directement signalé 413 Request Entity Too Large, mais je ne l'ai pas défini...
Ajouter
server { ... client_max_body_size 80m; ... }
Relisez la configuration dans la configuration de nginx ( set-enabled/default), Redémarrez le serveur
nginx -s reload service nginx restart
Ensuite, vous devez modifier php.ini, y modifier deux configurations
upload_max_filesize = 80M post_max_size = 80M
Puis arrêtez le processus php-fpm, puis redémarrez~
ps : Professeur, il a vraiment ne fait aucune recherche... La raison pour laquelle le mp4 ne peut pas être téléchargé est parce que ce type n'est pas ajouté au système, je dois le trouver moi-même... Mal à l'aise :(
note : il est maintenant plus recommandé de l'utiliser. apt au lieu d'apt-get sous Ubuntu... alors il est temps de changer
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!