文档章节

PHP 相关配置

Y
 Yue_Chen
发布于 02/22 22:45
字数 830
阅读 2
收藏 0

1. php-fpm的pool

  • 编辑php-fpm配置文件php-fpm.con
    vim /usr/local/php/etc/php-fpm.conf //在[global]部分增加以下内容
    include = etc/php-fpm.d/*.conf # 相当与Nginx的虚拟主机文件 “vhost” 的配置

  • 创建存放pool配置文件目录
    mkdir /usr/local/php/etc/php-fpm.d/
    cd /usr/local/php/etc/php-fpm.d/

  • 创建www 的pool配置文件
    vim www.conf //内容如下

    	[test]
    	listen = /tmp/test.sock
    	listen.mode=666
    	user = php-fpm
    	group = php-fpm
    	pm = dynamic
    	pm.max_children = 50
    	pm.start_servers = 20
    	pm.min_spare_servers = 5
    	pm.max_spare_servers = 35
    	pm.max_requests = 500
    	rlimit_files = 1024
    
  • 继续创建test2的pool配置文件
    vim test2.conf //内容如下

    	[admin]
    	listen = /tmp/test2.sock
    	listen.mode=666
    	user = php-fpm
    	group = php-fpm
    	pm = dynamic
    	pm.max_children = 50
    	pm.start_servers = 20
    	pm.min_spare_servers = 5
    	pm.max_spare_servers = 35
    	pm.max_requests = 500
    	rlimit_files = 1024
    

/usr/local/php/sbin/php-fpm –t
/etc/init.d/php-fpm restart

2. php-fpm 执行慢日志

A. pool文件

编辑php-fpm的pool文件vim /usr/local/php-fpm/etc/php-fpm.d/test2.conf//添加慢日志记录配置,如:下内容

request_slowlog_timeout = 1    # 超过1秒的php解析 记录一次慢日志,实际生产环境中 设置2秒
slowlog = /usr/local/php-fpm/var/log/test2-slow.log  # 慢日志存放路径、名称

B. 测试慢日志效果

配置nginx的虚拟主机test2.com.conf,把unix:/tmp/php-fcgi.sock改为unix:/tmp/test2.sock
重新加载nginx服务,创建测试html页面
vim /data/wwwroot/test2.com/sleep.php//写入如下内容

<?php
  echo "test slow log";
  sleep(2);
  echo "done";
?>

curl -x127.0.0.1:80 test2.com/sleep.php
cat /usr/local/php-fpm/var/log/test2-slow.log

3. php-fpm定义open_basedir

A. open_basedir

open_basedir 限制php解析的目录(LAMP 架构中 也可以在 Apache 的配置中设置open_basedir;LNMP 架构直接在php的设置文件中设置)
vim /usr/local/php-fpm/etc/php-fpm.d/admin.conf//配置文件中加入如下内容

……
php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/
# 这里限制的目录为“/data/wwwroot/test.com”/和“/tmp/”目录
……

创建测试php脚本,进行测试;再次更改test.conf,修改open_basedir路径,再次测试
配置错误日志、再次测试、查看错误日志

B. 错误日志

php-fpm的错误日志配置,编辑配置文件:vim /opt/php-fpm/etc/php.ini

……
display_errors = Off        ;错误显示“Off 关闭”“On 开启”,开启后会在浏览器中显示错误信息;生产环境不开启
……
error_log = error_log = /opt/php-fpm/var/log/error.log       ;定义日志位置、日志名称
……
error_reporting = E_ALL       ;定义日志级别
……
创建错误日志文件,并设置权限777(创建日志文件,设置权限,防止因权限问题导致日志无法记录)  

touch /opt/php-fpm/var/log/error.log
chmod 777 /opt/php-fpm/var/log/error.log

4. php-fpm 进程管理

php-fpm.conf 配置文件的部分参数说明;

pm = dynamic  //动态进程管理,也可以是static
pm.max_children = 50 //最大子进程数,ps aux可以查看
pm.start_servers = 20 //启动服务时会启动的进程数
pm.min_spare_servers = 5 //定义在空闲时段,子进程数的最少数量,如果达到这个数值时,php-fpm服务会自动派生新的子进程。
pm.max_spare_servers = 35 //定义在空闲时段,子进程数的最大值,如果高于这个数值就开始清理空闲的子进程。
pm.max_requests = 500  
//定义一个子进程最多处理的请求数,也就是说在一个php-fpm的子进程最多可以处理这么多请求,当达到这个数值时,它会自动退出。

© 著作权归作者所有

共有 人打赏支持
上一篇: 常见的502错误
下一篇: Nginx 配置参数
Y
粉丝 0
博文 23
码字总数 19491
作品 0
苏州
私信 提问
Nginx出现502和504错误解决方法

公司一台测试服务器,最近出现504和502问题:(环境LNMP,php编译安装,Fastcgi模式),问题不难解决,但这里分享一下自己的排查思路和处理问题的方式。 504 Gateway Time-out,nginx 502 bad g...

阚小看
2017/07/07
0
0
Laravel 配置项

1. 配置文件 都存放在 config目录下面 文件名称 配置类型 app.php 应用相关,如项目名称、时区、语言等 auth.php 用户授权,如用户登录、密码重置等 broadcasting.php 事件广播系统相关配置 ...

U_KNOW
2017/11/22
0
0
NagiosQL插件的安装应用

用过zabbix的人都会知道zabbix中定义修改相关配置时可以通过图形界面,快速直观的了解定义其各个配置的关联关系,而在Nagios中通过安装配置NagiosQL就可以实现在图形界面上管理Nagios的配置,...

往事_Jim_遗
2017/10/04
0
0
Mac OSX 10.9搭建nginx+mysql+php-fpm环境

安装homebrew homebrew是mac下非常好用的包管理器,会自动安装相关的依赖包,将你从繁琐的软件依赖安装中解放出来。安装homebrew也非常简单,只要在终端中输入: homebrew的常用命令: 想了解更...

abing_hu
2014/01/04
0
7
centos7.2 安装lnmp环境 (非集成)

centos7.2 安装lnmp环境 (非集成) 发表于2017/7/13 22:20:12 42人阅读 关于php-fpm nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把...

浅景尘
2017/08/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

VSCODE 无法调试

VSCODE 无法调试 可以运行 可能的原因: GCC 的参数忘了加 -g

shzwork
12分钟前
0
0
理解去中心化 稳定币 DAI

随着摩根大通推出JPM Coin 稳定币,可以预见稳定币将成为区块链落地的一大助推器。 坦白来讲,对于一个程序员的我来讲(不懂一点专业经济和金融),理解DAI的机制,真的有一点复杂。耐心看完...

Tiny熊
25分钟前
0
0
5.线程实现

用于线程实现的Python模块 Python线程有时称为轻量级进程,因为线程比进程占用的内存少得多。 线程允许一次执行多个任务。 在Python中,以下两个模块在一个程序中实现线程 - _thread 模块 th...

Eappo_Geng
27分钟前
0
0
ServiceLoader

创建一个接口文件在resources资源目录下创建META-INF/services文件夹在services文件夹中创建文件,以接口全名命名创建接口实现类 内容me.zzp.ar.d.PostgreSQLDialectme.zzp.ar.d.Hype...

Cobbage
31分钟前
0
0
netty

##1.Netty 简介 Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifi......

xpttxsok
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部