1 问题描述
前台功能中,点击按钮后,需要后台执行脚本,更新数据。但是在页面点击后,数据没有更新。
2 问题排查
(1) 程序中使用shell_exec();执行脚本命令。确认函数是否禁用,在php的配置中,修改禁用函数配置,PHP默认禁用shell_exec()、exec()等函数
(2) 修改禁用函数后,脚本执行仍然没有反应。排查文件权限,发现web程序的执行者是www用户,脚本文件的权限是root用户,查看php的运行着身份是www,修改php的运行用户身份。问题解决
3 修改PHP配置
// 修改PHP运行用户
// 1.打开配置文件,然后将用户改为root用户
# vi /www/server/php/74/etc/php-fpm.conf
listen.owner = root
listen.group = root
user = root
group = root
// 2.重启PHP
# php-fpm -R
3.重启后查看php的运行者身份
ps aux | grep php
[root@localhost etc]# ps -aux | grep php-fpm
root      13570  0.0  0.1 249732  7452 ?        Ss   23:26   0:00 php-fpm: master process (/www/server/php/74/etc/php-fpm.conf)
root      13571  0.2  0.4 256400 18244 ?        S    23:26   0:01 php-fpm: pool www
root      13572  0.0  0.1 249732  6576 ?        S    23:26   0:00 php-fpm: pool www
root      13573  0.0  0.1 249732  6576 ?        S    23:26   0:00 php-fpm: pool www
root      13574  0.0  0.1 249732  6576 ?        S    23:26   0:00 php-fpm: pool www
root      13575  0.0  0.1 249732  6576 ?        S    23:26   0:00 php-fpm: pool www
root      13587  0.0  0.1 249732  6576 ?        S    23:26   0:00 php-fpm: pool www
root      14087  0.0  0.0 112812   972 pts/1    S+   23:33   0:00 grep --color=auto php-fpm注意:重启之后,可能会报错,若报错,则执行如下的步骤
4 修改nginx服务器的nginx-conf文件
# 修改内容如下,也就是说php-fpm的用户和nginx的用户一致
user  www www;5 关闭php-fpm,然后重启
# 检查运行中的php-fpm进程
ps aux |grep php-fpm
# 把所有运行的php-fpm进程杀掉
killall php-fpm
# 重启php-fpm,若运行如下命令失败,则运行php-fpm -R命令
重启命令1:service php-fpm restart
重启命令2:php-fpm -R                  // 常用 智享笔记
								    智享笔记								 
                             
                             
                             
                            