我目前正在尝试编写一个内部应用程序,只需单击一下即可将我们的项目部署到验收和生产服务器。 我们正在使用phing来实现这一目标。
目前我在查看(或进行svn导出)项目时遇到了困难。我使用以下命令:
<exec command="svn checkout ${svn.host} ${svn.exportdir} --force --username server --password <password>" />
在正常的命令行上这很好用,但是我被提示接受证书,因为主机使用https。问题是似乎没有自动接受证书的参数。
--trust-server-cert也没有帮助,因为证书因主机名不匹配而被拒绝,其中参数只绕过“CA未知” - 错误。
关于如何签出(或导出,更新......)项目的任何想法?
答案 0 :(得分:1)
只需进行一次手动结帐即可运行phing的用户。如果您愿意,可以结帐到/dev/null
。一旦您接受了证书,它将保持被接受(如果该用户有一个.subversion
目录来存储它。)
顺便说一句,您使用svn
命令行界面和ExecTask
而不是直接使用SvnCheckoutTask
的任何具体原因?
答案 1 :(得分:1)
在svn服务器上执行wget
HTTPS地址并永久接受证书。
$ wget https://svn.mydomain.com/repos
然后按 p 接受证书。
我还在PHP documentation about the problems with certificates添加了一些提示:
只需致电
svn checkout https://svn.mydomain.com/repos --force --username server --password iMPs+nana0kIF
在命令行上并接受证书。
当执行Phing命令的用户不是root用户时,可能仍然存在问题,那么您必须以运行Phing命令的用户身份执行此命令:
su wwwrun wget https://...
su wwwrun svn checkout https://...