Ubuntu 搭建Subversion+Apache+WebSvn系列 – 基础
继上篇的《Raspberry Pi 搭建SubVersion》,树莓派并不方便随时随地访问,放在家里随时都有可能断网或者断电,带到公司宿舍路由器却不支持端口映射。
树莓派本身的性能即使在局域网也是相当鸡肋的,当然他本身的扩展性不是一般的强,只要你愿意动手做,什么事都有可能。
放弃使用树莓派后,也在Azure搭建了Subversion,但是由于公司电脑上网都是HTTP代理上网,不能使用SVN的自带协议(svn://)。
正准备配Apache的时候,才发现服务器超额使用3块多,都是硬盘IO写入过多,坑啊,具体原因就不说了。
不过经一事长一智,将源码建立在免费的服务器上是很不靠谱的,好像其他人都想到,就我没想到的样子。
唉,即使国内VPS系统装上Linux跟装Windows,价格还是差不多的,正不正版先不说,Linux出名稳定和节省资源,淘宝上能找到的基本上都是坑(猜的),好的VPS靠得是人推薦出來,很少會在淘寶上買。對於主機商來說,在自己的網頁系統上接入支付寶就夠了,沒必要去弄什麼淘寶店鋪,反而給一些不懷好意的人惡意差評。
扯淡夠了,開始說下需要準備的東西吧。
1、暢通的網絡
2、很多首好聽的歌曲和耳機一副
3、PuTTY 軟件(下載地址)
4、純淨Ubuntu
我是從系統剛裝好開始配。
5、服務器一台(內存最少512M,突發內存最少756M,獨立IP)
內存:為了以後可能裝上更多的功能。事實上強迫症發作,內存準備滿了就受不了,自己根據實際情況選擇服務器配置吧。
突發內存:在剛剛配置服務器的時候看到內存突然暴升到660M,不過隨著時間的推移回落到360M左右。
獨立IP:基本配置,必須的,主機商有專買Linux的話都會有獨立IP,某寶上面的都是共享IP,除了挂機還能做什麼?
CPU不做最低限制,也不准備放網站什麼的,不怎麼消耗CPU的話,隨意即可。
帶寬與服務器配置成正比。
主機商的話,我買的是LocVPS – 洛杉矶 OpenVZ VPS,使用折扣後每月只需24元,優惠碼:ovz50off
如果服務器系統不是Ubuntu的話,自行選擇是否重裝,不同系統文件位置和命令可能不一樣,本系列作基本參考。
同樣的,基本操作我也在YouTuBe上找到了視頻,視頻非常耐心地操作,雖然沒有聲音…….已經下載收藏了,隨時觀看,也可以去找一些可以下載視頻的網站下載。
網上資料參差不齊,很多資料都是缺這缺那,複製粘貼,破圖什麼都有,很難找到一套完整的流程,所以部分截圖截取於視頻。
為避免安裝各種包的時候出現錯誤,先執行下更新
apt-get upgrade
安裝Subversion,Apache,WebSvn三個包
apt-get install websvn subversion libapache2-svn
如果在看到這個畫面之前出現錯誤,那就要自行解決了,超出本文記錄範圍。Linux安裝或者配置寫什麼東西,不出錯的話,那感覺簡直妙不可言。
這裡暫時還不能對websvn進行配置,所以我們選”NO“,然後系統繼續安裝其他東西。
對/etc/apache2/mods-enabled/dav_svn.conf進行配置
vi /etc/apache2/mods-enabled/dav_svn.conf
裡面有很多都是被註釋掉的內容,根據需要將註釋去掉,配置結果
这段配置是针对NFS版本控制器。
<Location /svn/NFS> DAV svn SVNPath /var/lib/svn/NFS AuthType Basic AuthName "Subversion" AuthUserFile /etc/apache2/dav_svn.passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>
“/svn/NFS” – URL
“/var/lib/svn/NFS” – 版本庫的絕對對路徑,暫時還沒被創建
“AuthType Basic” – 基本認證,也就是賬戶和密碼認證
“AuthTpye Name” – 弹出框里显示的内容
“AuthUserFile” – 用来保存用户名和密码的文件
<LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept>
关于这段内容,现在我们还是跟随视频里一致吧,以后另写一篇来说。
好了,这部分配置暂时先放着。
开始创建并配置SVN的相关文件,之前也说过在执行到这里之前SVN的所有东东都是没有弄。
也就是说上面配置文件里的“/var/lib/svn/NFS”是不存在的,包括“/var/lib/svn”,如果已经有相同的文件夹那就跳过。
嗯,先在/var/lib/下创建svn文件夹
mkdir /var/lib/svn
接着在新建的svn文件夹中创建NFS库,为了好比较,用绝对路径,免得搞混了。
svnadmin create /var/lib/svn/NFS
下面这步非常重要,以后增加SVN库的时候都要执行这句。
chown -R www-data:www-data /var/lib/svn/NFS
命令的意思是改所属用户组和用户,关于用户组和用户是什么,得自行谷歌。
在Linux中,用户组和用户是相当重要的东西,如果不改成正确的用户,那么相关文件就不能被其他用户修改读取删除,最终导致程序出问题。
这种用户权限的问题,网上比较难找到解决方法,毕竟每个人遇到的情况都可能不一样。
视频中做完这步以后就马上重启Apache2,并在浏览器中打开SVN中的文件,结果我就喜闻乐见了。
service apache2 restart
这里就拿我的配置出来的结果,跟上面做的一模一样,其他设置是跟着视频配置。(IP地址不给看)
如果机器是放在公网上,这样子可以直接打开项目源码有点危险,所以……在进阶篇写吧,不然这文章太长了。
既然浏览器可以打开,证明Apache2部分没有配错,可以正常运行,下面试下把源码通过svn签出试试。
看视频截图…….
“svn co” – svn checkout就是签出源码。我的是这样子“svn co http://IP地址/svn/NFS/ .”
注意URL后面还有一个点,就是把源码签出到当前目录下。
如果用浏览器打开没问题的话,签出应该不会出问题,凡事都有可能。
试着在签出目录下创建个文件夹。
增加文件或者文件夹都需要使用add命令添加到SVN的源码控制里,不然待会提交的时候不会显示这个新建的文件夹。
提交命令
svn commit
这时候会弹出个vim编辑器,暂时还不知道是干嘛的,退出vim命令
:q
退出vim后会让你选择Abort、Continue、Edit,对应意思:中止、继续、编辑(还没搞懂是干嘛的)
很明显,我们要做的是继续,输入c就行
好,视频中从输入密码这里出现了转折点,由于之前没有对/etc/apache2/dav_svn.passwd进行配置,所以我们得先弄好帐号密码才能成功提交。
使用Apache2自带命令htpasswd创建账户和密码
htpasswd -cm /etc/apache2/dav_svn.passwd username
如果dav_svn.passwd不存在或者说是第一次创建账户就用“-cm”
c – 创建文件
m – 创建账户和密码
路径什么的不解释
username – 用户名(还是写明白些)
然后他会要求输入密码,国际惯例,输入两次
如果是添加用帐号就不用加“c”参数
现在打开dav_svn.passwd文件看下有没有刚刚创建的两个账户密码
密码是经过加密的,这就是为什么要用htpasswd添加
搞定这个以后,再回到之前签出源码的目录下再次提交
这次提交输入密码就输入刚刚创建的密码。
想换其他账户提交的话,那就在输入密码的时候直接回车,会提示重新输入用户名。
最后询问是否提交,一定要输入完整的Yes……….这是规定,没什么好说。
提交成功就是显示版本号。
再到浏览器中看下是否有提交的文件夹。
之前Rsvision显示的是0,现在显示的是最新版本号1,那就说已经配置好了。
现在还差WebSvn还没有配置,来吧。
输入命令
dpkg-reconfigure websvn
又出现一开始的画面………这次我们选Yes,不截图了,反正是一样的。
把那些选项都选上,下一步
这里的路径就是放置svn相关文件的路径,下一步
不知道是什么意思,有空再去谷歌搜索下,留空,下一步
OK
接下是自动执行…….
看到OK两个字母,可以放下心头大石了。
在浏览器中打开http://IP地址/websvn
嘿嘿…….就是这么简单,就是这么容易
这个地址僅供查看,不能修改…………這樣就可以不用TortoiseSVN看修改日誌。
支持查看文件差異!!!
基礎篇終於寫完了………拖延症無冷卻發作……
最後附上視頻。