提问人:Tim 提问时间:3/11/2016 更新时间:3/11/2016 访问量:2803
通过脚本运行时出现 Git 全局配置问题
Git global config issue when run through script
问:
我有一个带有 Web 界面的 PHP 脚本,用于为现在自动化的流程提供输入。我试图通过 PHP 的 exec 执行 git 命令,将提交和推送到 Git 到此过程。我能够拉入远程存储库,添加文件并获取其状态。但是,我在尝试提交更改时遇到了问题。
当我尝试提交时,我得到:
[0] =>
[1] => *** Please tell me who you are.
[2] =>
[3] => Run
[4] =>
[5] => git config --global user.email "[email protected]"
[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
我该如何解决这个问题?
答:
3赞
Harry
3/11/2016
#1
您需要检查 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中,这只是设置文档根目录,因为它没有像普通登录(即读取配置文件等)那样设置环境变量。您可以在 Apache 中使用
设置环境 HOME /home/foo
评论
2赞
Tim
3/11/2016
谢谢。我将采用这种方法。我还发现以下工作: HOME=<myhomedir> git commit -m “我的消息”
评论