相关文章推荐
深沉的伏特加  ·  Download a blob with ...·  4 月前    · 
高大的椰子  ·  C# 窗口关闭事件 - ...·  8 月前    · 
开朗的茄子  ·  分享PHP ...·  1 年前    · 
时尚的萝卜  ·  webpack ...·  1 年前    · 

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

3 人关注

我有一个带有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

我怎样才能解决这个问题呢?

linux
git
terminal
automation
Tim
Tim
发布于 2016-03-11
1 个回答
Harry
Harry
发布于 2016-03-11
已采纳
0 人赞同

你需要检查你在Apache中拥有的可用环境变量。你可以用

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

Apache以root身份启动,并切换到一个非特权用户,但环境变量没有为该用户设置 请看这里。

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