อาทิตย์นี้เตรียมงานใหญ่ย้าย VCS Project หลักจาก SVN ไป GIT ซึ่งคาดเดาไว้แล้วว่าต้องเจอปัญหาแน่นอน ก็คิดไม่ผิดเสียจริงๆ แต่ทำคราวนี้พบว่าเดี๊ยวนี้ GIT มีตัวช่วยสำหรับ HTTP แล้วเรียกว่า Smart HTTP ขั้นตอนก็ต่างจากคราวที่แล้วนิดหน่อย แต่คราวนี้จะตัดส่วน Trac ทิ้งทั้งหมด เพราะสิ่งที่ทำให้ลำบากชีวิตมากสุดก็คือ Trac นั่นเอง (นั่งทำให้มันแสดง source ได้กับ repository ที่มีขนาดใหญ่นี่ไม่สนุกเลย) เริ่มจากแก้ไข Apache ให้รู้ว่า URL ไหนจะเป็น repository สำหรับ path ของ git-http-backend ก็ขึ้นอยู่กับตำแหน่งที่ลงหรือ OS เพราะถ้าเป็น FreeBSD git-http-backend จะอยู่ที่ /usr/local/libexec/git-core/git-http-backend แทน จากนั้นกำหนดให้ Apache ตรวจสอบคนที่จะ push/pull หรือถ้าอยากให้ใคร clone ก็ได้แต่ถ้าต้องการ push ต้อง [...]
SSH Tunneling via Apache
อุปกรณ์ที่มี Apache web server ที่ติด mod_proxy และ mod_proxy_connect หรือ Web proxy server อะไรก็ได้ที่รองรับคำสั่ง CONNECT Proxytunnel SSH client เริ่มจากตั้งค่าให้ Apache ก่อน โดยกำหนดให้ Apache เป็น Forward Proxy ServerName blah.com ProxyRequests On ProxyVia On AllowCONNECT 22 80 443 563 Order allow,deny Allow from all ProxyRequests เพื่อให้ Apache ทำตัวเป็น ForwardProxy เอา request เรียกไปที่เครื่องอื่นต่อได้ ProxyVia เพื่อให้ Apache แปะไปที่ request ที่เรียกต่อไปด้วยว่า [...]
ApacheBench
กลางๆ สัปดาห์ที่แล้วพี่ที่ทำงานย้ายเครื่องที่เก็บ Trac และทำใหม่ ตอนแรกก็รู้สึกว่าช้าเมื่อเทียบกับที่เคยทำ ลองเปลี่ยนวิธีดูให้เหมือนกันกลับช้ากว่าเก่า เข้ามาใน IRC ถามว่าเป็นเพราะอะไรกลับได้ของเล่นมาใหม่ชิ้นนึงคือ ab ตอนแรกก็งงว่ามันคืออะไร ลองเล่นดูถึงได้เข้าใจ ก็เลยเริ่มจาก Trac ที่คิดว่าเร็วก่อน ผลปรากฏว่า This is ApacheBench, Version 2.3 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking project.nytes.net (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests [...]
SVN Apache Trac
ด้วยความลำบากของชีวิตวันนี้เพื่อนมาถาม ลองค้นๆ ในบล๊อก อ้าวไม่มีเลยจดไว้หน่อย เพราะสำหรับ FreeBSD แล้วมันไม่มีอะไรง่ายเลย ^^! ถือว่าเป็นซีรี่ย์ต่อจาก GIT ละกัน แต่คราวนี้จะละเอียดกว่านิดหน่อยเพราะเริ่มจากติด SVN/Trac จาก port เลยเพราะเพื่อนเจอปัญหาน่าปวดหัวตั้งแต่ขั้นนี้ซะนี่ เริ่มเลยละกัน เริ่มจากติด Apache เนื่องจาก SVN มันใช้บางอย่างที่พิเศษกว่าชาวบ้านด้วย นั่นคือ bdb + อยู่บน FreeBSD ชีวิตเลยไม่สวยงามนักตอนติด Apache ต้องเลือกให้มันใช้ apr จาก port ซึ่งมันก็จะมีคำเตือนว่าอันตราย แต่ช่างมันเหอะ เพื่อความเรียบง่ายในชีวิต เลือกมันออกซะ แล้วก็ไปติด apr-svn ใน /usr/ports/devels แล้วก็ปล่อยมันไปดึงเพื่อนๆ มันมาลงด้วย หลังจากจัดการกับ Apache เสร็จก็มาลง svn ต่ออยู่ใน /usr/ports/devels/subversion (ตอนแรกๆ พิมพ์ svn อยู่ตั้งนาน หามันไม่เจอซักที มารู้ทีหลังว่ามันดันใช้ชื่อเต็ม [...]
GIT Apache Trac
เมื่อคืนกะว่าจะเอาโค้ดขึ้นเซอร์ฟเวอร์อีกรอบหลังจากมันหายไปเพราะลงเครื่องใหม่ นั่งลงไปลงมา เลยอยากลองของซะหน่อย svn มันไม่สะใจใช้ git ละกันปรากฏว่าทำมันทั้งคืนเจอปัญหานู่นนี่จนกว่าจะเสร็จเช้านี้ -_-” ทำเสร็จขอเขียนวิธีเก็บไว้เป็นที่ระทึกหน่อยว่ามันสาหัสต่างจาก svn ขนาดไหน เริ่มจากเตรียม Apache ก่อนแต่จริงๆ ที่ลงไปก็ลงไปพร้อมอยู่แล้วอ่ะนะจาก svn แต่ถ้าใครยังไม่ได้เตรียมก็ลงตามด้านล่างก่อนละกัน เริ่มจากลง mod_dav และ mod_dav_fs ก่อน(เอ๊ะ หรือมันมาพร้อมกันไม่แน่ใจ) ถ้าจำไม่ผิดมันจะมีให้เลือกตอนติดจาก port เลยแต่ถ้าเป็น Ubuntu คิดว่าง่ายกว่านั้น apt-get install mod_dav หรือป่าวหว่าแป๊บเดียวก็เสร็จ ส่วนแมคอื่มช่างมันละกัน(จริงๆ คือไปจิ๊ก FreeBSD เอามาใส่เลยก็ได้ ^^!) จากนั้นกำหนดล๊อกไฟล์ของ DAV ว่าจะให้เป็นไฟล์ในใน httpd.conf ด้านล่างนี่ใช้ของดั้งเดิมที่แถมมาให้หลังจากติดจาก port ขี้เกียจแก้ DavLockDB “/usr/local/var/DavLock” เตรียมไฟล์ที่เก็บรายชื่อคนที่เข้ามาใช้ได้ และก็รหัสผ่าน เอาแบบง่ายๆ นะ พอถามรหัสก็ใส่รหัสของ user นั้นไป htpasswd -c [...]