Maison  >  Article  >  développement back-end  >  Que dois-je faire si Mac Nginx ne prend pas en charge PHP ?

Que dois-je faire si Mac Nginx ne prend pas en charge PHP ?

藏色散人
藏色散人original
2021-09-18 09:08:342141parcourir

mac nginx ne prend pas en charge PHP car PHP n'est pas configuré. La solution est la suivante : 1. Utilisez homebrew pour installer nginx ; 2. Définissez les droits d'administrateur pour nginx ; 3. Exécutez la commande "brew tap josegonzalez/homebrew-php" pour installer. PHP.

Que dois-je faire si Mac Nginx ne prend pas en charge PHP ?

L'environnement d'exploitation de cet article : système macOS10.15, version PHP5.6, ordinateur MacBook Air 2019

Que dois-je faire si mac nginx ne prend pas en charge php ?

Mac a installé Nginx et configuré PHP

J'utilisais Apache et PHP pour travailler ensemble avant

Parce que PHP est autodidacte, beaucoup de gens ne le comprennent pas (TP n'a pas vu grand chose, et c'est inutile)

Récemment, j'ai pensé Utiliser nginx et php pour écrire quelque chose ensemble

Parce que je l'ai installé sur mon ordinateur et que j'ai rencontré quelques problèmes au cours du processus, je vais l'enregistrer maintenant pendant que j'ai encore quelques impressions si je développe en utilisant nginx et php. l'avenir, je peux m'y référer

1. Lorsque vous êtes sous Linux, utilisez yum pour installer le logiciel Si vous êtes sur Mac, vous verrez un homebrew

2 Ensuite, nous utilisons homebrew pour installer nginx

Le. l'installation se termine avec une seule commande :

brew install nginx

Ensuite, nous configurons les autorisations

1》Donner Définir les autorisations d'administrateur pour nginx : Si vous ne définissez pas d'autorisations d'administrateur, le port 80 ne peut pas être surveillé

#这里的目录根据你实际安装的目录来填写,默认是这个目录,不同的只是nginx的版本号而已
sudo chown root:wheel /usr/local/Cellar/nginx/1.10.1/bin/nginx    
sudo chmod u+s /usr/local/Cellar/nginx/1.10.1/bin/nginx

2》Ajouter un contrôle de démarrage launchctl

mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/nginx/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

3》Exécutez nginx

sudo nginx #打开 nginx
nginx -s reload|reopen|stop|quit  #重新加载配置|重启|停止|退出 nginx
nginx -t   #测试配置是否有语法错误

3. Installez PHP

Parce que Brew n'a pas de package php par défaut, nous exécutons donc d'abord la commande suivante

brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php

Il existe de nombreuses versions de php, nous pouvons utiliser Brew Search php pour afficher

Mon ordinateur est php5.6, mais j'ai utilisé Brew pour l'installer, ce qui n'affectera pas le Mac Oui, car il sera installé sous /usr/local/Cellar

brew install php56

Une fois l'installation terminée, pour que le. système pour utiliser la version que je viens d'installer, elle doit être configurée

sudo vim ~/.bash_profile

#在这个文件最后添加下列语句:
export PATH="$(brew --prefix php56)/bin:$PATH"

#保存文件后,source下这个文件,使刚刚添加的环境变量生效
source ~/.bash_profile

Une fois terminé, vous pouvez utiliser php -v dans le terminal Vérifiez la version, c'est la version que je viens d'installer

Ajoutez le contrôle de démarrage launchctl

mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/php56/homebrew.mxcl.php56.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php56.plist

Le le chemin du fichier de configuration php est le suivant

/usr/local/etc/php/5.6/php.ini
/usr/local/etc/php/5.6/php-fpm.conf

Après avoir terminé cela, je suis allé le tester directement en utilisant php

Mais le service nginx est normal, mais php ne s'affiche tout simplement pas

La raison est que je le suis aussi impatient, nginx n'a pas encore configuré php

Le chemin du fichier de configuration nginx est le suivant

/usr/local/etc/nginx/nginx.conf


Après l'avoir ouvert, trouvez le morceau suivant

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

Décommentez-le, redémarrez nginx et ça ne marche toujours pas, trouvez-le La raison c'est parce que la phrase [/scripts$fastcgi_script_name;] devrait être [$document_root$fastcgi_script_name;]

Ensuite, redémarrez nginx et vous pourrez accéder à php

Je me souviens que j'ai rencontré quelques petits problèmes lorsque j'ai démarré php-fpm , le contenu de le problème est affiché dans le terminal

Par exemple : [/private/etc/php-fpm.conf] Ce fichier n'existe pas. En fait, il existe un fichier avec le suffixe [.default] dans le même répertoire We. mettez ceci Copiez-le simplement et remplacez-le par php-fpm.conf

Si vous l'exécutez plus tard, le chemin error_log peut être incorrect. La valeur par défaut est de se connecter sous [/usr/var], mais le chemin n'y est pas trouvé. Il y a deux solutions.

1》S'il y a un dossier qui n'existe pas, nous le créerons

2》Changez le fichier php-fpm.conf que nous venons de copier et trouvons un endroit similaire au suivant

[global]
; Pid file
; Note: the default prefix is /usr/var
; Default Value: none
pid = /usr/local/var/php-fpm/run/php-fpm.pid

; Error log file
; If it's set to "syslog", log is sent to syslogd instead of being written
; in a local file.
; Note: the default prefix is /usr/var
; Default Value: log/php-fpm.log
error_log = /usr/local/var/php-fpm/log/php-fpm.log

pid et error_log ont tous deux été commentés avant, nous le modifions simplement vers un emplacement qui vous convient

S'il n'y a pas d'autres problèmes particuliers maintenant, nginx et php peuvent fonctionner normalement.

Nous pouvons configurer notre propre nom de domaine d'accès en modifiant les fichiers nginx.conf et hosts

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn