PHP-FPM配置文件(pool)路径:
/usr/local/php-fpm/etc/php-fpm.d/www.conf
PHP的安装路径:
/usr/local/php-fpm
一、改变侦听的端口
vi www.conf
以下语句定义了侦听的端口号
listen = 127.0.0.1:9000
可以修改成你指定的端口号。同时修改nginx配置文件为同样的端口号,服务可以照常运行。
使用脚本重启服务
/etc/init.d/php-fpm restart
查看一下进程和端口是否启动或侦听中。
以下是nginx主机的配置文件中侦听端口的语句,根据上面的端口号修改。
vi /etc/nginx/conf.d/*.conf
fastcgi_pass 127.0.0.1:9000;
重启nginx;
pkill nginx
/sbin/nginx
二、改变侦听socket
vi /usr/local/php-fpm/etc/php-fpm.d/www.conf
;listen = 127.0.0.1:9000 #注释掉;
listen = /tmp/www.socket #新增语句,文件名可自定义;
;listen.owner = php-fpm #默认;
;listen.group = php-fpm #默认;
listen.mode = 0666 #0660改成0666,www.socket由root生成,php-fpm需要读写所以改成666,而且nginx应该也需要读写这个文件;
重启php-fpm
修改nginx主机的配置文件中侦听端口的语句
vi /etc/nginx/conf.d/*.conf
#fastcgi_pass 127.0.0.1:9000 #注释掉;
#fastcgi_pass unix:/tmp/bbs.socket; #新增语句;
重启nginx;
pkill nginx
/sbin/nginx
三、php-fpm错误日志用利于排障
php_flag[display_errors] = off ;错误直接显示在页面上,一般是off;
php_admin_value[error_log] = /var/log/fpm-php.www.log ;将错误保存在文件里,需要touch文件,权限777;
php_admin_flag[log_errors] = on
php_admin_value[error_reportion] = E_ALL ;将所有错误都保存;
四、ini配置文件
路径:
/usr/local/php-fpm/etc/php.ini
命令查找ini配置文件:
usr/local/php-fpm/bin/php -i |head
phpinfo查找ini配置文件:
页面打开phpinfo页面,显示php所有设置信息;页面写入如下内容:
<?php
phpinfo();
?>
~
禁用phpinfo
vi /usr/local/php-fpm/etc/php.ini
添加phpinfo在语句里,如下:
disable_functions = phpinfo
五、slowlog
在www.conf里,添加slowlog保存路径,重载后会记录slowlog。
slowlog = /tmp/php.slow
request_slowlog_timeout = 1 ;php解释超过1秒就记录下来;
可以在php页面里,添加sleep函数测试slowlog。
<?php sleep (2); ?>六、open_basedir和多个pool
我们将不同的网站放在一台服务器上,在nginx里配置了多个文件,但是为了让不同网站更安全,需要将他们的php功能分开,而且php能访问的目录也分开。
即使nginx配置了多个网站,还是可以通过同一个端口通信,即多个网站都通过
listen = 127.0.0.1:9000 ;或
listen = /tmp/www.socket
同一个接口实现php功能。
open_basedir的功能就是将php能访问的目录指定。
要实现以上说明的功能,需要配置多个pool,分别设置open_basedir。
下面展示两个pool文件。(bbs 和 blog)
默认的配置文件包括上面所说的内容都包括在以下配置模板(删除所有注释了的内容):
[bbs]
user = php-fpm
group = php-fpm
listen = /tmp/bbs.socket ;据此配置nginx;
listen.mode = 0666
pm = dynamic ;php的运行模式,在配置文件里有详细说明;
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
slowlog = /tmp/php.slow
request_slowlog_timeout = 1
php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[error_reportion] = E_ALL
php_admin_value[open_basedir] = /data/wwwroot/bbs.tany.com:/tmp ;限制php访问的目录;
[blog]
user = php-fpm
group = php-fpm
listen = /tmp/esther.socket
listen.mode = 0666
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
slowlog = /tmp/php.slow
request_slowlog_timeout = 1
php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[error_reportion] = E_ALL
php_admin_value[open_basedir] = /data/wwwroot/www.estherdaily.com:/tmp
记得重启nginx和php。
配置好以后,可以查看到两个pool:
ps aux |grep php