Php exec()函数不使用';t规则svn校验
我正在用php编写一些函数,使用exec()查询svnPhp 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
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