003_PHP 相关配置

PHP 相关配置

1. php-fpm 的 pool

1.1 开启 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/

1.2 创建 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

1.3 创建 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 执行慢日志

2.1 开启慢日志配置

#### 编辑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
# 慢日志存放路径、名称

2.2 测试慢日志配置

配置 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

3.1 开启 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 路径,再次测试、配置错误日志、再次测试、查看错误日志

3.2 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
;定义日志级别
……

创建日志文件

#### 创建错误日志文件
touch  /opt/php-fpm/var/log/error.log
#### 设置权限777 (创建日志文件,设置权限,防止因权限问题导致日志无法记录)
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的子进程最多可以处理这么多请求,当达到这个数值时,它会自动退出。
posted @ 2020-02-19 22:34  bret_chen  阅读(131)  评论(0编辑  收藏  举报