在正規的團隊開發流程中,測試伺服器測試是必不可少的乙個環節,如何簡單快捷的部署測試伺服器將是本文的重點。本文的實際環境是centos + php + mysql + svn,將通過兩種不同的途徑來實現部署測試伺服器的最終目的。
第一種,post-commit
post-commit本身是svn系列鉤子中的乙個,是為了更方便對svn使用中的常見操作進行處理,
建立測試伺服器的步驟如下
在hooks目錄,建立post-commit檔案, 並將其內容定義為類似如下
#!/bin/sh
export
lang
=en_us
.utf-8
svn checkout
--username kimi
--password password svn
: /wwwroot/projects.ismole.net
chown www
:www
/wwwroot
/projects
.ismole
.net -rf
說明:1. #!/bin/sh 說明是執行shell命令
2. export lang=en_us.utf-8是為了解決svn post commit 中文亂碼,設定本地化編碼。不過svn預設是utf-8編碼。如果字符集符合並且不設定將會出現錯誤,而執行不成功,錯誤標識為svn: can't convert string from native encoding to 'utf-8'
3. svn checkout --username kimi --password password svn: /wwwroot/projects.ismole.net 執行svn檢出操作
4. chown www:www /wwwroot/projects.ismole.net -rf 更改資料夾屬主為適合web server的。
裡面原有的**全部注釋掉.這裡可以執行shell命令,每次commit完成後都會呼叫此檔案。
第二種,php檢出svn
< ?php
header("cache-control:no-cache,must-revalidate");
$handle = popen('svn checkout --username kimi --password password svn: /wwwroot/projects.ismole.net', 'r');
$read = stream_get_contents($handle);
echo "
";
printf($read);
echo "< /pre>"
pclose($handle);
?>
其實這種方式只是利用php來執行linux命令,不過多描述。參考《php監控linux伺服器負載》:
綜合以上兩種方式,其目的都是通過將svn檢出,並放置在相應的web目錄下來實現的。這兩種相互比較而言,post-commit更為簡單快捷,無需更多的操作,但是對許可權控制力度很小,只要有svn的提交許可權就有部署測試伺服器的許可權;php方式相比麻煩一些,但是對使用者許可權的控制可以專門定製相應的程式來實現,幾乎可以實現任何角色對許可權的控制。
搭建SVN伺服器
搭建svn伺服器 安裝好後,建立 svn資料夾 進入svn資料夾,svnadmin create repository1 則出現乙個repository1資料夾,進入,看到conf資料夾,裡面有三個檔案,svnserve.conf配置 general anon access none auth ac...
SVN伺服器搭建
2.進入命令列並切換到subversion的bin目錄。cd d e program files subversion bin 3.建立版本庫 repository 使用subversion伺服器需要建立乙個版本庫,用來存放svn專案。svnadmin create e svn repos1 此命令...
svn 伺服器搭建
一 原始檔編譯安裝。原始檔共兩個,為 1.subversion 1.6.1.tar.gz 2.subversion deps 1.6.1.tar.gz 注意 兩個檔案版本必須一致,否則很容易產生問題.二 解壓檔案,並編譯配置 subversion 1.解壓檔案 root db2 tfhudong t...