SVN Apache Trac

ด้วยความลำบากของชีวิตวันนี้เพื่อนมาถาม ลองค้นๆ ในบล๊อก อ้าวไม่มีเลยจดไว้หน่อย เพราะสำหรับ FreeBSD แล้วมันไม่มีอะไรง่ายเลย ^^! ถือว่าเป็นซีรี่ย์ต่อจาก GIT ละกัน แต่คราวนี้จะละเอียดกว่านิดหน่อยเพราะเริ่มจากติด SVN/Trac จาก port เลยเพราะเพื่อนเจอปัญหาน่าปวดหัวตั้งแต่ขั้นนี้ซะนี่ เริ่มเลยละกัน

  1. เริ่มจากติด Apache เนื่องจาก SVN มันใช้บางอย่างที่พิเศษกว่าชาวบ้านด้วย นั่นคือ bdb + อยู่บน FreeBSD ชีวิตเลยไม่สวยงามนักตอนติด Apache ต้องเลือกให้มันใช้ apr จาก port ซึ่งมันก็จะมีคำเตือนว่าอันตราย แต่ช่างมันเหอะ เพื่อความเรียบง่ายในชีวิต เลือกมันออกซะ แล้วก็ไปติด apr-svn ใน /usr/ports/devels แล้วก็ปล่อยมันไปดึงเพื่อนๆ มันมาลงด้วย
  2. หลังจากจัดการกับ Apache เสร็จก็มาลง svn ต่ออยู่ใน /usr/ports/devels/subversion (ตอนแรกๆ พิมพ์ svn อยู่ตั้งนาน หามันไม่เจอซักที มารู้ทีหลังว่ามันดันใช้ชื่อเต็ม เซ็งอยู่นาน) อันนี้ไม่มีอะไรก็ make install ธรรมดาถ้าทำขั้นแรกมาแล้ว แต่!!! ถ้าไม่ได้ทำใส่ -DWITHOUT_BDB4 ไปด้วยเพื่อให้มันใช้ไฟล์ในการเก็บรุ่นแทน อาจจะดูไม่ดีนัก แต่ถ้าทำงานคนเดียวก็คงไม่ค่อยมีปัญหาเท่าไหร่(มั้ง) อ้อ ตอนติดตั้งเลือก mod_svn ให้ Apache ด้วยนะ เพื่อความง่ายของชีวิต
  3. สุดท้ายคือติด Trac ก็ไปที่ /usr/ports/www/trac แล้วสั่ง make install

อ่ะ ด้านบนมันขั้นตอนเหมือนธรรมด๊า ธรรมดาแต่มักไปตกม้าตายกับไอ้ขั้นแรกนี่แหละ ที่งงตั้งนานว่ามันจะเอา BDB อะไรอีกฟะ กูก็ติดแล้วนี่หว่า มาถึงบางอ้อว่าต้องเอา apr จาก port ด้วยก็ตอนไปถาม @pFz นี่แหละ
ต่อมาสร้าง SVN repository กับ Trac

  1. เอา SVN ก่อนก็หาที่เก็บเหมาะๆ แล้วก็สั่ง svn-admin create /path/to/repository ซะเป็นอันเสร็จสิ้น(บ๊ะ ง่ายกว่า git เยอะเลย)
  2. ตามด้วย trac ก็หาที่เก็บเหมาะๆ เหมือนเดิมแล้วสั่ง trac-admin /path/to/trac/environment initevn แล้วมันจะมีขั้นตอนถามอย่างละเอียด ว่าชื่อโครงการชื่ออะไร ใช้ repository ไหมประเภทอะไร เก็บไว้ที่ไหน แต่ละอันก็จะมีค่าเริ่มต้นมาให้อยู่แล้วด้วย จะกดผ่านๆ ไปก็ได้
  3. อันนี้ขั้นตอนเสริมสำหรับคนใช้ fastcgi เท่านั้นใช้!!! (ห้ามถามวิธีอื่น เพราะไม่รู้เหมือนกัน) ให้ไป copy ไฟล์จาก /usr/local/share/trac/cgi-bin/trac.fcgi ไปวางไว้ซักที่ใน trac(จะเอาที่อื่นก็ได้ แต่เอาไว้ด้วยกันมันหาสะดวกดี) แล้วเพิ่มสองบรรทัดด้านล่างเข้าไป

    import os
    os.environ['TRAC_ENV'] = "/path/to/trac/environment"
    

โอ้สองขั้นง่ายๆ ต่างจาก GIT เยอะแฮะ (สงสัยทำมาบ่อยเลยง่าย) ต่อไปก็ Apache หละ

  1. สร้างไฟล์ไว้เก็บรายชื่อ user/password ก่อนซักที่ เหมือนเดิมเอาง่ายๆก็ htpasswd ^^!
    $htpasswd -c .htpasswd username
    
  2. จากนั้นก็กำหนดให้ Apache รู้จัก Trac และ SVN หน่อย
      
        AuthType Basic
        AuthName "Project name"
        AuthUserFile /path/to/password/file/.htpasswd
    
        require valid-user
      
    
      
        DAV svn
        SVNPath /path/to/repository
    
        AuthType Basic
        AuthName "Project name"
        AuthUserFile /path/to/password/file/.htpasswd
    
        require valid-user
      
    
      ScriptAlias /trac /path/to/trac/fastcgi/script/
    
  3. restart Apache ซักรอบก็ได้หละ

About llun

Just a programmer

, ,