• 利用Php ssh2扩展实现svn自动提交到测试服务器


    1.安装ssh2扩展 

    (1)window

    1. 下载 php extension ssh2
    下载地址 http://windows.php.net/downloads/pecl/releases/ssh2/0.12/
    根据自己PHP的版本去下载2. 解压完后,会有三个文件,libssh2.dll、php_ssh.dll、php_ssh2.pdb。
    3. 将 php_ssh.dll、php_ssh2.pdb 放到你的 php 扩展目录下 php/ext/ 下。
    4. 将libssh2.dll 复制到 c:/windows/system32 和 c:/windows/syswow64 各一份
    5. php.ini中加入 extension=php_ssh2.dll
    6. 重启服务器,即可使用php执行ssh连接操作了。
    查看phpinfo(),是否有显示php_ssh2扩展加载成功。

    (2)linux

    在linux下需要先安装扩展所需的依赖库
    1.安装libssh2
    wget http://www.libssh2.org/download/libssh2-1.7.0.tar.gz
    tar zxf libssh2-1.7.0.tar.gz
    cd libssh2-1.7.0
    ./configure --prefix=/usr/local/libssh2
    make && make install
    2.安装ssh2
    wget http://pecl.php.net/get/ssh2-0.12.tgz
    tar -zxvf  ssh2-0.12.tgz
    cd ssh2-0.12
    phpize
    ./configure --prefix=/usr/local/ssh2 --with-ssh2=/usr/local/libssh2
    make
    #执行完以上过程后,在当前目录下的modules目录下会生成一个ssh2.so文件,这就是扩展PHP所需要的,将该文件拷贝到PHP库的存储目录下在修改PHP的配置文件即可。
    cp modules/ssh2.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
    #注:PHP库的存储目录可能不同
    vim /usr/local/php/lib/php.ini
    添加extension=ssh2.so
    #重启php
    php -m |grep ssh #可查看是否安装成功

    2.ssh2扩展与svn钩子结合,实现文件文件夹的增删改

    (1)创建如下目录

    file存放源码(第一次需要co代码,之后再改用up)

    key存放密钥

    log存放错误信息,文件更新删除记录

    svn存放相关操作(https://github.com/getCodeWarehouse/php_ssh2)

    (2)在svn hooks中开启钩子,调用php脚本

    重要的事说三遍 要改权限~ 要改权限~要改权限~

     

    svn up 状态有 U D A,使用array_pop弹出无用数据

    更新和新增同为一类,需要判断是文件还是文件夹,选择不同的函数,值得注意的是ssh2_sftp_mkdir,如果远程机存在此文件夹会报错

    删除文件夹之所以使用rm命令,因为ssh2_sftp_rmdir不能删除非空文件夹,又不能加参数

    (3)测试提交svn

    更新文件成功

     

    如果更新速度慢,那就怪网络吧 _(┐「ε:)_

    相关代码:https://github.com/getCodeWarehouse/php_ssh2

    作者:诗经
    出处:http://www.cnblogs.com/zsj-zhangshijing/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    Python Requests-学习笔记(7)-Cookies
    Python Requests-学习笔记(6)-响应头
    Python Requests-学习笔记(5)-响应状态码
    Python Requests-学习笔记(4)-定制请求头和POST
    Python Requests-学习笔记(3)-处理json
    Python Requests-学习笔记(2)
    Python Request-学习笔记(1)
    编程就编程,我不参与政治
    非常漂亮的HTML5音乐播放器
    Dropzone.js实现文件拖拽上传
  • 原文地址:https://www.cnblogs.com/zsj-zhangshijing/p/5381775.html
Copyright © 2020-2023  润新知