以另一个用户身份运行一次命令:
sudo -u www-data PHP script.PHP
如果你是root用户,这应该有效.
至于总是运行PHP作为www-data,有几种可能性.您可以创建一个简单的包装器shellcript.如果/usr/bin/PHP只是/usr/bin/PHP5或类似软件的软链接,那就更简单了.只需用这样的脚本替换软链接(不是文件PHP5):
#!/bin/sh
sudo -u www-data PHP5 $*
return $?
虽然没有经过测试.另请注意,这将始终尝试以用户www-data运行PHP5,即使用户可能不是root用户,也可能没有权限这样做.它也可能不是你真正想要的.尝试执行PHP时,某些已安装的服务可能会遇到问题.
一个(可能更好)的解决方案只是将它应用于root可能是单独留下软链接/usr/bin/PHP并将脚本放在/ root / bin中.然后通过.bashrc,.profile或类似文件将该文件夹添加到PATH.如果您有/etc/skel/.profile,那可能会指出如何完成:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
一旦它出现在你的.bashrc,.profile或类似内容中,你打开的每个新shell都允许你直接执行$HOME / bin中的任何可执行文件(x)(root用/ root / bin).
提示:您可能希望将包装脚本命名为PHPwww,因此您明确指定PHP script.PHP或PHPwww script.PHP来决定是否需要常规或sudo’ed PHP.
另一个解决方案是一个简单的别名.将它放在.bashrc,.profile或类似的地方:
alias PHPwww='sudo -u www-data PHP'