我有两台服务器,我想为 svn 更新我的项目编写一个脚本。 服务器 A 是我的生产服务器,我尝试从 php 更新 svn。
我的服务器 B 是我的开发服务器。
<小时/>1.我的服务器 B 上的脚本工作正常:
$projet = $_POST['data'];
exec('ssh user@myserver "echo myPassword | sudo -S ./svnup.sh '.$projet.'"',$out,$ret);
=> 没关系。
<小时/>2.我在我的服务器 A 上编写了一个脚本,以便直接从互联网更新(我的服务器 B 是本地的):
$projet = $_POST['data'];
exec('sudo -S ./svnup.sh $project',$out);
var_dump($out[0]);
die;
=> 不起作用,响应 = NULL
<小时/>如果有人可以帮助我,请先致谢。
最佳答案
您的问题是实际运行该命令的用户。在您的第一个示例中,它是“user”,在第二个示例中,它是网络服务器(“apache”或“nobody”,具体取决于主机配置)。通常Web服务器缺乏写入权限,因此svn更新失败。
没有人禁止您直接在服务器 A 上使用服务器 B 中的示例。实际上,您将验证为具有运行 svn update 相关权限的“用户”,即使它是从同一服务器调用的。
关于php - svn 从 php 文件更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24078609/