12.21 php-fpm的pool;12.22 php-fpm慢执行日志;12.23 open_basedir;12.24 php-fpm进程管理

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

12.21 php-fpm的pool

1. 添加pool:

[root@hao-01 ~]# vim /usr/local/php-fpm/etc/php-fpm.conf

添加第二个pool

[hao1.com]

listen = /tmp/hao1.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

wKioL1mT8JWCcozyAAA9NRzY-vc730.png

spacer.gif2. 查看配置有没有语法错误

[root@hao-01 ~]# /usr/local/php-fpm/sbin/php-fpm -t

3. 重新加载配置:

[root@hao-01 ~]# /etc/init.d/php-fpm reload

4. 查找php-fpm进程(pool hao1.com 可查到了):

[root@hao-01 ~]# ps aux |grep php-fpm

wKioL1mT8LTR9abDAABFSHNygcI017.png

spacer.gif5. aaa.com网站设定为第二个pool(hao1.com)

[root@hao-01 ~]# vim /usr/local/nginx/conf/vhost/aaa.com.conf

location ~ \.php$
    {
        include fastcgi_params;
        fastcgi_pass unix:/tmp/hao1.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /data/wwwroot/default$fastcgi_script_name;
    }

wKioL1mT8OaAkKjIAAAz1EtJpWs870.png

多个pool情况下,每一个pool对应一个相关配置文件

1. 查看[www][hao1.com]相关下面的配置 并拷贝剪切板备用

[root@hao-01 ~]# cat /usr/local/php-fpm/etc/php-fpm.conf

2. 编辑 php-fpm.conf主配置文件:

[root@hao-01 ~]# vim /usr/local/php-fpm/etc/php-fpm.conf

添加如下一行(添加这行就可以wwwhao1.com配置设定各自独立的文件):

