中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
ubuntu下SVN服務(wù)器安裝配置
一、SVN安裝
1.安裝包
$ sudo apt-get install subversion

2.添加svn管理用戶及subversion組
$ sudo adduser svnuser
$ sudo addgroup subversion
$ sudo addgroup svnusersubversion       

3.創(chuàng)建項(xiàng)目目錄
$ sudo mkdir /home/svn
$ cd /home/svn
$ sudo mkdir fitness
$ sudo chown -R root:subversion fitness
$ sudo chmod -R g+rws fitness

4.創(chuàng)建SVN文件倉庫
$ sudo svnadmin create /home/svn/fitness

5.訪問方式及項(xiàng)目導(dǎo)入:
$ svn co file:///home/svn/fitness
或者
$ svn co file://localhost/home/svn/fitness
* 注意:
如果您并不確定主機(jī)的名稱,您必須使用三個斜杠(///),而如果您指定了主機(jī)的名稱,則您必須使用兩個斜杠(//).
//--
下面的命令用于將項(xiàng)目導(dǎo)入到SVN 文件倉庫:
$ svn import -m "New import" /home/svn/fitnessfile:///home/svnuser/src/fitness
一定要注明導(dǎo)入信息

//--------------------------//
6.訪問權(quán)限設(shè)置
修改 /home/svn/fitness目錄下:
svnserve.conf 、passwd 、authz三個文件,行最前端不允許有空格
//--
編輯svnserve.conf文件,把如下兩行取消注釋
password-db = password
authz-db = authz

//補(bǔ)充說明
# [general]
anon-access = read
auth-access = write
password-db = passwd
其中 anon-access 和 auth-access分別為匿名和有權(quán)限用戶的權(quán)限,默認(rèn)給匿名用戶只讀的權(quán)限,但如果想拒絕匿

名用戶的訪問,只需把 read 改成 none 就能達(dá)到目的。

//--
編輯/home/svnuser/etc/passwd  如下:
[users]
mirze = 123456
test1 = 123456
test2 = 123456
//--
編輯/home/svnuser/etc/authz如下
[groups]
admin = mirze,test1
test = test2
[/]
@admin=rw
*=r
這里設(shè)置了三個用戶mirze,test1,test2密碼都是123456
其中mirze和test1屬于admin組,有讀和寫的權(quán)限,test2屬于test組只有讀的權(quán)限

7.啟動SVN服務(wù)
svnserve -d -r /home/svn
描述說明:
-d 表示svnserver以“守護(hù)”進(jìn)程模式運(yùn)行
-r 指定文件系統(tǒng)的根位置(版本庫的根目錄),這樣客戶端不用輸入全路徑,就可以訪問版本庫
如: svn://192.168.12.118/fitness

這時SVN安裝就完成了.
局域網(wǎng)訪問方式:
例如:svn checkout svn://192.168.12.118/fitness --username mirze--password 123456 /var/www/fitness


-----------------------------------------------------------------------

二、HTTP:// [apache]
1.安裝包 [已安裝subversion]
$ sudo apt-get install libapache2-svn

創(chuàng)建版本倉庫:
sudo svnadmin create /目錄地址
目錄地址必須存在,這個就是保存版本倉庫的地方,不同的版本倉庫創(chuàng)建不同的文件夾即可,比如:
sudo svnadmin create /home/svn/project
本來/home/svn/project這個目錄下什么都沒有,執(zhí)行下面的命令之后再去看一下,多出一些文件和文件夾,我們需要操作的是conf這個文件夾,這個文件夾下有一個文件,叫做passwd,用來存放用戶名和密碼。
然后把這個版本倉庫目錄授權(quán)給apache讀寫:
sudo chown -R www-data:www-data /目錄地址
然后來到打開apache配置文件:
sudo gedit /etc/apache2/mods-available/dav_svn.conf

加入如下內(nèi)容:
<Location /project>
DAV svn
SVNPath /home/svn/project
AuthType Basic
AuthName “myproject subversion repository”
AuthUserFile /home/svn/project/conf/passwd
#<LimitExcept GET PROPFIND OPTIONSREPORT>
Require valid-user
#</LimitExcept>
</Location>

location說的是訪問地址,比如上述地址,訪問的時候就是
http://127.0.0.1/project
其中有兩行被注釋掉了,以保證每次都需要用戶名密碼。
最后一步就是創(chuàng)建訪問用戶了,建議將用戶名密碼文件存放在當(dāng)前版本倉庫下conf文件夾下,這樣版本倉庫多的時候無至于太亂。
因?yàn)閏onf文件夾下已經(jīng)存在passwd文件了,所以直接添加用戶:
sudo htpasswd -c /home/svn/project/conf/passwd test
然后輸入兩遍密碼,laoyang這個用戶就創(chuàng)建好了。
打開/home/svn/project/conf/passwd這個文件,會開到形如如下形式的文本:
test:WEd.83H.gealA  //后面是加密后的密碼。
創(chuàng)建以后,再次需要往別的版本倉庫添加這個用戶,直接把這一行復(fù)制過去就可以了。
重啟apache就可以了。
sudo /etc/init.d/apache2 restart


-----------------------------------------------------------------------

三、同步更新 [勾子]

