程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 利用Php ssh2擴展實現svn自動提交到測試服,ssh2svn

利用Php ssh2擴展實現svn自動提交到測試服,ssh2svn

編輯:關於PHP編程

利用Php ssh2擴展實現svn自動提交到測試服,ssh2svn


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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved