Git 通过 PHP 拉取 shell_exec( ) 从 SSH shell 但不是从网络浏览器
Git pull via PHP shell_exec( ) works from SSH shell but not from web-browser
我有一个 PHP 脚本,它很简单:
$output = shell_exec('git pull https://****@bitbucket.org/****/****.git 2>&1');
print_r($output)
我可以通过 SSH 连接到我的主机,然后 运行 使用“PHP scriptname.php”,它工作正常,并告诉我一切都在几分之一秒内是最新的。
但是,当我尝试通过网络浏览器 运行 相同的 PHP 脚本时,它会无限期地挂起。
问题是您的网络服务器和 ssh shell 有不同的环境变量集。在这种情况下,问题是网络服务器的 $PATH
变量中缺少 git
。
要修复它,您可以将带有 git
二进制文件的目录添加到 $PATH
变量
set PATH=$PATH:/usr/local/cpanel/3rdparty/lib/path-bin
或者直接用完整路径调用
/usr/local/cpanel/3rdparty/lib/path-bin/git
至于 git 凭据 - 尝试找到负责任的环境变量。
我有一个 PHP 脚本,它很简单:
$output = shell_exec('git pull https://****@bitbucket.org/****/****.git 2>&1');
print_r($output)
我可以通过 SSH 连接到我的主机,然后 运行 使用“PHP scriptname.php”,它工作正常,并告诉我一切都在几分之一秒内是最新的。
但是,当我尝试通过网络浏览器 运行 相同的 PHP 脚本时,它会无限期地挂起。
问题是您的网络服务器和 ssh shell 有不同的环境变量集。在这种情况下,问题是网络服务器的 $PATH
变量中缺少 git
。
要修复它,您可以将带有 git
二进制文件的目录添加到 $PATH
变量
set PATH=$PATH:/usr/local/cpanel/3rdparty/lib/path-bin
或者直接用完整路径调用
/usr/local/cpanel/3rdparty/lib/path-bin/git
至于 git 凭据 - 尝试找到负责任的环境变量。