同步程序思路:用戶提交程序到SVN,SVN觸發(fā)hooks,按不同的hooks進(jìn)行處理,這里用到的是post-commit,利用post-commit到代碼檢出到SVN服務(wù)器的本地硬盤目錄,再通過rsync同步到遠(yuǎn)程的WEB服務(wù)器上。

知識點(diǎn):
1、SVN的hooks
# start-commit 提交前觸發(fā)事務(wù)
# pre-commit 提交完成前觸發(fā)事務(wù)
# post-commit 提交完成時觸發(fā)事務(wù)
# pre-revprop-change 版本屬性修改前觸發(fā)事務(wù)
# post-revprop-change 版本屬性修改后觸發(fā)事務(wù)
通過上面這些名稱編寫的腳本就就可以實(shí)現(xiàn)多種功能了,相當(dāng)強(qiáng)大。
2、同步命令rsync的具體參數(shù)使用
3、具有基個語言的編程能力bash python perl都可以實(shí)現(xiàn)

post-commit具體實(shí)現(xiàn)細(xì)節(jié)
post-commit腳本

 編輯文件:sudo vim/home/svn/fitness/hooks/post-commit

注意:編輯完成post-commit后,執(zhí)行:sudochmod 755 post-commit

內(nèi)容:

#!/bin/sh
exportLANG=zh_CN.UTF-8
sudo /usr/bin/svn update/var/www/www --username mirze --password 123456

#Set variable
SVN=/usr/bin/svn
WEB=/home/test_nokia/
RSYNC=/usr/bin/rsync
LOG=/tmp/rsync_test_nokia.log
WEBIP="192.168.0.23"
exportLANG=en_US.UTF-8
 
#update the code from theSVN
$SVN update $WEB --usernameuser --password  password
#If the previous commandcompleted successfully, to continue the following
if [ $? == 0]
then
   echo""    >> $LOG
   echo `date` >> $LOG
   echo "##############################">> $LOG
   chown -R nobody:nobody /home/test_nokia/
   #Synchronization code from the SVN server to the WEB server,notes:by the key
   $RSYNC -vaztpH --timeout=90  --exclude-from=/home/svn/exclude.list $WEB root@$WEBIP:/www/>> $LOG
fi

以上是具體的post-commit程序
注意事項(xiàng):
1、一定要定義變量,主要是用過的命令的路徑。因?yàn)镾VN的考慮的安全問題,沒有調(diào)用系統(tǒng)變量,如果手動執(zhí)行是沒有問題,但SVN自動執(zhí)行就會無法執(zhí)行了。
2、SVN update 之前一定要先手動checkout一份出來,還有這里一定要添加用戶和密碼如果只是手動一樣會更新,但自動一樣的不行。
3、加上了對前一個命令的判斷,如果update的時候出了問題,程序沒有退出的話還會繼續(xù)同步代碼到WEB服務(wù)器上,這樣會造成代碼有問題
4、記得要設(shè)置所屬用戶,因?yàn)閞sync可以同步文件屬性,而且我們的WEB服務(wù)器一般都不是root用戶,用戶不正確會造成WEB程序無法正常工作。
5、建議最好記錄日志,出錯的時候可以很快的排錯
6、最后最關(guān)鍵的數(shù)據(jù)同步,rsync的相關(guān)參數(shù)一定要清楚,這個就不說了。注意幾個場景:
這里的環(huán)境是SVN服務(wù)器與WEB服務(wù)器是開的
把SVN服務(wù)器定義為源服務(wù)器 WEB服務(wù)器為目的服務(wù)器
場景一、如果目的WEB服務(wù)器為綜合的混雜的,像只有一個WEB靜態(tài)資源,用戶提交的,自動生成的都在WEB的一個目錄下,建議不要用–delete這個參數(shù)
上面這個程序就是這樣,實(shí)現(xiàn)的是源服務(wù)器到目的服務(wù)器的更新和添加,而沒有刪除操作,WEB服務(wù)器的內(nèi)容會多于源SVN的服務(wù)器的
場景二、實(shí)現(xiàn)鏡像,即目的WEB服務(wù)器與源SVN服務(wù)器一樣的數(shù)據(jù),SVN上任何變化WEB上一樣的變化,就需要–delete參數(shù)
場景三、不需要同步某些子目錄,可能有些目錄是緩存的臨時垃圾目錄,或者是專用的圖片目錄(而不是樣式或者排版的)要用exclude這個參數(shù)
注意:這個參數(shù)的使用不用寫絕對路徑,只要目錄名稱就行 aa代表文件 aa/ 代表目錄 ,缺點(diǎn)就是如果有多個子目錄都是一樣的名稱那么這些名稱就都不會被同步
建議用–exclude-from=/home/svn/exclude.list 用文件的形式可以方便的添加和刪除
exclude.list

.svn/
.DS_Store
images/

利用SVN的鉤子還可以寫出很多的程序來控制SVN如代碼提交前查看是否有寫日志,是否有tab,有將換成空格,是否有不允許上傳的文件,是否有超過限制大小的文件等等。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Ubuntu7.10下Subversion的安裝、配置與使用
ubuntu server下搭建svn服務(wù)以及遷移的方法
Ubuntu Server 安裝 Subversion實(shí)現(xiàn)精細(xì)的目錄訪問權(quán)限控制
通過Apache來訪問SVN的配置方法
Ubuntu下SubVersion服務(wù)安裝設(shè)置
征服 Apache SVN
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服