PHP-FPM for performance optimization

Source: Internet
Author: User
Tags configuration php

PHP-FPM is a PHP FastCGI manager, General Nginx above the PHP program will throw PHP program to PHP-FPM to parse. All right, that's it!

PHP 5.4 began to integrate the PHP-FPM, that is, when compiling PHP, as long as the--ENABLE-FPM installed PHP-FPM.

First, install the PHP-FPM

shell > . /configure --prefix= /usr/local/php \ --with-config- file -path= /usr/local/php --with-mysql= /usr/local/mysql/ \ --with-mysqli= /usr/local/mysql/bin/mysql_config --with-gd --with-xsl --with-bz2 \ --with-zlib --with-curl --with-pear --without-iconv --with-mcrypt \ --with-gettext --with-openssl --with-libxml- dir --with-png- dir --with-jpeg- dir --with-freetype- dir \ --with-libdir=lib64 -- enable - ftp -- enable -fpm -- enable -opcache -- enable -exif -- enable -soap -- enable -bcmath -- enable -calendar \ -- enable -sockets -- enable -mbstring -- enable -gd-native-ttf --disable-rpath --disable-debug# # See above this heap of parameters No, this is in compiling PHP, where there is a parameter is--ENABLE-FPM Yes, this is the Enable PHP-FPM extension. Second, the configuration php-fpm. shell > cp /usr/local/src/php-5 .6.17 /php .ini-production /usr/local/php/php .ini # 这是 PHP 的配置文件 shell > cp /usr/local/src/php-5 .6.17 /sapi/fpm/init .d.php-fpm /etc/init .d /php-fpm # 这是 PHP-FPM 的启动脚本 shell > cd /usr/local/php/etc/ shell > cp php-fpm.conf.default php-fpm.conf # 复制一份配置文件 shell > vim php-fpm.conf [global] pid = run /php-fpm .pid # PID rlimit_files = 65535 # 打开文件数限制 [www] # 进程池 user = nginx # 以 nginx 身份运行 group = nginx listen = 127.0.0.1:9000 # 监听本机的 9000 端口 ;listen = /dev/shm/php-cgi .sock; # 监听 UNIX SOCKET ,并把 SOCKET 放在了内存空间中,速度更快 ( Nginx 也要相应修改 )! ;listen.backlog = 10240 # UNIX SOCKET 的方式高并发下有点不稳定,该参数用来缓解 ( SOCKET 等待队列长度 ) ;listen.owner = nginx # UNIX SOCKET 的权限 ;listen.group = nginx ;listen.mode = 0660 pm = dynamic # 创建进程的方式,动态创建 pm.max_children = 32 # 最大进程数 ( 不能只看内存来创建,要看具体使用率,有时内存足够,进程数大多时,导致 CPU 频繁上下文切换,负载会很高 ) pm.start_servers = 5 # 初始进程数 pm.min_spare_servers = 5 # 最小空闲进程数 pm.max_spare_servers = 10 # 最大空闲进程数 pm.status_path = /php_status # PHP-FPM 状态监控 ( Nginx 要设置访问权限 ) shell > service php-fpm start third, monitoring php-fpm shell > vim /usr/local/nginx/conf/nginx .conf location ~ /php_status { # 创建一个单独的 server 或直接在 server {} 中加入配置    access_log off;    allow 127.0.0.1;    allow 36.110.41.194; # 做好权限    deny all;    fastcgi_pass 127.0.0.1:9000; # 如果是 UNIX SOCKET 的方式,要类似这样写: fastcgi_pass unix:/dev/shm/php-cgi.sock;    fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;    include fastcgi_params; } shell > kill -HUP ` cat /usr/local/nginx/logs/nginx .pid` shell > curl http: //127 .0.0.1 /php_status # 访问该路径得到如下数据 pool: www               # 进程池名称 process manager: dynamic        # 进程管理方式 start time : 22 /Jan/2016 :15:49:00 +0800 # 启动时间 start since: 375            # 运行时长 accepted conn: 7            # 当前进程池接受的请求数 listen queue: 0            # 请求等待队列,如果不为 0 ,意味着 FPM 进程不足,需要增加 max listen queue: 0          # 最大等待队列数量 listen queue len: 1024         # SOCKET 等待队列长度 idle processes: 4           # 空闲进程数 active processes: 1          # 活跃的进程数 total processes: 5           # 总进程数 max active processes: 1        # 最大活跃进程数 max children reached: 0        # 达到最大进程数的次数,如果不为 0 ,意味着最大进程数不足,需要增加 slow requests: 0            # 慢请求数量,需要设置 slow log shell > curl http: //127 .0.0.1 /php_status # 这里有多种参数供选择,例如: http://127.0.0.1/php_status?html 、?json 、?xml 、?full

PHP-FPM for performance optimization

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.