ข้ามไปที่เนื้อหาหลัก

ติดตั้ง SVN Server บน CentOS (ตอนหนึ่ง)

SVN หรือ Versioning Control ซึ่งจะสะดวกมาในการทำงานเป็นทีมและสามารถเลือกได้ว่าเราจะอัพเดตไปยัง Revision ไหน(เวอร์ชั่นไหน) โดยหลักๆ เราจะแบ่งโครงการออกเป็นสามส่วนคือ trunk branch และ tags โดยแต่ละส่วนจะมีการกำหนดดังนี้

  • Trunk เป็นส่วน Core ของโปรเจ็ค หรือเรียกง่ายๆ ว่าอะไรที่ Stable แล้วเราจะใส่ไว้ในส่วนนี้
  • Branch เป็นส่วนที่เป็น Feature ที่เราจะทำการเพิ่มเติมขึ้นมา ส่วนใหญ่เมื่อผ่านพ้นช่วงทดสอบต่างๆ และเป็นที่ยอมรับของทีมแล้ว เราก็จะนำเข้าไปไว้ใน Trunk
  • Tags จะเป็นตัวแบ่งเวอร์ชั่นออกจากกันเช่นเมื่อเราออกเวอร์ชั่น Stable แล้วเราก็จะ copy มาใส่ไว้ใน Tags เพื่อที่จะได้มีหลายเวอร์ชั่นให้ผู้พัฒนาได้เลือก

เริ่มการติดตั้ง SVN Server บน CentOS กันดีกว่าครับ ใช้เครื่องมือที่เราคุ้นเคยกันดี

yum install httpd
chkconfig httpd on

ซึ่ง chkconfig จะทำให้ตัว httpd server เริ่มต้นอัตโนมัติเมื่อเริ่มระบบ
หลังจากนั้นทำการแก้ไขไฟล์ httpd.conf
vim /etc/httpd/conf/httpd.conf
แก้ไขตามความต้องการหากต้องการเปลี่ยน Port ก็เปลี่ยนได้เลยครับ
หลังจากนั้นทำการแก้ไขไฟล์ subversion.conf
vim /etc/httpd/conf.d/subversion.conf
ทำการ uncomment บรรทัดต่อไปนี้

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

<location /repos>
   DAV svn
   SVNParentPath /var/www/svn/repos
   # Limit write permission to list of valid users.
   #<limitexcept>
      # Require SSL connection for password protection.
      # SSLRequireSSL
      AuthType Basic
      AuthName "Authorization Realm"
      AuthUserFile /etc/svn-auth-conf
      Require valid-user
   #</limitexcept>
</location>


เวลาเข้าผ่าน Browser สามารถเข้าได้ผ่าน URL http://<hostname>/repos

หลังจากนั้นจะเป็นการติดตั้ง User ที่จะใช้งาน


htpasswd -cm /etc/svn-auth-conf yourusername
ระบบจะให้ใส่รหัสสำหรับ User
สองครั้ง

หากหลังจากนี้ต้องการเพิ่ม user ให้ใช้แค่คำสั่ง htpasswd -m /etc/svn-auth-conf เพราะไฟล์ svn-auth-conf นั้นได้ถูกสร้างไว้แล้ว (-c หมายถึงให้สร้างไฟล์ htpasswd ขึ้น)

และขั้นตอนสุดท้ายเป็นการสร้าง directory สำหรับ svn

mkdir /var/www/svn
cd /var/www/svn
svnadmin create repos
chown -R apache.apache repos
service httpd restart


svnadmin เป็นการใช้ svnadmin สร้าง directory repos และ chown เป็นการโดนสิทธิ์ให้กับ apache ซึ่งอยู่ในกลุ่ม apache (apache.apache <-- ตัวแรกหมายถึงกลุ่ม ตัวหลังหมายถึง user ของระบบ ไม่ใช่ของ svn นะครับ) หลังจากนั้นเป็นคำสั่งรีสตาร์ท apache server นั่นเอง

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

Alfresco กับการ Search ภาษาไทย

