系统:Centos6.8
软件包:php-7.0.14.tar.gz
yum install bzip2 bzip2-devel -y yum install curl curl-devel -y yum install php-mcrypt libmcrypt libmcrypt-devel -y yum install readline-devel -y ./configure --prefix=/usr/local/php7 --enable-fpm \ --with-zlib \ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ --enable-opcache \ --with-fpm-user=www \ --with-fpm-group=www \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-gettext \ --enable-mbstring \ --with-iconv \ --with-mcrypt \ --with-mhash \ --with-openssl \ --enable-bcmath \ --enable-soap \ --with-libxml-dir \ --enable-pcntl \ --enable-shmop \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-sockets \ --with-curl \ --with-zlib \ --enable-zip \ --with-bz2 \ --with-readline
php-fpm 的重启、终止操作命令:
1.统计php-fpm进程数: ps aux | grep -c php-fpm 2.查看php-fpm的进程: ps -ef |grep php-fpm 3.查看php的版本: php-fpm -v 4.查看php编译的参数: /usr/local/php7/bin/php -i |grep configure 5.查看php的僵死进程,并杀死僵死进程. ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9
php-fpm的启动参数:
#测试php-fpm配置 /usr/local/php7/sbin/php-fpm -t /usr/local/php7/sbin/php-fpm -c /usr/local/php7/etc/php.ini -y /usr/local/php7/etc/php-fpm.conf -t #启动php-fpm /usr/local/php7/sbin/php-fpm /usr/local/php7/sbin/php-fpm -c /usr/local/php7/etc/php.ini -y /usr/local/php7/etc/php-fpm.conf #关闭php-fpm kill -INT `cat /usr/local/php7/var/run/php-fpm.pid` #重启php-fpm kill -USR2 `cat /usr/local/php7/var/run/php-fpm.pid`
首先,我们关注下 PHP-FPM 的运行方式:
static :表示在 `php-fpm` 运行时直接 `fork` 出 `pm.max_chindren` 个子进程,
dynamic:表示,运行时fork出 start_servers个进程,随着负载的情况,动态的调整,最多不超过max_children个进程。
一般推荐用 static。
优点是不用动态的判断负载情况,提升性能;
缺点是多占用些系统内存资源。
1、php-fpm优化参数介绍
他们分别是:pm、pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers。
pm:表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态)。
在更老一些的版本中,dynamic被称作apache-like。这个要注意看配置文件的说明。
下面4个参数的意思分别为:
pm.max_children:静态方式下开启的php-fpm进程数量
pm.start_servers:动态方式下的起始php-fpm进程数量
pm.min_spare_servers:动态方式下的最小php-fpm进程数
pm.max_spare_servers:动态方式下的最大php-fpm进程数量
区别:
如果dm设置为 static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。
如果dm设置为 dynamic,那么pm.max_children参数失效,后面3个参数生效。
系统会在php-fpm运行开始 的时候启动pm.start_servers个php-fpm进程,
然后根据系统的需求动态在pm.min_spare_servers和pm.max_spare_servers之间调整php-fpm进程数.