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

图像 004

如果在看到這個畫面之前出現錯誤,那就要自行解決了,超出本文記錄範圍。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地址不给看)

图像 021

如果机器是放在公网上,这样子可以直接打开项目源码有点危险,所以……在进阶篇写吧,不然这文章太长了。

既然浏览器可以打开,证明Apache2部分没有配错,可以正常运行,下面试下把源码通过svn签出试试。

看视频截图…….

图像 022

“svn co” – svn checkout就是签出源码。我的是这样子“svn co http://IP地址/svn/NFS/ .”

注意URL后面还有一个点,就是把源码签出到当前目录下。

如果用浏览器打开没问题的话,签出应该不会出问题,凡事都有可能。

试着在签出目录下创建个文件夹。

图像 024

增加文件或者文件夹都需要使用add命令添加到SVN的源码控制里,不然待会提交的时候不会显示这个新建的文件夹。

提交命令

svn commit

图像 025

这时候会弹出个vim编辑器,暂时还不知道是干嘛的,退出vim命令

:q

退出vim后会让你选择Abort、Continue、Edit,对应意思:中止、继续、编辑(还没搞懂是干嘛的)

很明显,我们要做的是继续,输入c就行

图像 026

好,视频中从输入密码这里出现了转折点,由于之前没有对/etc/apache2/dav_svn.passwd进行配置,所以我们得先弄好帐号密码才能成功提交。

使用Apache2自带命令htpasswd创建账户和密码

htpasswd -cm /etc/apache2/dav_svn.passwd username

如果dav_svn.passwd不存在或者说是第一次创建账户就用“-cm”

c – 创建文件

m – 创建账户和密码

路径什么的不解释

username – 用户名(还是写明白些)

然后他会要求输入密码,国际惯例,输入两次

图像 027

如果是添加用帐号就不用加“c”参数

图像 028

现在打开dav_svn.passwd文件看下有没有刚刚创建的两个账户密码

图像 029

密码是经过加密的,这就是为什么要用htpasswd添加

搞定这个以后,再回到之前签出源码的目录下再次提交

图像 030

这次提交输入密码就输入刚刚创建的密码。

想换其他账户提交的话,那就在输入密码的时候直接回车,会提示重新输入用户名。

最后询问是否提交,一定要输入完整的Yes……….这是规定,没什么好说。

图像 031

提交成功就是显示版本号。

再到浏览器中看下是否有提交的文件夹。

图像 032

之前Rsvision显示的是0,现在显示的是最新版本号1,那就说已经配置好了。

现在还差WebSvn还没有配置,来吧。

输入命令

dpkg-reconfigure websvn

又出现一开始的画面………这次我们选Yes,不截图了,反正是一样的。

图像 033

把那些选项都选上,下一步

图像 034

这里的路径就是放置svn相关文件的路径,下一步

图像 035

不知道是什么意思,有空再去谷歌搜索下,留空,下一步

图像 036

OK

接下是自动执行…….

图像 037

看到OK两个字母,可以放下心头大石了。

在浏览器中打开http://IP地址/websvn

嘿嘿…….就是这么简单,就是这么容易

图像 038

这个地址僅供查看,不能修改…………這樣就可以不用TortoiseSVN看修改日誌。

支持查看文件差異!!!

基礎篇終於寫完了………拖延症無冷卻發作……

最後附上視頻。

发表评论

电子邮件地址不会被公开。 必填项已用*标注