这里基于Mac( MacOS 10.14.0 )自带的nginx (1.12.0)php (PHP 7.1.23),主要有以下几个方面:
  • php-fpm 配置
  • nginx 配置
  • php-fpm/nginx 进程管理

Mac自带nginx文件路径信息

/usr/local/bin/nginx    // 符号链接路径
/usr/local/var/www      // 默认服务器根目录
/usr/local/etc/nginx    // nginx配置目录,nginx配置相关的文件都在这个目录// 启动nginx
nginx
// or: /usr/local/bin/nginx复制代码

php-fpm 相关信息
/etc/php-fpm.conf.default          // php-fpm默认配置文件
/etc/php-fpm.d/www.conf.default    // 进程扩展配置文件
/usr/sbin/php-fpm                  // 符号链接路径复制代码

因为是Mac自带的nginx和php,所以免去安装部分,直接说明运行和配置

♢ 启动nginx服务器

通过nginx --version (or -v) 查看nginx的版本信息

启动nginx服务器(可以直接在控制台输入nginx,回车)

nginx
复制代码

没有报错的话,可以在浏览器里面输入127.0.0.1:8080,看是否显示出nginx启动成功的提示信息

♢ 配置php-fpm

同样可以使用,php-fpm -v (或 --version) 查看版本信息
如果没有指定配置文件直接启动php-fpm,会报错,虽然在/private/etc/ 目录有php-fpm.conf.default 文件,但php-fpm启动时默认找的是php-fpm.conf

所以先从php-fpm.conf.default copy 一份 php-fpm.conf

cd /private/etc
cp php-fpm.conf.default php-fpm.conf复制代码

打开php-fpm.conf 找到 ; error_log = log/php-fpm.log 这一行,在下面加一行error_log = /usr/local/var/log/php-fpm.log,以指定错误日志文件,防止报错
然后进入到php-fpm.d 目录
cd php-fpm.d
cp www.conf.default www.conf    // 同样copy一份 www.conf复制代码

尝试启动php-fpm:
php-fpm
// or
php-fpm -D复制代码

验证是否启动成功,同样通过ps -ef | grep php-fpm 查看是否 php-fpm的相关进程

也可以为php-fpm 指定配置文件启动

php-fpm –c php.ini –y php-fpm.conf复制代码

php-fpm 的关闭、重启,先通过ps -ef | grep php-fpm 找到运行中的php-fpm进程的PID,然后通过kill -s signal PID 的方式进行管理. 相关signal有:
信号
作用
INT
立即终止
QUIT
平滑终止
USR1
重新打开日志文件
USR2
重启(平滑重载所有worker进程并重新载入配置和二进制模块)

♢ 配置nginx