เนื่องด้วยการ Search ถือเป็นหัวใจสำคัญของงาน ECM เลยก็ว่าได้ แต่ Alfresco ณ ปัจจุบันยังไม่รองรับการ Search ด้วยภาษาไทย แต่อย่างว่า Opensource เมื่อเรารู้ว่ามันใช้ Lucene เป็น engine ในการค้นหาเอกสาร เราก็เลยแงะไปยังตัว lucene เองพบว่ามีคนส่ง Patch ในการตัดคำไทย ไปให้กับ lucene เรียบร้อยแล้ว โดยคุณสัมพันธ์นั่นเอง วิธีการ Config ให้ Alfresco ตัดคำไทยได้ผมสรุปออกมาเป็นขั้นตอนได้ดังนี้ครับ ไปเพิ่ม Locale ให้ Alfresco รู้จัก ใน tomcat/shared/classes/alfresco/extension/web-client-config-custom.xml ตรง tag <languages> เพิ่ม <language locale="th_TH">Thai</language> เข้าไป directory: tomcat/webapps/alfresco/WEB-INF/classes/alfresco/model แล้วทำการ copy file dataTypeAnalyzers_fr.properties หรือไฟล์อื่นก็ได้ เปลี่ยนชื่อเป็น dataTypeAnalyzers_th.properties แล้วเปิดไฟล์ขึ้นมาแก้ไขให้เป็น d_dictionary.datatype.d_text.analyzer=org.apache.lucene.analysis.th.ThaiAnalyzer d_dictionary.datatype.d_content.analyzer=org.apache.lucene.analysis.th.ThaiAnalyzer หลังจากนั้นเมื่อทำการ...

Spring Roo vs Grails

Spring Roo หรือ Grails ดี ถ้าต้องเลือกระหว่างสองตัวนี้จะเลือกอะไรดี คำตอบแบ่งออกได้เป็นสองส่วน ส่วนแรกคือภาษาที่ถนัด หากใครเขียน Java อยู่แล้วไม่อยากเปลี่ยนก็ควรจะเลือก Spring Roo หากใครต้องการ magic ที่มากับ Dynamic Language ก็คิดว่าน่าจะใช้ Grails มากกว่า ส่วนที่สองคือ ความเร็วในการพัฒนาเนื่องจาก magic ที่มาจากภาษา Groovy ทำให้เราพัฒนา Application ได้เร็วกว่าภาษา Java (แต่อันนี้ก็แล้วแต่ความถนัก หากถนัด Java มากๆ ก็อาจจะเร็วกว่าก็ได้) แต่ส่วนที่คิดว่าเร็วกว่าแน่ๆ คือมันจะ Generate Method ส่วนใหญ่ให้ในขณะ Runtime เช่น findBookById() ซึ่งจะไม่มีโค้ดในส่วนนี้แต่จะเป็นการ Generate ให้เองจากตัว Framework แต่หากใช้ Spring Roo เราต้องมานั่งเขียน Method ส่วนนี้เอง ข้อดี ข้อเสีย Grails อย่างที่รู้ว่า Groovy นั้นจะ Generate Method ระหว่าง Runtime ให้และยังเป็นภาษา Script แม้จะมีการ Compile ให้เป็น Bytecode ของจาวาแล้วก็ตาม แต่ Performance ก็จะด้อยกว่า Pure Java อยู่ดี Spring Roo จะช้าในช่วง Develop time แต่ขณะ Runtime จะมี Performance ดีกว่า Grails เนื่องจากไม่มีส่วนที่ต้องสร้างขึ้นระหว่าง ...

เปลี่ยนเว็บเดิมให้ Pluggable ด้วย OSGi

เป็นบทความภาษาอังกฤษครับลองอ่านดู เปลี่ยน Web application เดิมให้ยืดหยุ่นด้วย OSGi เพิ่มเติ่มให้ครับ OSGi คืออะไร เป็น Specification ครับที่เจ้าใหญ่ของ Java เค้าทำมาเพื่อให้เกิดความเป็น modularized ครับ ซึ่งถ้าจะให้เห็นภาพคือการทำงานของ plugin น่ะครับ ที่เราสามารถเปิดปิดการทำงานของมันได้ตลอดเวลาเมื่อเอามาใส่ web application ก็ทำให้เราสามารถถอดหรือเสียบ plugin ใหม่ๆ ได้ตลอดเวลา โดยที่ plugin นี้ใน OSGi จะเรียกว่า module ครับ หรือถ้าเป็นศัพท์เทคนิคเค้าจะเรียกว่า Bundle ครับ ลองไปอ่านบทความกันดูครับ ซึ่ง OSGi นั้นจริงๆ แล้วมันเป็น Specification เหมือนกับ EJB หรือ Servlet นี่แหละครับ แต่ตัว implement นั้นแล้วแต่ว่าใครจะนำไป implement นะครับ ที่ดังๆ อยู่ในตอนนี้ก็เห็นมีอยู่สองสามเจ้า Equinox อันนี้หลายๆ คนคงจะคุ้นเคยกันดีมันคือเจ้า eclipse ของเรานั่นเองใช้ตัวนี้อยู่ครับ ส่วนอีกตัวเป็นของ Apache Felix ครับ ลักษณะการใช้งานจะแตกต่างกันบาง และตัว module อาจจะเรียกไม่เหมือนกันบางอันเป็น Bundle บางอันอาจไม่ใช่ ผมก็จำไม่ได้แล้วเหมือนกันครับ ลองไปศึกษากันดูครับ น่าสนใจทีเดียว อีกตัวนั้นจะเป็นของ Sp...