วิธีติดตั้ง SVN Server บน Raspberry Pi

ไหนๆก็ใช้ Raspberry Pi มารัน Web Server แล้ว ต้องใช้ความออนไลน์ให้เป็นประโยชน์ เพิ่มงานให้มันอีกซักนิดนึงด้วย SVN Server

เปิด Terminal

 

Install SVN

sudo apt-get install subversion

สร้าง Folder สำหรับเก็บ Project (Repository)

mkdir -p /home/pi/repos

สร้าง Project

svnadmin create /home/pi/repos/demoproject

กำหนด Permission ให้สามารถแก้ไขไฟล์ใน Project ได้

sudo chmod -R g+w /home/pi/repos/demoproject/*

ติดตั้ง Apache2 SVN เพื่อให้ Remote Access ได้

sudo apt-get install apache2 libapache2-svn

Config ไฟล์ dav_svn.conf

1. เข้าไปแก้ไขไฟล์ด้วยคำสั่งนี้
sudo nano /etc/apache2/mods-available/dav_svn.conf

2. เพิ่ม config ลงในไฟล์

<Location /svn>
DAV svn
SVNParentPath /home/pi/repos
AuthType Basic
AuthName "Subversion Repo"
AuthUserFile /etc/apache2/dav_svn.passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>

3. กด Ctrl+X ตามด้วย Y ตามด้วย Enter เพื่อ save ไฟล์

Restart Apache2 SVN

sudo /etc/init.d/apache2 restart

สร้าง SVN User

sudo htpasswd -c /etc/apache2/dav_svn.passwd myuser

กำหนด Permission ไม่ให้แก้ไฟล์ด้วยมือ

sudo chown -R www-data:www-data /home/pi/repos
* หากมีการ Create Project เพิ่ม ให้รันคำสั่งนี้ตามทุกครั้ง

ทดลองเข้าผ่าน Browser

เข้าไปที่ IP ของ Raspberry Pi ตามด้วย /svn/demoproject จะได้ผลลัพธ์ดังรูป เป็นอันพร้อมใช้งาน
http://192.168.1.10/svn/demoproject/

 

ทดสอบอีกทีกันเหนียว Commit ไฟล์

1. สร้าง Folder ของ Project
mkdir /home/pi/demoproject

2. สร้างไฟล์ helloSVN.txt
sudo nano /home/pi/demoproject/helloSVN.txt

3. พิมพ์ “Hello SVN” แล้วกด Ctrl+X ตามด้วย Y ตามด้วย Enter เพื่อ save file

4. Import ไฟล์เข้า SVN
sudo svn import /home/pi/demoproject/ file://localhost/home/pi/repos/demoproject/

5.กด Ctrl+X จะเห็นว่าไฟล์ถูก commit ขึ้น SVN สำเร็จแล้ว

 

หลายขั้นตอนนิดนึงนะครับสำหรับการติดตั้ง SVN Server ย้ำเรื่องการกำหนด Permission นะครับ
ถ้ามีการสร้าง Project ใหม่อย่าลืมกำหนดให้มันนะ ไม่งั้นจะเสียเวลานั่งงมเหมือนผม T-T

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Advertisment ad adsense adlogger