PHP执行外部服务命令(git)失败
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