在默认的server 配置里面,找到注释掉的php相关配置,放开注释,并修改成如下配置(修改过程中注意分号,不要落了,否则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;     // 主要为这一行include fastcgi_params;}复制代码

root html指向nginx 服务器默认根目录 /usr/local/var/www,在这里创建一个index.php 并写入一行php代码,以验证服务可用性
cd /usr/local/var/www
echo "<?php echo 11;" > index.php复制代码

重启nginx服务器
nginx -s reload复制代码

没有报错,就可以使用ps -ef | grep nginx 查看是否有相关进程,以验证nginx是否启动成功。在浏览器输入: 127.0.0.1:8080/index.php
如果页面显示php中echo 的 11,说明配置成功。

♢ nginx进程管理

nginx -s stop       // fast shutdown
nginx -s quit       // graceful shutdown
nginx -s reload     // reloading the configuration file
nginx -s reopen     // 重新打开日志文件复制代码

nginx 的进程分为mater process (master 进程)worker process(worker进程),master(主)进程负责worker(工作)进程的管理,而worker 进程则负责处理请求, 还有可能有cache相关进程。
有两种工作模式:
  • 单进程模式:nginx只会有一个进程,该进程即充当master进程角色,又充当worker进程角色
  • 多进程模式:nginx会有一个master进程(也只有一个),且至少有一个worker进程
stop 信号会马上结束所有进程,而quit 信号是等到完成当前请求的相关服务后,才退出进程。
当配置文件更改后,需要通过reload 信号通知nginx使用新的配置来启动新进程,nginx master 进程收到reload信号后,会检查新配置文件的正确信,如果没有问题,则会fork出基于新配置的新worker进程,接收新的请求,并发送通知基于就配置文件的工作进程关闭,收到关闭信号的进程通过quit信号的形式,先结束服务,再关闭。如果有问题,则master进程会回滚配置,继续使用旧的配置文件。
也可以通过kill 命令发送相应的指令给指定的pid,来结束nginx对应的nginx工作进程。如通过ps -ef | grep nginx (或通过 ps -ax | grep nginx)来找到nginx的worker进程process ID
ps -ef | grep nginx
501 83158     1   0  4:44PM ??         0:00.01 nginx: master process nginx
501 85683 83158   0  5:58PM ??         0:00.00 nginx: worker process复制代码

然后,kill -s QUIT 85683 通过quit信号的形式结束PID 为85683 的worker进程。 nginx mater 进程信号及作用列表:

信号
作用
INT,TERM
立即终止
QUIT
平滑终止
HUP
changing configuration, keeping up with a changed time zone (only for FreeBSD and Linux), starting new worker processes with a new configuration, graceful shutdown of old worker processes
USR1
重新打开日志文件
USR2
upgrading an executable file
WINCH
graceful shutdown of worker processes

转载于:https://juejin.im/post/5cf33ff16fb9a07f091b8b4a

基于Mac自带nginx、php,配置php服务器相关推荐

  1. linux构建基于mac的vlan,通过CLI配置交换机的基于MAC的VLAN组

    通过CLI配置交换机的基于MAC的VLAN组 Introduction 虚拟局域网逻辑上允许您对网段A区域网(LAN)到不同的广播域.在敏感数据可能是在网络的广播的方案中, VLAN可以通过选定广播创 ...

  2. 基于WINDOS系统自带工具IIS配置文件下载服务器

    IIS配置文件下载服务器 IIS功能已经打开 1.新建一个网站: 2.设置网站名称.位置.IP 3.需要修改的地方 3.1HTTP标头 添加名称:Content-Disposition:值:attac ...

  3. mac apache 和 nginx ssl 配置自签名的SSL

    2019独角兽企业重金招聘Python工程师标准>>> mac apache ssl 配置 a-生成私钥,命令: sudo openssl genrsa -des3 -out app ...

  4. mac os 配置 mysql_基于MAC OS 操作系统安装、配置mysql

    首先先介绍压缩包形式的安装方法: $ sudo mv mysql-5.1.45-osx10.6-x86_64 /usr/local/mysql $ cd /usr/local $ sudo chown ...

  5. Mac OS X上安装配置apache服务器

    说明:Mac在安装完成Mac系统的时候它已经自带了apache服务器,接下来就是配置和将它启动运行了.那么接下来要做的事情就是: 1.配置apache的配置文件2.设置虚拟主机 启动并查看apache ...

  6. mac os 开启redis_Mac下配置Redis服务器(自启动、后台运行) | 学步园

    Redis服务器在从诸多文章上看来,是个极为优秀的Key-value数据库软件.其NB之处可以从这篇文章中略知一二. 主要参考 首先是安装,它会默认安装到/usr/local/bin下 cd /tmp ...

  7. Nginx之配置后端服务器组

    Nginx服务器支持设置一组服务器作为后端服务器,Nginx反向代理,负载均衡等重要功能会经常涉及后端服务器. 服务器组的设置包括以下的一些指令,他们是由标准的HTTP模块ngx_http_upstr ...

  8. Nginx+Ftp配置图片服务器,实现网址直接访问图片

    一.Nginx 教程:https://blog.csdn.net/zyw_java/article/details/77114671 这个教程要注意,里面的路径有点问题,详情见第三部分 效果:在ip: ...

  9. 基于MAC地址的安全配置与管理

    MAC地址是网络设备中不变的物理地址,所以基于MAC地址的接入控制就成了最直接,甚至可能是大多数情况下最有效的控制手段.在二层交换网络中,是通过依靠保存在交换机中的MAC地址表来进行寻址的,这时如果控 ...

最新文章

  1. OpenCV3.3中K-Means聚类接口简介及使用
  2. linux fuser 命令 查看文件/网络端口 被什么进程占用
  3. Java未被捕获的异常
  4. Python进阶(上下文管理器与with语句)
  5. django 模板两次for循环_Django模板之基本的 for 循环 和 List内容的显示方式
  6. java 实现超时_如何实现带有超时的Runnable? - java
  7. JSON 序列化 与 反序列化
  8. linux 驱动编译静态,Linux驱动静态编译和动态编译方法详解
  9. numpy : numpy.random
  10. comsol初学经验分享
  11. 数据库查询结果随机排序
  12. 软件定义无线电 (SDR) 和业余试验
  13. hydra 破解ssh 163邮箱
  14. SSL连接是什么意思
  15. html+css基础教程之html标题学习
  16. 【商业模式学习感悟】趣步App——新型商业模式,还是新型传销?
  17. 关于重定向和转发的理解
  18. FreeSWITCH权威指南-基础篇-1.2-电话实现技术
  19. Spring Cloud自定义Hystrix请求命令 1
  20. python 模拟触屏电脑操作_如何在硒中模拟触摸屏?

热门文章

  1. PhpStorm设置
  2. Three.js中自定义控制几何体的点和面的属性
  3. Android中集成Jpush实现推送消息通知与根据别名指定推送附示例代码下载
  4. Android中使用画笔和画布绘制一个矩形
  5. 集成学习(ensemble learning)(一)
  6. 绝地求闪退be服务器未运行,绝地求生大逃杀BE启动失败,应用程序无法正常启动...
  7. es ik分词热更新MySQL,ElasticSearch(25)- 改IK分词器源码来基于mysql热更新词库
  8. 国内电商场景大战中,企业如何寻找有效增长点?这里有答案了
  9. MySQL高可用的几种方案
  10. Debug实验学习汇编