include = etc/php-fpm.d/*.conf

删除(删除前一定要先备份)[www][hao1.com]相关下面的配置

wKioL1mT8XyD8lbAAAAXi0GrsZ0896.png

spacer.gif删除光标行下面100100 dd

3. 创建.../php-fpm.d目录(用于存放后缀.conf文件):

[root@hao-01 ~]# mkdir /usr/local/php-fpm/etc/php-fpm.d

4. 进入.../php-fpm.d目录:

[root@hao-01 ~]# cd /usr/local/php-fpm/etc/php-fpm.d

5. 创建www.conf文件,并添加如下内容:

[root@hao-01 php-fpm.d]# vim www.conf

之前备份[www]相关配置

[www]

listen = /tmp/php-fcgi.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

6. 创建hao1.com.conf文件,并添加如下内容:

[root@hao-01 php-fpm.d]# vim hao1.com.conf

之前备份[hao1.com]相关配置

[hao1.com]

listen = /tmp/hao1.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

7. 查看配置有没有语法错误

[root@hao-01 php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm -t

8. 重新加载配置:

[root@hao-01 php-fpm.d]# /etc/init.d/php-fpm reload

9. 查找php-fpm进程(pool hao1.com 可查到了):

[root@hao-01 php-fpm.d]# ps aux |grep php-fpm

wKioL1mT8aDBG4aTAABDlFgixlc037.png

spacer.gif12.22 php-fpm慢执行日志

1. 编辑.../www.conf文件:

[root@hao-01 ~]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf

添加内容(日志配置)

request_slowlog_timeout = 1

slowlog = /usr/local/php-fpm/var/log/www-slow.log

wKioL1mT8buyFQFYAABAZGdvN_c259.png

spacer.gif2. 查看配置有没有语法错误

[root@hao-01 ~]# /usr/local/php-fpm/sbin/php-fpm -t

3. 重新加载配置:

[root@hao-01 ~]# /etc/init.d/php-fpm reload

4. 查看是否生成www-slow.log日志文件:

[root@hao-01 ~]# ls /usr/local/php-fpm/var/log/www-slow.log

添加内容:

<?php

echo "test slow log";

sleep(2);

echo "done";

?>

5. curl访问test.com网站下,sleep.php文件(慢2秒执行)

[root@hao-01 ~]# curl -x127.0.0.1:80 test.com/sleep.php -I

6. 查看慢执行日志内容:

[root@hao-01 ~]# cat /usr/local/php-fpm/var/log/www-slow.log

wKioL1mT8d_hlQH7AABWtZibf-s121.png

spacer.gif12.23 open_basedir

1. 编辑.../php-ini配置文件,添加一行错误日志配置:

[root@hao-01 ~]# vim /usr/local/php-fpm/etc/php-ini

;error_log = /usr/local/php-fpm/var/log/php_errors.log

wKioL1mT8hCToCg_AAAr9Mp-OVU807.png

spacer.gif添加一行日志级别(所有),并;分号注释掉上一行

error_reporting =E_ALL

wKioL1mT8jCigL6QAABj5J0rwc8472.png

spacer.gif2. 创建.../php_errors.log错误日志文件

[root@hao-01 ~]# touch /usr/local/php-fpm/var/log/php_errors.log

3. 设定php_errors.log错误日志文件权限为777

[root@hao-01 ~]# chmod 777 /usr/local/php-fpm/var/log/php_errors.log

4. 编辑.../www.conf文件:

[root@hao-01 php-fpm.d]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf

添加内容:

php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/

wKioL1mT8k-xFy44AABV_jcb_m0324.png

spacer.gif5. 查看配置有没有语法错误

[root@hao-01 ~]# /usr/local/php-fpm/sbin/php-fpm -t

6. 重启配置:

[root@hao-01 ~]# /etc/init.d/php-fpm restart

7. curl访问test.com网站下的php文件

[root@hao-01 ~]# curl -x127.0.0.1:80 test.com/1.php -I

8. 编辑.../www.conf文件,:

[root@hao-01 php-fpm.d]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf

[www] 对应网站(test.com)改为不对应网站地址(11.com)

wKioL1mT8nKjPjqJAAAMf9b2HpA290.png

spacer.gif9. 重启配置:

[root@hao-01 ~]# /etc/init.d/php-fpm restart

10. curl访问test.com网站下的php文件

[root@hao-01 ~]# curl -x127.0.0.1:80 test.com/1.php

wKioL1mT8pKiur8uAAAiy2c7O5k357.png

spacer.gif11. 查看错误日志(php_errors.log)

[root@hao-01 ~]# cat /usr/local/php-fpm/var/log/php_errors.log

12.24 php-fpm进程管理

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的子进程最多可以处理这么多请求,当达到这个数值时,它会自动退出。










本文转自 主内安详 51CTO博客,原文链接:http://blog.51cto.com/zhuneianxiang/1956716,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
10天前
|
PHP
PHP的pcntl多进程用法实例
PHP使用PCNTL系列的函数也能做到多进程处理一个事务。
|
3月前
|
消息中间件 JSON 自然语言处理
Python多进程日志以及分布式日志的实现方式
python日志模块logging支持多线程,但是在多进程下写入日志文件容易出现下面的问题: PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。 也就是日志文件被占用的情况,原因是多个进程的文件handler对日志文件进行操作产生的。
|
3月前
|
存储 安全 Python
[python]使用标准库logging实现多进程安全的日志模块
[python]使用标准库logging实现多进程安全的日志模块
|
4月前
|
消息中间件 JSON 自然语言处理
python多进程日志以及分布式日志的实现方式
python日志在多进程环境下的问题 python日志模块logging支持多线程,但是在多进程下写入日志文件容易出现下面的问题: PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。 也就是日志文件被占用的情况,原因是多个进程的文件handler对日志文件进行操作产生的。
|
6月前
|
安全 Python
Python 多进程日志输出到同一个文件并实现日志回滚
Python 多进程想要实现将日志输出到同一个文件中,使用同一个日志句柄,且日志需要按照日期,大小回滚。
|
6月前
|
存储 JSON 运维
【运维】Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
【运维】Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
159 0
|
6月前
|
安全 程序员 Python
Python-logging详解(彩色日志扩展,多进程安全等)
Python-logging详解(彩色日志扩展,多进程安全等)
115 0
|
流计算
110 Storm集群的进程及日志熟悉
110 Storm集群的进程及日志熟悉
68 0
|
PHP
PHP swoole 监听端口进程
PHP swoole 监听端口进程
105 0
|
PHP
PHP:php-fpm进程数控制配置
PHP:php-fpm进程数控制配置
121 0