記得在大學期間,使用過SVN功能,當時覺得很不錯,但是慢慢的接觸了FTP之后很久沒涉及到svn服務了,今天剛剛在新項目上需要部署新環境,還需要在linux搭建svn服務,其實安裝完寶塔我的第一反應是去軟件商城搜索svn,別說還真有,只是收費,抱著學習的態度打算在寶塔linux面板上手動安裝svn服務,為防止后期還會涉及重新搭建svn,所以記錄下此次的安裝過程。
寶塔安裝不贅述了,不會的參考以往的教程,此處省略幾百字,安裝寶塔,部署環境之后,我們使用SecureCRT或者寶塔面板的終端命令都可以,手動安裝svn控制軟件。
第一步:
通過yum命令安裝svnserve
yum -y install subversion
此命令會全自動安裝svn服務器相關服務和依賴,安裝完成會自動停止命令運行,如圖:
第二步:
建立版本庫目錄,命令如下:(目錄可自擬)
mkdir /www/svndata
在svn版本庫目錄下啟動svn,命令如下:
svnserve -d -r /www/svndata
如果命令完成后您的服務器顯示“svnserve: E000098: Can't bind server socket: Address already in use”應該是啟用了,暫時可以不理會,然后我們再去創建版本庫。
創建一個新的版本庫baseData,命令如下:
svnadmin create /www/svndata/baseData
安裝和部署完成后,我們需要配置相關權限及賬號密碼,我們先配置svn訪問密碼,在/www/svndata/baseData/conf/目錄下 找到 password 文件添加訪問賬號密碼:
# 用戶名 = 密碼
talklee = talklee.com
賬號密碼設置完成后我們需要對配置文件設置權限:
在/www/svndata/baseData/conf/目錄下找到,svnserve.conf 文件,添加訪問權限:
anon-access = read
auth-access = write
password-db = passwd
realm = My First Repository
到此,配置已經全部完成,賬號信息已經添加成功 更改 svnserver.conf 時需要重啟SVN服務才生效,更改authz,passwd文件時則不需要重啟服務,
第四步同步庫文件:
方法有兩種,一種敲代碼,不建議這種,我第一次安裝這個沒有意思,僅供參考吧。
方法一:
svn checkout svn://IP地址/baseData /www/wwwroot/165933.com
把baseData文件同步到對應的網站目錄,如圖,指定之后文件的內容也將同步。
方法二(建議使用此方案):
在 /www/svndata/baseData/hooks/ 目錄下新建 post-commit 文件(空白文件,沒有后綴)用于將svn中的文件同步到系統運行目錄下,代碼如下:
#!/bin/sh
SVN=/usr/bin/svn
WEB=/www/wwwroot/165933.com
export LANG=en_US.UTF-8
$SVN update $WEB --username talklee --password talklee.com
WEB指向網站目錄即可,這個是自己的不要照搬,粘貼修改代碼之后保存,如圖:
順手把svn重啟命令附上:
查看svn的進程,篩選svn的進程命令:
ps -ef|grep svn
殺死主進程,殺死進程的命令用
kill -9 進程id
如圖ID是3280,就使用 kill -9 3280 ,每個人程序不一樣所以id也是不一樣的,不要直接使用我這個,重新啟動svn,命令:
svnserve -d -r /www/svndata
目錄參考您的svn目錄,參考教程第一步,還是看不懂就看看圖吧,差不多是這個意思,第八行目錄錯了,別照著敲上去。
服務器端準備完成,我們使用SVN軟件,鏈接測試,svn地址:svn://ip地址/baseData
鏈接完成后,隨便新建了文件,然后右鍵菜單選擇更新,會彈出提示框,輸入之前設置的賬號密碼:
PS:記得在防火墻開放SVN默認端口號:3690
上傳完成查看網站根目錄,刷新如圖:
整理再說下,本地上傳的文件可以的網站目錄看見,但是網站目錄現有的文件,無法在本地SVN文件夾中看到,如果想要同步,把服務器文件刪除,在本地SVN文件夾中添加,然后更新即可達成同步的效果,好了,太折磨人了,我估計同步文件的命令貌似可以省略,直接新建文件即可,但是未測試,等后期安裝的時候看看是否可行。
另外因為本地測試項目所需給了文件夾一個777權限,你們大可不必,這個權限風險太大,要慎重。教程寫完了,腦細胞死了一大堆啊,太難了,有問題可以留言反饋吧,反正我也解決不了,我去喝杯咖啡,歇會,另外此次安裝僅限于在寶塔linux面板安裝,其他系統未測試。
原文地址:https://www.talklee.com/blog/600.html