前言本人前几天已经发布一篇Mac搭建MAMP环境的文章,如有需要请移步2018-09-29文章,这篇仅记录暂停Apache服务以及配置Nginx以及php-fpm中遇到的坑。
Nginx安装起来
要安装Nginx首先向各位介绍一下Mac中的管理软件,homebrew,wget啦,nginx啦,openssl啦,ffmpeg啦,都是靠它装机并管理的,首先没有homebrew的安装一下homebrew1/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
骚候30秒
然后等待下载安装
安装成功了,我们可以使用brew来安装nginx了1brew install nginx
OK,nginx服务监听在8080端口,进入浏览器输入 localhost:8080 如图即安装成功:
/usr/local/etc/nginx/nginx.conf (配置文档目录)
/usr/local/Cellar/nginx/1.12.1(核心安装目录,启动文档在该目录的bin下面,欢迎页在html下面)
/usr/local/var/www(服务器默认路径)
好,暂且先把Nginx放一边,要使用Nginx解析PHP语言,需要一个php-fpm,而我们的Mac自带了PHP&php-fpm,我们来看一下
搞定php-fpm
首先试着开启php-fpm1
2
3
4[25-Oct-2018 22:21:52] ERROR: failed to open configuration file '/private/etc/php-fpm.conf': No such file or directory (2)
[25-Oct-2018 22:21:52] ERROR: failed to load configuration file '/private/etc/php-fpm.conf'
[25-Oct-2018 22:21:52] ERROR: FPM initialization failed
果然没有那么顺利,看一下报错内容告诉我了我们位于/private/etc/php-fpm.conf文档打开失败,我这一瞅,这个位置也没有php-fpm的配置文档,不过还好,它提供给我们一个模板文档,也就是php-fpm.conf.default,复制出来一份命名为php-fpm.conf1[email protected]:~$sudo cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf
来,我们再来一次,1
2
3
4[25-Oct-2018 22:27:11] ERROR: failed to open error_log (/usr/var/log/php-fpm.log): No such file or directory (2)
[25-Oct-2018 22:27:11] ERROR: failed to post process the configuration
[25-Oct-2018 22:27:11] ERROR: FPM initialization failed
NICE!继续分析,这个报错告诉我们没打开/usr/var/log/php-fpm.log文档,我又一瞅,没有这个目录啊!!!那进入配置文档改个位置吧。1
2
3
4
5
6
7
8[email protected]:~$sudo vim /etc/php-fpm.conf
; Error log file
20 ; If it's set to "syslog", log is sent to syslogd instead of being written
21 ; into a local file.
22 ; Note: the default prefix is /usr/local
23 ; Default Value: log/php-fpm.log
24 error_log = /usr/local/var/log/php-fpm.log
注意:
这是一个大坑,我经历了一个上午,都在排查错误,结果只是没有去掉error_log前面的分号!!!切记切记,这TM也是个注释呢还!!!
保存好,重新再启动一次~
Oh~
多么地激动人心!
对了,我们还没有动Nginx的配置文档,php-fpm解决了,该Nginx了。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm index.php;
}
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors on;
}
这里注意fastcgi_param,之前使用SCRIPT_FILENAME /scripts$fastcgi_script_name;打开网页显示File not found. 改成SCRIPT_FILENAME $document_root$fastcgi_script_name;就好了。另外php-fpm运行的用户与nginx不一致,也会产生错误,我们需要修改下nginx.conf的user配置user root;
同时也需要将php-fpm的运行用户改成root:
配置修改后,重启服务,问题就解决了~