通过脚本运行Git全局配置问题

时间:2016-03-10 20:34:05

标签: linux git terminal automation

我有一个带有Web界面的PHP脚本,用于为现在自动化的流程提供输入。我试图通过PHP的exec执行git命令,在这个过程中包含提交和推送给Git。我能够拉入远程存储库,添加文件并获取它的状态。但是,我在尝试提交更改时遇到了问题。

当我尝试提交时,我得到:

[0] => 
[1] => *** Please tell me who you are.
[2] => 
[3] => Run
[4] => 
[5] =>   git config --global user.email "you@example.com"
[6] =>   git config --global user.name "Your Name"
[7] => 
[8] => to set your account's default identity.
[9] => Omit --global to set the identity only in this repository.
[10] => 
[11] => fatal: unable to auto-detect email address (got 'tim@tim.(none)')

据我所知,Git没有在〜/ .gitconfig中解析我的全局配置,它可以在通过终端正常执行时执行。我在我的用户和组下运行Apache。当我尝试运行上面建议的命令时,我得到:

[0] => fatal: $HOME not set

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

您需要检查Apache中的可用环境变量。您可以使用

执行此操作

http://php.net/manual/en/function.get-defined-vars.php

Apache以root身份启动并切换到非特权用户但是没有为该用户设置env变量请参见此处..

https://serverfault.com/questions/179833/apache2-user-home-directory-lock-to-root

注意,linux系统上的主目录在/ etc / passwd中设置。这是一个例子

www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

但是在Apache中,这只是将文档设置为root,因为它没有像正常登录那样设置env变量,即读取配置文件等。您可以使用

在Apache中设置env变量

SetEnv HOME / home / foo