php配置调整
重启命令
systemctl restart php-fpm多个php版本重启
ps -aux | grep php-fpm
示例:简单重启php7.4
kill -USR2 468197提示
php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,所以不要再看这种老掉牙的命令了,需要使用信号控制:
master进程可以理解以下信号
INT, TERM 立刻终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 平滑重载所有worker进程并重新载入配置和二进制模块
上面方案一般是没有生成php-fpm.pid文件时使用,如果要生成php-fpm.pid,使用下面这种方案:
上面master进程可以看到,matster使用的是/usr/local/php/etc/php-fpm.conf这个配置文件,cat /usr/local/php/etc/php-fpm.conf 发现:

pid的文件路径位于 /usr/local/php/var/run/php-fpm.pid
先使用
kill -USR2 pid就会生成pid文件 以后就可以使用如下命令重启或者关闭
关闭:
kill -INT $(cat /usr/local/php/var/run/php-fpm.pid)重启:
kill -USR2 $(cat /usr/local/php/var/run/php-fpm.pid)php其他版本
示例:
ps -aux | grep php-fpmcat /usr/local/php7.4/etc/php-fpm.conf可以查看pid文件
/usr/local/php7.4/var/run/php-fpm.pid
cat /usr/local/php7.4/var/run/php-fpm.pid关闭:
kill -INT $(cat /usr/local/php7.4/var/run/php-fpm.pid)重启:
kill -USR2 $(cat /usr/local/php7.4/var/run/php-fpm.pid)备份配置文件
cp /usr/local/php/etc/php.ini /usr/local/php/etc/php.ini.bak其他版本php
示例:
cp /usr/local/php7.4/etc/php.ini /usr/local/php7.4/etc/php.ini.bak1错误和错误日志
;第一步:保留所有错误(让PHP能检测到所有错误,为日志记录做准备)
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
;第二步:对用户隐藏错误(核心!不显示给前端)
display_errors = Off
; 第三步:开启错误日志(所有检测到的错误都记录到日志)
log_errors = On
; 第四步:指定日志路径(容器内建议写这个路径,方便挂载)
error_log = /var/log/php/error.log
; 可选:日志最大长度(避免日志撑爆磁盘)
log_errors_max_len = 1024mkdir -p /var/log/php && touch /var/log/php/error.log && chown -R www:www /var/log/php && chmod -R 755 /var/log/php && chmod 644 /var/log/php/error.loginit_php_log.sh
#!/bin/bash
# 初始化PHP日志目录和权限
mkdir -p /var/log/php
touch /var/log/php/error.log
chown -R www:www /var/log/php
chmod -R 755 /var/log/php
chmod 644 /var/log/php/error.log
echo "PHP日志目录初始化完成!"chmod +x init_php_log.sh && ./init_php_log.sh服务器宿主机的权限适配
将来把容器日志目录挂载到宿主机时可以在宿主机调整权限:
运行
# 宿主机创建目录,挂载到容器
mkdir -p /data/youhu/php_log
docker run -v /data/youhu/php_log:/var/log/php ... youhu-xueer
# 宿主机给挂载目录设权限(和容器内www用户映射)
chown -R 1000:1000 /data/youhu/php_log # 1000是容器内www用户的UID/GID提示
以上只是示例,一定要查 uid 和gid
命令: id www
实战验证小技巧(避免踩坑)
如果怕记混 UID,也可以用「容器内直接查」的方式写脚本:
bash
运行
# 宿主机执行:自动查询容器内www的UID,然后设置权限
WWW_UID=$(docker exec youhu-lnmp id -u www) # 只查UID
WWW_GID=$(docker exec youhu-lnmp id -g www) # 只查GID
chown -R $WWW_UID:$WWW_GID /data/youhu/php_log
echo "✅ 权限设置完成!容器 www UID: $WWW_UID,宿主机目录权限已同步"时区
地区的简写:
中华人民共和国:PRC
大不列颠及北爱尔兰联合王国:UTC
美利坚合众国:USA
原来
date.timezone = PRC修改
date.timezone = Asia/Shanghai3上传文件检查
接收上传文件信息的方法:$_FILES 专门用于接收文件信息
file_uploads = On 设置服务器是否允许上传文件
upload_max_filesize = 50M 设置服务器允许上传的单个文件最大大小
post_max_size = 50M 设置单个表单允许上传的最大值
max_file_uploads = 20 表单允许上传的最大文件数量
upload_tmp_dir = /data/php/tmp 临时文件存储路径
4开启php呗禁用的一些函数
;disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server修改后
disable_functions = passthru,system,chroot,chgrp,chown,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,popepassthru