首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > CVS SVN >

PHP调用Linux当地命令更新SVN

2012-07-04 
PHP调用Linux本地命令更新SVN为了方便PHP开发人员更新SVN代码到服务器,而无须每次让系统管理员通过svn帐户

PHP调用Linux本地命令更新SVN

为了方便PHP开发人员更新SVN代码到服务器,而无须每次让系统管理员通过svn帐户手动登录远程服务器更新代码,只需要作一个调用svn命令的php页,放到网站上,有一个网址可以访问,如 www.mywebsite.com/svn/svn.php

php代码:

?

<?php
??????? header("Cache-Control:no-cache,must-revalidate");
??????? echo "Begin SVN update >>>";
??????? $handle1 = popen('sudo svn up /server/webroot/app/application/ --username=user --password=mypasswd', 'r');
??????? $read1 = stream_get_contents($handle1);
??????? echo "<pre>";
??????? printf($read1);
??????? echo "</pre>";
??????? pclose($handle1);

?

??????? exec('sudo chown -Rf www:www /server/webroot/app/application/ ');

??????? exec('sudo chmod u+rwx /server/webroot/app/application/ -Rf');


??????? echo "End of SVN updates.";
?>

前提是首先在/server/webroot/app/application/出检出代码,如

svn checkout --username=user --password=mypasswd https://xxx.xxx.xxx.xxx/svn/project/code/

?

值得注意的是,一般php部署在apache httpd或者nginx下,通过url访问这个svn.php的执行权限是www,这样首先www用户没有权限使用svn命令,就需要添加一个sudo权限给www,然后在svn更新完代码后,修改文件夹的权限,如上面的:

exec('sudo chown -Rf www:www /server/webroot/app/application/ ');

?

通过如上设置,就达到了通过url自动更新代码到服务器端的效果。

?

热点排行