วันจันทร์ที่ 6 กันยายน พ.ศ. 2553

SVN : Install Subversion with Apache on Windows

Pre-install task
1) Apache Server (ตามตัวอย่างถูกติดตั้งอยู่ใน XAMPP)

ขั้นตอนการติดตั้ง
1) Stop Apache ก่อน
2) Download แพ็คเกจ Subversion ที่ run บน Windows ตาม link นี้
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=11151&expandFolder=11151&folderID=91
3) หลังจาก download ติดตั้งให้เรียบร้อย
4) ให้คัดลอก mod_dav_svn.so และ mod_authz_svn.so ที่อยู่ใน Folder bin ของ Subversion ที่ติดตั้งไว้ก่อนหน้านี้ (C:\Program Files\Subversion\bin) ใ้ห้ไปวางไว้ใน Folder modules ของ Apache (ตามตัวอย่างนี้อยู่ใน XAMPP : C:\xampp\apache\modules)
5) เข้าไป set Environment Variables ของ Path ที่ System Variables โดยให้เพิ่มค่า path Foler bin ของ Subversion เข้าไปตามภาพ

6) reboot เครื่องเพื่อให้ Apache เห็น lib ของ Subversion
7) หลังจากนั้น ให้ไปแก้ไขไฟล์ httpd.conf (ตามตัวอย่างอยู่ใน C:\xampp\apache\conf) โดย
Uncomment บรรทัด #LoadModule dav_fs_module modules/mod_dav_fs.so ตามภาพ


และเพิ่ม LoadModule dav_svn_module modules/mod_dav_svn.so และ LoadModule authz_svn_module modules/mod_authz_svn.so ทั้ง 2 Modules เข้าไปตอนท้ายของ LoadModule ตามภาพ


และสุดท้ายให้เพิ่ม Subversion configuration ซึ่งเราจะไปสร้าง file เหล่านี้ไว้ในข้อต่อๆไป ซึ่งไปใส่ในบรรทัดสุดท้ายของ file ใสค่าตามนี้ Include c:/etc/subversion.conf ตามภาพ


8) ให้ สร้าง Folder ที่ชื่อ etc ไว้ที่ Drive C เพื่อไว้ใส่ Config ค่าทั้งหลายของ Subversion เนื่องจากที่เราได้เพิ่ม Subversion configuration ไว้ซึ่งอ้างอิงไปที่ C:\etc
9) หัวข้อนี้ เป็นการสร้าง Config ของ Subversion ซึ่งทั้งหมดวางไว้ใน C:\etc ตามนี้



9.1) สร้างไฟล์ svn-auth-file เพื่อกำหนดผู้ใช้งานบน Subversion โดยเข้าไป command พิมพ์ตามนี้


cd C:\xampp\apache\bin
C:\xampp\apache\bin>htpasswd -cm C:\etc\svn-auth-file harry
New password: *****
Re-type new password: *****
Adding password for user harry

C:\xampp\apache\bin>htpasswd -m C:\etc\svn-auth-file sally
New password: *****
Re-type new password: *****
Adding password for user sally


พูดถึง option
-c หมายถึง สร้างไฟล์ C:\etc\svn-auth-file
-m หมายถึง เข้ารหัส MD5 ของ Password

9.2) สร้างไฟล์ svn-acl เพื่อกำหนดสิทธิ์เข้าใช้ Subversion แต่ละ Project

9.2.1) เข้าไปสร้างไฟล์ svn-acl ที่ C:\etc (ไฟล์ไม่มีนามสกุล)
9.2.2) เปิดไฟล์ขึ้นมาเพื่อใส่ค่าตามนี้

#
# specify groups here
#
[groups]
team1 = harry, sally

#
# team1 group has a read/write access to project1 repository
# all subdirectories
# all others have read access only
#
[project1:/]
@team1 = rw
* = r



9.3) สุดท้ายสร้าง subversion.conf ไว้สำหรับกำหนดค่า Config ของ Subversion ไปยังไฟล์ทั้งสองก่อนหน้า ซึ่ง file config นี้ถูกลิงค์มายัง file Config ของ Apache เพื่อให้การจัดการ Config แยกเป็นสัดส่วน มีขั้นตอนสร้างตามนี้

