PHP执行外部服务命令(git)失败
- 检查文件权限问题
chown和chmod(注意.git目录下的权限) - 检查用户权限问题,PHP是以哪个用户运行的,如果是apache模块方式运行就查看
httpd.conf,如果是nginx就查看php-fpm.conf - 我的具体问题是我的php-fpm是以
nobody用户执行的,所以没权限执行像git , npm等命令,解决方法为加入到sudo(以系统管理员身份)运行。但是,sudo运行要输入密码,为了sudo免密运行,可以编辑/etc/sudoers,找到这行,然后给nobody用户设置免密执行的目录,多个就用逗号隔开:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
nobody ALL= NOPASSWD:/usr/local/nginx/bash/update.admin.sh,NOPASSWD:/usr/bin/git

本文详细介绍了如何解决PHP在执行外部服务命令如git时遇到的权限问题,特别是当PHP-FPM以nobody用户运行时。通过调整sudo配置实现免密码执行特定命令,确保服务正常运行。
77

被折叠的 条评论
为什么被折叠?



