1.PHP在 5.3.3 之后已经讲php-fpm写入php源码核心了
2.如果php没有编译,只需要在编译的时候带上 --enable-fpm
3.如果php已经编译的情况下:
1)找到之前的编译参数:
/usr/local/php5/bin/php -i | grep Configure
2)在参数的后面重现添加--enable-fpm
3) make && make install
4.启动php-fpm:
/usr/local/php5/sbin/php-fpm
php-fpm占用的是9000端口
5.配置文件:
[www]
listen=0.0.0.0:9000 #监听端口
listen.backlog= -1
listen.owner=www-data
listen.group=www-data
listen.mode=0660
user=www-data
group=www-data
pm=dynamic # 如果dm设置为 dynamic,那么pm.max_children参数失效,后面3个参数生效
#如果dm设置为 static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程
pm.max_children=10 #静态方式下开启的php-fpm进程数量
pm.start_servers=2 # 动态方式下的起始php-fpm进程数量
pm.min_spare_servers=1 # 动态方式下的最小php-fpm进程数
pm.max_spare_servers=6 # 动态方式下的最大php-fpm进程数量
pm.status_path= /status
ping.path= /ping
ping.response=pong
request_terminate_timeout=100
request_slowlog_timeout=10
slowlog= /usr/local/php/var/log/$pool.log.slow
可能会遇到的问题:
1)ERROR: failed to load configuration file '/usr/local/php5/etc/php-fpm.conf'
解决方法:
cd /usr/local/php5/etc/
cp php-fpm.conf.default php-fpm.conf
2)ERROR: [pool www] cannot get uid for user 'www-data'
解决方法:
groupadd www-data
useradd -g www-data www-data
报错:No input file specified.
1.nginx配置文件错误:
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
改为
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
2.可能是访问文件没有权限:
chmod 755 index.php
3.php配置文件的错误:
FastCGI sent in stderr: "PHP message: PHP Warning: Unknown: open_basedir restriction in effect. File(/usr/local/nginx/html/index.php) is not within the allowed path(s): (.:/tmp/) in Unknown on line 0
PHP message: PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0
open_basedir:它可将用户访问文件的活动范围限制在指定的区域
将php.ini中的配置注释掉,重新启动fpm就可以访问了
网友评论