我们的服务器同时运行网站的dev和prod版本。我有一个bash脚本,一旦我sudo就可以从CLI运行,但我无法从PHP b / c运行用户之间的实例区别。例如...如果我想比较我们的home.css,我可以从cli做到这一点:
diff -U 0 /home/devsite/www/_css/home.css /home/prodsite/www/home.css | grep -c ^@
如果它们相同则返回0,如果它们不同则返回非零。
在PHP中,我尝试这样做:
<?php
$dev_home = "/home/devsite/www";
$prod_home = "/home/prodsite/www";
$old_version = $dev_home .'/_css/home.css';
$new_version = $prod_home .'/_css/home.css';
$output = shell_exec("diff -U 0 $old_version $new_version | grep -c ^@");
echo "<pre>$output</pre>";
即使我知道文件不相同,它也总是返回0。如果我进入CLI并转到“devsiteuser”帐户,这是我从PHP运行“whoami”时显示的,并运行顶级CLI语句,我看到我没有/ home /中的文件的权限prodsite /
我遇到了问题,但我不确定解决方案。我应该向不同的用户说sud还是有某种权限我可以更改以允许它进行比较?