Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php exec()函数不使用';t规则svn校验_Php_Svn_Exec - Fatal编程技术网

Php exec()函数不使用';t规则svn校验

Php exec()函数不使用';t规则svn校验,php,svn,exec,Php,Svn,Exec,我正在用php编写一些函数,使用exec()查询svn The commands exec("svn list ".$myurl) works. 现在,我尝试使用checkout命令获取svn存储库上的路径。 当我将命令“svn checkout last version”直接放在控制台中时,它就工作了 但当我使用exec()从php脚本执行此操作时,如下所示: exec("svn checkout ".$myurl, $dir) 它不起作用 你有什么想法吗?这可能有多种原因 不允许运行P

我正在用php编写一些函数,使用exec()查询svn

The commands exec("svn list ".$myurl) works.
现在,我尝试使用checkout命令获取svn存储库上的路径。 当我将命令“svn checkout last version”直接放在控制台中时,它就工作了

但当我使用exec()从php脚本执行此操作时,如下所示:

exec("svn checkout ".$myurl, $dir)
它不起作用


你有什么想法吗?

这可能有多种原因

  • 不允许运行PHP的用户写入要签出的目录

  • SVN存储库需要的登录凭据不是为PHP运行的用户缓存的

  • SVN签出过程开始,但需要一些额外的输入,如带有未签名证书的可怕的“Doyouwantacepthiscertificate”

尝试向命令中添加
2>&1
,将stderr重定向到stdout,然后查看
$dir
。还可以使用
$return\u var
参数来执行此操作


正如Jacob指出的,始终对命令参数使用
escapeshellargs()

检查您试图写入签出副本的位置的权限?PHP脚本可能以shell以外的其他用户身份运行,因此缺少写入权限。谢谢您的回答。我认为PHP用户不允许写入目录。你知道如何修复它吗???@bahamut如果你有权访问服务器,你可以更改目录权限。如果没有,您可以尝试在FTP客户端的目录上执行
chmod 777
,只需注意,这使服务器上的每个人都可以写入目录。
chmod 777您的/directory/that/you/want/to/do/the/checkout/in