当前位置:首页 > Web开发 > 正文

PHP内部已经集成了php-fpm模块

2024-03-31 Web开发

标签:

一、Zabbix监控PHP-FPM应用实战

Nginx+PHP-FPM是目前最风行的LNMP架构,在基于PHP开发的系统下,对这些系统性能的监控,主要是存眷PHP-FPM的运行状态,那么什么是PHP-FPM呢?PHP-FPM是一个PHP FastCGI打点器,它供给了更好的PHP进程打点方法,可以有效控制内存和进程、可以平滑重载PHP配置,对付ZPHP5.3.3之前的PHP来说,它是一个补丁包,而从PHP5.3.3版本开始,PHP内部已经集成了php-fpm模块,意味着被PHP官方收录了。在编译PHP时需指定参数“--enable-fpm”来开启PHP-FPM。

1)启用php-fpm状态成果

操纵如下:

1)安置nginx [[email protected] ~]# yum -y install zlib pcre pcre-devel openssl openssl-devel [[email protected] ~]# wget [[email protected] ~]# tar zxf nginx-1.14.1.tar.gz -C /usr/src [[email protected] ~]# cd /usr/src/nginx-1.14.1/ [[email protected] nginx-1.14.1]# ./configure --prefix=http://www.mamicode.com/usr/local/nginx --user=www --group=www > --with-http_stub_status_module --with-http_ssl_module --with-pcre > --with-http_gzip_static_module && make && make install [[email protected] nginx-1.14.1]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin 2)安置php [[email protected] ~]# yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel openldap openldap-devel [[email protected] ~]# wget https://www.php.net/distributions/php-7.2.3.tar.gz [[email protected] ~]# useradd -s /sbin/nologin www [[email protected] ~]# tar zxf php-7.2.3.tar.gz -C /usr/src [[email protected] ~]# cd /usr/src/php-7.2.3/ [[email protected] php-7.2.3]# ./configure --prefix=http://www.mamicode.com/usr/local/php7 --enable-fpm --with-fpm-user=www --with-fpm-group=www && make && make install [[email protected] php-7.2.3]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin [[email protected] php-7.2.3]# cp php.ini-production /usr/local/php7/lib/php.ini [[email protected] php-7.2.3]# cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/ [[email protected] php-7.2.3]# vim /usr/local/php7/lib/php.ini post_max_size = 16M max_execution_time = 300 memory_limit = 128M max_input_time = 300 date.timezone = Asia/Shanghai [[email protected] php-7.2.3]# vim /usr/local/nginx/conf/nginx.conf location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; include fastcgi_params; } [[email protected] php-7.2.3]# nginx -t [[email protected] php-7.2.3]# cd /usr/local/php7/etc/ [[email protected] etc]# cp php-fpm.conf.default php-fpm.conf [[email protected] etc]# cp php-fpm.d/www.conf.default php-fpm.d/www.conf [[email protected] etc]# vim php-fpm.d/www.conf [www] user = www group = www listen = 127.0.0.1:9000 pm = dynamic pm.max_children = 300 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.status_path = /status [[email protected] etc]# nginx [[email protected] etc]# systemctl daemon-reload [[email protected] etc]# systemctl start php-fpm [[email protected] etc]# ss -lnt | grep 9000 LISTEN 0 128 127.0.0.1:9000 *:* [[email protected] etc]# ss -lnt | grep 80 LISTEN 0 128 *:80 *:* /usr/local/php7/etc/php-fpm.d/www.conf 文件中改削的参数: 1)user和group:用于设置运行phpf-pm进程的用户及用户组; 2)listen:是配置php-fpm进程监听的IP地点及端口,默认是127.0.0.1:9000; 3)pm:指定php-fpm进程池开启进程的方法,有两个值可供选择,分袂是static(静态)和dynamic(动态) dynamic(动态):暗示php-fpm进程数是动态的,最开始是php.start_servers指定的数量,如果请求较多,则会自动增加,保证空闲的进程数不小于pm.min_spare_servers,如果进程较多,也会进行相应清理,保证空闲的进程数不久不多与pm.max_spare_servers; static(静态):暗示php-fpm进程数是静态的,进程数自始至终都是pm.max_children指定的数量,不在增加或减少; 4)pm.max_children = 300:在static方法下暗示固定开启的php-fpm进程数量,在dynamic方法下暗示开启php-fpm的最猛进程数; 5)pm.start_servers = 20:暗示在dynamic方法下初始开启php-fpm进程数量; 6)pm.min_spare_servers = 5:暗示在dynamic方法空闲状态下开启的最小php-fpm进程数量; 7)pm.max_spare_servers = 35:暗示在dynamic方法空闲状态下开启的最大php-fpm进程数量,这里需注意pm.max_spare_servers的值只能小于即是pm.max_children的值; 8)pm.status_path = /status:暗示配置php-fpm运行状态页面的路径;

设置参数时,需注意:如果pm为static,那么其实只有pm.max_children这个参数生效,系统会开启设置数量的php-fpm进程。如果pm为dynamic,系统会在php-fpm运行开始的时候启动pm.start_servers个php-fpm进程,然后按照系统的需求动态地在pm.min_spare_servers和pm.max_spare_servers之间调解php-fpm进程数,最大不赶过pm.max_children设置的进程数。

小我私家建议:内存充沛(16G以上)的处事器,保举使用static方法,内存较小(16G以下)的处事器,保举使用dynamic方法。

2)nginx配置php-fpm状态页面

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30721.html