คราวก่อน คุณ Neokain เขียนวิธีการติดตั้ง RVM บน Mac ไปแล้ว คราวนี้ผมจะเขียนในส่วนของ Ubuntu ดูบ้าง ซึ่งขั้นตอนต่างๆ เกือบจะเหมือนกันทั้งหมด มีรายละเอียดที่แตกต่างไปบ้างเล็กน้อย
จุดเด่นของ Ubuntu (และลินุกซ์ดิสโทรตระกูล Debian) คือเรื่องระบบการจัดการแพ็คเกจ APT ไม่ว่าจะเป็น apt-get หรือ aptitude ก็ตาม ที่สามารถติดตั้งไบนารีแพ็คเกจได้อย่างรวดเร็วและประสิทธิภาพก็ไม่ได้ต่างไปจากการคอมไพล์ซอร์สโค้ดเองเท่าไหร่นัก โดยเฉพาะเครื่องสำหรับใช้พัฒนา การใช้ *nix ที่ต้องคอมไพล์แพ็คเกจจากซอร์สโค้ดเอง ไม่ว่าจะเป็น *BSD, Gentoo หรือ MacPorts ดูจะเป็นการเสียเวลาและเปลืองไฟฟ้าโดยใช่เหตุ
ขั้นตอนแรกที่สำคัญมาก คือต้องติดตั้งไลบรารีพื้นฐานให้ครบก่อน ไม่อย่างนั้นจะต้องคอมไพล์ซ้ำหลายรอบ (ครั้งแรกผมโดนไป 5)
$ sudo aptitude install build-essential libssl-dev libreadline6-dev zlib1g-dev
ต่อไปเป็นการติดตั้งสคริปท์ RVM โดยเลือกติดตั้งได้สองแบบคือ single-user กับ multi-user โดยทั่วไปแนะนำให้ติดตั้งแบบ single-user ดีกว่า เนื่องจากซอร์สโค้ดทั้งหมดจะถูกเก็บไว้อยู่ในพาธ $HOME ของเราเอง ทำให้การติดตั้งแพ็คเกจผ่าน RubyGems ในอนาคตไม่ต้องใช้สิทธิ์ root แต่หากต้องการติดตั้งแบบ multi-user ก็ให้เติม sudo ลงไปข้างหน้าคำสั่ง แล้ว RVM ก็จะถูกนำไปติดตั้งอยู่ที่ /usr/local/rvm ให้แทน
$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
จากนั้นให้นำโค้ดข้างล่างนี้ไปแปะไว้ในไฟล์ ~/.bashrc สำหรับ single-user และ /etc/profile สำหรับ multi-user ตามลำดับ
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
[[ -s "/home/YOURNAME/.rvm/scripts/rvm" ]] && source "/home/YOURNAME/.rvm/scripts/rvm"
เสร็จแล้วให้สั่งเริ่มการทำงานของเชลล์ใหม่ เพื่อให้คำสั่ง rvm ไปอยู่ใน $PATH ของระบบให้เราเรียกใช้ได้สะดวกๆ
$ source ~/.bashrc
ดู Ruby เวอร์ชั่นต่างๆ ที่สามารถติดตั้งได้
$ rvm list known | less
ปกติผมใช้ Matz's Ruby แต่ถ้าจะใช้ JRuby ก็ให้ติดตั้ง JDK (openjdk-6-jdk) ก่อน
$ rvm install 1.9.2
ดูรายการ Ruby ที่ติดตั้งไว้แล้ว
$ rvm list
เลือก Ruby ที่จะใช้เป็นค่าปริยาย (default)
$ rvm use 1.9.2 --default
จากนั้นจะมีคำสั่ง "ruby" ให้เราเรียกใช้ได้
$ ruby -v
ส่วนการติดตั้ง Passenger ผ่าน RubyGems ก็ไม่มีอะไรยาก
$ gem install passenger --no-ri --no-rdoc
เสร็จแล้วเลือกว่าจะให้มันทำงานกับ Apache หรือ Nginx ถ้าเป็น Apache ก็สั่งคำสั่งข้างล่างนี้ได้เลย แล้วทำตามคำแนะนำที่ปรากฎ ซึ่งเป็นคำแนะนำการติดตั้งแพ็คเกจที่ดีที่สุดตั้งแต่ผมเคยใช้ลินุกซ์มา
$ passenger-install-apache2-module
โดยทั่วไปมันจะบอกให้เราติดตั้งแพ็คเกจเหล่านี้ก่อน
$ sudo aptitude install libcurl4-openssl-dev apache2-prefork-dev libapr1-dev libaprutil1-dev
เสร็จแล้วก็ทำตามคำแนะนำในขั้นตอนสุดท้าย โดยเอาโค้ดไปใส่ไว้ในไฟล์ /etc/apache2/mods-available/passenger.load แล้วสั่งให้ Apache เริ่มทำงานใหม่
$ sudo a2enmod passenger $ sudo apache2ctl restart
ส่วนการติดตั้งใช้กับ Nginx นั้นแตกต่างออกไป เนื่องจากจะต้องผูก Passenger เข้าไปตั้งแต่ตอนคอมไพล์ ซึ่งต้องใช้สิทธิ์ root โดยเราจะทำการติดตั้งผ่านคำสั่ง rvmsudo จากนั้น Passenger จะให้เราเลือกว่าจะคอมไพล์ Nginx วิธีไหน ระหว่างให้มันไปดาวน์โหลดซอร์สโค้ดมาให้ กับให้เราไปเลือกดาวน์โหลดเอง โดยทั่วไปวิธีแรกจะได้ Nginx เวอร์ชั่นที่เก่ากว่านิดหน่อย
$ rvmsudo passenger-install-nginx-module
ที่เหลือเป็นวิธีการตั้งค่า virtual host ศึกษาได้คู่มือของ Apache หรือ Nginx
ในกรณีปกติ Nginx จะใช้หน่วยความจำน้อยกว่า Apache และจากผลการทดสอบของนักพัฒนาท่านอื่นๆ ได้ผลลัพธ์ว่า Apache ทำงานได้ดีกับ dynamic content ส่วน Nginx ทำงานได้ดีกับ static content แต่ก็เห็นหลายๆ ท่านใช้ Nginx เป็น reverse proxy รับ request แล้วส่งต่อไปให้ Apache ทำงาน ซึ่งก็ได้ผลลัพธ์เป็นที่น่าพอใจ
ขอพลังแห่ง Ruby จงสถิตย์แก่ท่าน
0 ความคิดเห็น:
Post a Comment