Redmine กับ Phusion Passenger™

เนื่องจากกำลังทำโฮสท์เพื่อให้คนอื่นเข้ามาใช้ ruby on rails อยู่ก็เลยต้องลองเล่น mod ต่างๆ กับหาทางให้ apache นิ่งสำหรับ mod ตัวแรกที่เจอคือ mod_ruby แต่อันนั้นเวลาจะใช้มันใช้กับไฟล์ .rb คือเอาไฟล์มาวางเสร็จแล้วทำให้เหมือนกับ .php เลยเป็น script แล้วแสดงผลพวก print ขึ้นหน้าจอทันที มันก็เหมือนจะดีนะ แต่โปรแกรมที่เขียนด้วย ruby ส่วนใหญ่จะใช้กับ rail นี่สิ ก็เลยต้องหาใหม่ แล้วก็มีคนแนะนำผ่าน twitter มาว่าใช้ mod_rails สิ ก็ลองๆ แต่ไม่ได้หาโปรแกรมมาใส่ซักทีแล้วก็ทิ้งไปเสียนาน
สำหรับ Redmine นี่คือตัวเลือกก่อนที่คิดจะทำ Control panel เพราะนอกจากจะทำโฮสท์ให้ลองเล่น ruby แล้วยังคิดที่จะทำให้เพื่อใช้เป็นที่ฝากไฟล์ หรือทำงานร่วมกันอีกด้วย โดยหลักๆ แล้วก็คือให้บริการพวก svn นั่นแหละ แต่จะมี svn อย่างเดียวก็ยังไงอยู่ เพราะจะให้เข้ามาแก้ไขไฟล์เลย ท่าทางคนทำโครงการต่างๆ คงจะส่ายหน้าหนี(อย่างน้อยก็คงเป็นเพื่อนผมหละ) ก็เลยหาทางออกที่แสนง่ายด้วยโปรแกรมอย่าง Redmine หรือ Trac ตอนนี้ก็ใช้ Trac ไปก่อนแล้วหละ เพราะมันตอบโจทย์ผมหลายอย่าง เช่น สามารถตรวจสอบ user ที่เดียวกับ svn และ ssh ได้ มีตัวเสริมมากมาย แต่สิ่งหนึ่งที่ Trac ไม่มีคือมันไม่สามารถสร้างโครงการหลายๆ โครงการในตัวมันได้ รวมถึงพวก version control ต่างๆ ด้วย แต่ตัว redmine กลับมีอะไรเหล่านี้อยู่ แต่ว่าการ deploy ต่างๆ กลับลำบากพอควรเวลาจะใช้กับ mod_ruby (เอ๊ะ หรือว่าจริงๆ แล้วไม่เคยทำเองหว่า เลยบอกว่าลำบาก ;p)
โอ่ย เขียนมายาว สรุปถึงวิธีทำสั้นๆ ดีกว่าสำหรับ mod_rails หรือ mod_passenger วิธีติดบน FreeBSD จะต่างจาก mod อื่นๆ หน่อยที่สามารถหาได้ใน port แต่ก็ไม่ยากเท่าไหร่ เพราะว่าสามารถติดจาก gem ได้แหะๆ แค่สองบรรทัดเท่านั้นคือ

#gem install passenger
#passenger-install-apache2-module

แต่ๆ สำหรับคนที่ใช้ php ด้วยอาจเจอปัญหา เลยต้องเพิ่มไปอีกบรรทัดให้มันไม่บอกว่า Directory นี้ใช้ rail อยู่

RailsAutoDetect off

เวลาจะใช้ rail เลยต้องลำบากหน่อย คือแก้ไฟล์ .htaccess เอา โดยเพิ่มบรรทัดนี้เข้าไป

RailsBaseURI /path/to/rail/application

สำหรับ redmine หลังจากดาวโหลดมาขยายไฟล์ซักที่แล้ว ก็แก้ไข database นิดหน่อยก่อน โดย copy ไฟล์ config/database.yml.sample เป็น config/database.yml แล้วแก้ด้านล่างให้ตรงกับฐานข้อมูลที่เรามี

production:
adapter: mysql
database: redmine
host: localhost
username:
password:

จากนั้นสั่ง

$rake db:migrate RAILS_ENV="production"

เพื่อให้มันเข้าไปสร้างฐานข้อมูล (rake นี่คุ้นๆ เหมือน make มะ ;p) จากนั้นโหลดข้อมูลเริ่มต้นเข้าไป

$rake redmine:load_default_data RAILS_ENV="production"

แก้ไข DocumentRoot และ RailsBaseURI ให้ชี้ไปที่ตำแหน่งของ redmine เช่น ขยาย redmine ไว้ที่ /path/to/redmine ก็ตั้ง DocumentRoot และ RailsBaseURI เป็น

DocumentRoot /path/to/redmine/public
RailsBaseURI /

reload apache 1 รอบ ก็เป็นอันเรียบร้อย

About llun

Just a programmer

, , ,