`

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自动更新代码到服务器端的效果。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics