PHP解决web程序中调用脚步命令无效 root启动PHP

文章描述了在前端点击按钮后,后台脚本无法更新数据的问题。作者通过检查发现PHP的shell_exec()函数被禁用,然后修改了PHP的禁止函数列表。尽管如此,问题仍未解决。进一步排查发现脚本文件的权限与PHP运行用户不匹配。为了解决这个问题,作者修改了PHP-fpm配置,将运行用户更改为root,并重启了服务,最终解决了脚本执行的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

前台功能中,点击按钮后,需要后台执行脚本,更新数据。但是在页面点击后,数据没有更新。

问题排查:

1。程序中使用shell_exec();执行脚本命令。确认函数是否禁用,在php的配置中,修改禁用函数配置,PHP默认禁用exec()等函数
2。修改禁用函数后,脚本执行仍然没有反应。排查文件权限,发现web程序的执行者是www用户,脚本文件的权限是root用户,查看php的运行着身份是www,修改php的运行用户身份。问题解决

修改PHP配置

// 修改PHP运行用户
// 1.打开配置文件
# 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值