这个过程很曲折,一步一步来(马上会暴露菜鸟的水平)
要不我先说结论:我这里出现Nginx 502的原因就是php-fpm没有启动。
过程是这样的,跟往常一样,为了配置PHP开发环境,需要安装Nginx(Apache也可以,我就是喜欢Nginx)、MySQL、PHP,其中PHP自带7.1.23,就不管了。
1、安装HomeBrew,不用代理贼慢,在翻墙上面就摔了一跤,详见Mac终端走代理,执行以下命令安装HomeBrew:
- /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2、下一步安装Nginx和MySQL,这里MySQL用5.7,别问为什么,我也不知道,反正5.7很牛逼,命令行走起:
- #安装Nginx
- brew install nginx
- #安装MySQL
- brew install mysql@5.7
一般顺利,Nginx+MySQL+PHP+我的电脑,万事俱备只欠东风(配置本地域名就不说了哈,创建domain.conf加hosts就OK了)。
接下来就是菜鸡日志啦,所有准备做好之后,在浏览器回车本地域名,尴尬的出现了:
Nginx 502 Bad Gateway
然后命令行习惯性地:
- nginx
Nginx立马甩了我五六巴掌:
- ...
- nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)
- ...
只能网上查了,大佬们各抒己见:
80端口被占用了,kill以下进程;
php.ini里面啥东西太小,撑不起Nginx的野心;
nginx.conf的超时时间不对;
缓存配置太小;
php-fpm的问题(大佬就是大佬,这个是我这种情况的正解)
然后一个个原因都试了一遍(耗时两个下班的晚上),终于发现是php-fpm没启动,下面就是成功之路了
然后命令行:
- sudo php-fpm #这里用sudo吧,不用好像会出问题,不会出问题你就用,sudo后面再讲讲经验
报错:打不开配置文件 ==》 打不开日志文件。
解决:到相应的地方创建相应的文件(一般都会有类似.example文件的哈)
解决了报错,走起:
- sudo php-fpm
终于见到了期待已久的画面!!!
然后谈谈sudo的事情和前面“nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)”的事情:
因为刚开始都没有用sudo,使用命令nginx的时候会报上面这个地址已经被使用的错误,感觉是Nginx自己已经在启动了,在执行地址肯定已经在使用了(当然这只是搞了这么长时间的感觉,没有科学依据,哪位大佬了解烦请评论区留一下,或者直接联系QQ都可以,先谢过了!)
还有一点:等上面的弄好后,会出现404,这个就简单了,可能是Nginx本地域名配置文件中:
- location ~ \.php$ {
- root /Users/uiaoin/wwwroot/api.me/public;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
- include fastcgi_params;
- }
/scripts给改为$document_root就好了!
就到这里了啊,不总结了,Nginx 502的情况也像各位大佬说的一样很多,博主碰到的给大家做个参考,人生很短,少走弯路哈!