系統:Centos6.8php
軟件包:php-7.0.14.tar.gzmysql
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 的重啓、終止操做命令:sql
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的啓動參數:apache
#測試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 的運行方式:php7
static :表示在 `php-fpm` 運行時直接 `fork` 出 `pm.max_chindren` 個子進程,
dynamic:表示,運行時fork出 start_servers個進程,隨着負載的狀況,動態的調整,最多不超過max_children個進程。
通常推薦用 static。
優勢是不用動態的判斷負載狀況,提高性能;
缺點是多佔用些系統內存資源。
一、php-fpm優化參數介紹
他們分別是:pm、pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers。curl
pm:表示使用那種方式,有兩個值能夠選擇,就是static(靜態)或者dynamic(動態)。
在更老一些的版本中,dynamic被稱做apache-like。這個要注意看配置文件的說明。socket
下面4個參數的意思分別爲:php-fpm
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進程數.