php-fpm配置文件
- php-fpm配置文件路径:
/usr/local/php-fpm/etc/php-fpm.conf
,还包含了一个配置文件路径下的所有以.conf结尾的配置文件(子配置文件)/usr/local/php-fpm/etc/php-fpm.d/*.conf
。子配置文件会覆盖主配置文件。
php-fpm.ini配置文件
[root@localhost php-fpm.d]# ls /usr/local/php-fpm/etc/php.ini
- 如果不知道php.ini文件的位置,可以使用phpinfo 的方式来查看,在一个站点路径下写一个phpinfo.php的文件
vi /data/wwwroot/bbs.aaa.com/phpinfo.php
<?php
phpinfo();
?>
- 在浏览器中访问此页面,不但可以找到php.ini的位置,还可以看到PHP的编译参数。该操作实验环境可以,真实生产环境会带来很大的安全隐患,不建议使用。
- 真实生产环境中可以使用如下命令来查看php.ini的位置
/usr/local/php-fpm/bin/php -i | head
- php.ini是PHP运行的核心配置文件
- php.ini配置文件很长,差不多有2000行
####避免PHP的信息暴露在http的访问界面上#########
expose_php = Off
####避免将错误信息暴露在http的访问界面############
display_errors = Off
####在关闭display_errors后,为了方便排障,开启PHP错误日志(路径在php-fpm.conf中配置)
log_errors = On
php-fpm.conf配置文件
- pid文件
[global]
; Pid file ## pid文件
; Note: the default prefix is /usr/local/php-fpm/var ## pid文件默认路径
; Default Value: none
;pid = run/php-fpm.pid ## 设置pid文件位置
- 错误日志文件
; Error log file
; If it's set to "syslog", log is sent to syslogd instead of being written ## 如果设置为syslog,log就会发送给syslogd服务而不会写进文件里。
; into a local file.
; Note: the default prefix is /usr/local/php-fpm/var ## 错误日志默认存放路径
; Default Value: log/php-fpm.log
;error_log = log/php-fpm.log ##错误日志位置
- 日志级别
; Log level ## 日志级别包括下一行这些
; Possible Values: alert, error, warning, notice, debug
; Default Value: notice
;log_level = notice ## 默认日志级别是notice
- 子配置文件
include=/usr/local/php-fpm/etc/php-fpm.d/*.conf ## 在该路径下的所有子配置文件
www.conf配置文件
- pool 名字:[www]可以自定义,启动后,ps aux |grep php-fpm 在最右侧可以看到pool的名字。
[root@localhost etc]# ps aux |grep php-fpm
root 10534 0.0 0.1 230376 6036 ? Ss 07:54 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm 10535 0.0 0.1 230376 5944 ? S 07:54 0:00 php-fpm: pool www
php-fpm 10536 0.0 0.1 230376 5944 ? S 07:54 0:00 php-fpm: pool www
root 10543 0.0 0.0 112708 980 pts/1 S+ 07:55 0:00 grep --color=auto php-fpm
- listen 指定监听的ip:port 或者socket文件,这个地址或者socket文件需要和nginx配置文件里面的fastcgi_pass所指定的一致,否则在访问的时候就会报错502
- 如果是监听的socket文件,那么要保证nginx服务用户(nginx)对该socket文件有读写权限,否则也是会报错。
listen.mode 指定socket文件的权限
pm = dynamic 动态模式
pm.max_children = 5 最大进程数
pm.start_servers = 2 启动几个子进程
pm.min_spare_servers = 1 空闲时,最少不能少于几个子进程
pm.max_spare_servers = 3 空闲时,最多不能多于几个子进程
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_reporting] = E_ALL
- 配置slow日志
slowlog = /tmp/php.slow
request_slowlog_timeout = 1
- 配置open_basedir
php_admin_value[open_basedir] = /data/wwwroot/bbs.aaa.com/tmp
- 配置多个pool
定义多个配置文件,在配置文件中指定不同的listen地址 不同的 [pool_name]
[blog]
user = php-fpm
group = php-fpm
listen = /tmp/blog.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_reporting] = E_ALL
php_admin_value[open_basedir] = /data/wwwroot/blog.aminglinux.cc:/tmp
[bbs]
user = php-fpm
group = php-fpm
listen = /tmp/bbs.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] = on
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[error_reporting] = E_ALL
php_admin_value[open_basedir] = /data/wwwroot/bbs.aminglinux.cc:/tmp
- 补充:当使用curl命令访问https的网站
curl -k -H "host:bbs.aaa.com" https://127.0.0.1/phpinfo.php