9.3.1) เข้าไปสร้างไฟล์ subversion.conf ที่ C:\etc
9.3.2) เปิดไฟล์ขึ้นมาเพื่อใส่ค่าตามนี้


DAV svn
SVNPath C:/Repositories/project1

AuthType Basic
AuthName "Subversion Project1 repository"
AuthUserFile c:/etc/svn-auth-file

Require valid-user

AuthzSVNAccessFile c:/etc/svn-acl



DAV svn
SVNPath C:/Repositories/project2

AuthType Basic
AuthName "Subversion Project2 repository"
AuthUserFile c:/etc/svn-auth-file

Require valid-user

AuthzSVNAccessFile c:/etc/svn-acl



SVNPath คือ Folder repo หรือที่ำไว้ก็บไฟล์ Project ของเราเปรีบเสมือนเป็นฐานข้อมูลเก็บ Project


10) พร้อมกันแล้ว Start Apache (ถ้าไม่ผ่านให้เข้าไปดู error.log ใน Folder logs ของ Apache)
11) เรียบร้อยสำหรับ Server

ต่อมาเรามาลุยกันต่อที่ Client
1) Download TortoiseSVN ได้ที่ http://tortoisesvn.net/downloads
2) ติดตั้งให้เรียบร้อย
3) ไปที่ C:\Repositories\Project1 (ตาม SVNPath ใน file subversion.conf) เพื่อที่จะไปสร้าง Repo โดยคลิกขวาที่ว่างๆ TortoiseSVN -> Create repository here ตามภาพ

4) ทดสอบโดย คลิกขวาที่ว่างๆ เลือก TortoiseSVN -> Repo-Browser ตามภาพ

5) ใส่ URL http://localhost/Project1 จะเข้ามายังหน้าจอจัดการ Project ตามภาพ

6) ต่อมาจะมาสร้างโครงสร้างเก็บ Source code ซึ่งทั่วๆไป เข้าจะสร้างกันตามนี้
/trunk
/branches
/tags
เราจะสร้าง Folder ตามนี้ในหน้าจอก่อนหน้านี้ก็ได้ โดยคลิกขวาเลือก Create Folder แล้วสร้างให้ครบทั้งสาม แต่เนื่องจากเราอาจจะทำหลายๆ Project เราสร้าง Folder ว่างๆ ไว้มีโครงสร้างทั้งสาม Folder ตามนี้ไว้ที่ c:\temp\new หลังจากนั้นเข้าไปข้่างใน Folder new คลิกขวาที่ว่างๆ เลือก TortoiseSVN -> import หลังจากนั้นใส่ URL : http://localhost/Project1 ซึ่งเป็น Project ตัวอย่าง ในช่อง Import message ใส่ข้อความว่า create a /trunk /tags /branches structure หลังจากนี้กด OK

7) หลังจากกด OK จะพบกับ message Import Finished ตามนี้

8) ลองตรวจสอบดู โดยคลิกขวาที่ว่างๆ เลือก TortoiseSVN -> Repo-Browser จะพบโครงสร้างตาม Temp ของเรา

9) โอ้ พร้อมแล้วที่จะเอา Source code เข้า Repo โดยที่หลังจากเข้าไปที่ Repo-Browser จากข้อที่แล้ว ให้คลิกขวา check out ที่ trunk

10) ใส่ Checkout directory : D:\Dev\Project1 ซึ่งเป็นที่จะนำ Source Code มาไว้เพื่อพัฒนา

11) หลังจากกด Checkout จะได้รับ Message Checkout Finished
12) หลังจากนี้ก็เอา Project เข้าไปวางไว้

13) กด Up folder ขี้นมายัง path D:\Dev คลิกขวา Folder Project1 เลือก SNV Commit เพื่อขี้น Subversion

14) มี Dialog ให้ใส่ message ซะหน่อยว่า Initial project กด Select /deselect All เพื่อเลือกทั้งหมด หลังจากนั้นกด OK
15) เรียบร้อยพร้อมหน้าจอ Commit - TortoiseSVN Finished!
16) เข้าไป Repo-Browser จะเห็นว่ามี Source code ของเราเข้าไปอยู่ใน truck เรียบร้อย


Reference:
ศึกษาเพิ่มเติม


ไม่มีความคิดเห็น: