我无法让 shell_exec ( 'svn up /var/www/mydirectory' ) 工作。出于某种原因,什么也没有发生。我很想认为这是一个权限问题,但不确定。我可以毫无问题地执行它:shell_exec ('svn help')
问问题
787 次
1 回答
2
这可能是因为文件权限问题。在大多数 PHP 配置中,/var/www/* 是 PHP 用户不可写的。svn up /var/www/...
尝试写入此目录,而svn help
没有。
作为安全预防措施,PHP 用户不可写入 /var/www/。使其可写会使您的网站更容易受到攻击,因为如果在您的 PHP 脚本中发现错误,那么攻击者更有可能完全控制您的服务器。(因为他们可以在您的服务器上编写自己的 PHP 代码)
如果您的 /var/www/mydirectory 不包含任何需要执行的 PHP 代码,那么它应该是安全的chmod -x+w mydirectory/
。如果 mydirectory 包含确实需要执行的 PHP 代码,并且您已评估没有更安全的方法来执行此操作,则使用chmod +w mydirectory/
.
请注意,我建议创建一个 cron 作业或使用其他方式以svn up
其他用户身份运行该操作,并将其对 PHP 进程保持只读状态。
于 2011-02-09T05:22:24.063 回答