PHP执行外部服务命令(git)失败

PHP执行外部服务命令(git)失败

PHP执行外部服务命令(git)失败

  • 检查文件权限问题chownchmod(注意.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