99 Ë 7 ช ยโย เตโชน ม ต μ μ Èß Web Server π åõ Ÿ ว ตถ ประสงค การเร ยนร คำว า Web Application หร อท บางคนเร ยกส นๆว า WebApp หากให ความหมายง ายๆ จะหมายถ ง โปรแกรมท สามารถเร ยกใช งานผ าน Web Browser โดยผ านระบบเคร อข ายอ นเทอร เน ตหร ออ นทราเน ต การท Web Application ได ร บความน ยมและแพร หลายเป นอย างมากน นมา จากสาเหตหลายประการ เช น ผ ใช โปรแกรมไม ต องต ดต งโปรแกรม ม เพ ยง Web Browser ท ต ดมาก บ OS อย แล วก เพ ยงพอ เร ยกใช งานผ านเคร อข ายอ นเทอร เน ตทำให เข าใช โปรแกรมจากท ใดก ได ข ดความสามารถของ Web Browser ถ กพ ฒนาจนทำงานได ไม แตกต างก บ โปรแกรมจำพวก Server-Client ในบทน เราจะได ทราบถ งว ธ การเตร ยมเคร องม อสำหร บสร าง Web Application ด วยต วเอง บนระบบปฏ บ ต การ Ubuntu 7.1 ã«πª Õ Õß WEB APPLICATION ร ปท 7.1 แสดงส วนประกอบและการทำงานของระบบ Web Application ซ งม 3 ส วน หล ก ได แก Web Servers : ส วนท ต ดต อก บ Web Browser ของผ ใช ทำหน าท จ ดการ REQUEST และ RESPONSE
100 Web Application Servers : ส วนประมวลผล ทำงานตามคำส งจาก Client Side ส วนน ค อส วนท ต องใช การเข ยนโปรแกรม Database Servers : ทำหน าท เก บร กษาข อม ลท ได ร บจาก Client หร อร กษาข อม ล ท จะแสดงผลไปย ง Client ท มา: http://www.windowsecurity.com ร ปท 7.1 องค ประกอบของ WEB APPLICATION ด งน นส งท เราต องเตร ยมในการสร าง Application จ งเป น 3 องค ประกอบด งกล าว ในบทน จะใช โปรแกรมด งต อไปน Web Servers : Apache2.2X Web Application Servers : Ruby On Rails Framework Database Servers : MySQL 7.2 μ μ Èß ในบทท 3 เราได ทำการต ดต งอ บ นต ในเคร องคอมพ วเตอร แล ว ด งน นเราจะดำเน น การต ดต งในส วน Application Servers และ Database Servers เพ มในบทน โดยระบบท ง หมดน นจะถ กใช งานต อไปในบทต างๆ ของหน งส อเล มน การลงโปรแกรมบน OS ตระก ล Linuxไม สะดวกสบายเท าบน Windows กล าวค อ จำเป นต องทำงานหลายๆอย างผ าน COMMAND LINE โดยการเร ยกใช COMMAND
101 LINE บน Ubuntu น กระทำโดยเล อกเมน APPLICATIONS ด านซ ายบน จากน นเล อก ACCESSORIES>TERMINAL และดำเน นการตามข นตอนต อไปน 1) ต ดต งภาษา Ruby sudo apt-get install ruby-full build-essential ระบบจะถามถ ง Password ของ Admin ให พ มพ ลงไปแล วกด Enter จากน นรอ จนเสร จส นกระบวนการ 2) ต ดต ง Apache sudo apt-get install apache2 apache2-mpm-prefork apache2-prefork-dev 3) ต ดต ง Rubygems (ต วจ ดการ Package ของภาษา Ruby) wget http://rubyforge.org/frs/download.php/ 45905/rubygems-1.3.1.tgz tar xzvf rubygems-1.3.1.tgz cd rubygems-1.3.1 sudo ruby setup.rb sudo ln -s /usr/bin/gem1.8 /usr/bin/gem sudo gem update system
102 4) ต ดต ง RAILS sudo gem install rails 5) ต ดต ง MySQL และ CONNECTOR สำหร บเช อมต อก บ Ruby on Rails sudo apt-get install mysql-server mysql-client sudo apt-get install libmysql-ruby libmysqlclient15-dev sudo gem install mysql ระหว างต ดต งระบบจะให ผ ใช สร าง PASSWORD สำหร บ USER: ROOT ซ งเป น USER หล กของ MySQL Server 6) ต ดต ง Passenger (ต วเช อมต อระหว าง Apache ก บ Ruby on Rails) sudo gem install passenger sudo passenger-install-apache2-module เม อเสร จส นคำส งระบบจะแสดง CODE 3 บรรท ดท หน าจอซ งม ล กษณะด งน LoadModule passenger_module /usr/lib/ruby/gems/1.8/ gems/passenger-2.1.2/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger- 2.1.2 PassengerRuby /usr/bin/ruby1.8
r 103 Copy CODE ท หน าจอแล ว พ มพ COMMAND sudo gedit /etc/apache2/apache2.conf ระบบจะเป ดไฟล ในล กษณะ Text Editor ให วาง CODE 3 บรรท ดลงไปด านล างส ด จากน นกด SAVE 7) สร าง APPLICATION ต วแรก rails /home/user/www/mynewapp -d mysql user ค อ USER ท ใช Login เข า Ubuntu mynewapp ค อช อโฟลเดอร สำหร บบรรจ APPLICATION /home/user/www/mynewapp ค อ Path สำหร บเก บ APPLICATION ในความ เป นจร งไม จำเป นต องใช Path น ทว าบน Ubuntu ม ส วนของการบร หารส ทธ ในการเข าถ ง ไฟล และโฟลเดอร ต างๆ การต ง Path อ นจะทำให ไม ม ส ทธ เข าใช หร อม เช นน นต องระบ USER PASSWORD สำหร บเข าถ งท กคร งไป 8) ต งค า Apache sudo gedit /etc/apache2/sites-available/ror.myhost.com ror.myhost.com ค อ URL ท จะใช เร ยก APPLICATION ระบบจะเป ดไฟล เปล าข นมาให พ มพ ลงไปด งด านล าง แล วกด SAVE
104 NameVirtualHost * <VirtualHost *> ServerName ror.myhost.com DocumentRoot /home/user/www/mynewapp/public </VirtualHost> จากน น Restart Apache Server โดย sudo a2enmod rewrite sudo a2ensite ror.myhost.com sudo /etc/init.d/apache2 restart กรณ ท ror.myhost.com ไม ใช URL ท ม อย จร ง เราสามารถ Bypass DNS Servers กล บมาย งเคร องตนเองได โดยการพ มพ คำส ง sudo gedit /etc/hosts และเพ มบรรท ดด านล างลงไปท บรรท ดแรกของไฟล จากน นกด SAVE 127.0.0.1 ror.myhost.com จากน ไปจะสามารถเร ยกใช Web Application ผ าน Web Browser ท URL http:// ror.myhost.com แต หมายความถ งเร ยกเข าเคร องตนเองหร อ LOCALHOST น นเอง
105 9) ต ดต ง MySQL-GUI-Tools (โปรแกรมบร หารจ ดการ MySQL) sudo apt-get install mysql-admin sudo apt-get install mysql-query-browser เม อต ดต งแล วจะสามารถเร ยกใช งานผ านเมน APPLICATIONS> PROGRAM- MING> กรณ ต องการใช phpmyadmin ให ใช คำส งด งต อไปน sudo apt-get install php5 php5-mysql phpmyadmin ระบบจะถามให เล อก Apache2 sudo ln s /usr/share/phpmyadmin//var/www/phpmyadmin หล งจากต ดต งเสร จจะเร ยกใช ได ผ าน Web Browser ได ท URL HTTP:// LOCALHOST/PHPMYADMIN/INDEX.PHP 10) ต ดต ง Netbeanside (โปรแกรมช วยในการเข ยนโปรแกรม) ซ งในส วนน ผ เร ยน จะต ดต งหร อไม ก ได sudo apt-get install netbeans เม อต ดต งแล วจะสามารถเร ยกใช งานผ านเมน APPLICATIONS> PROGRAMMING>NETBEAN IDE ในการใช งานคร งแรกต องทำการเพ ม Module สำหร บการเข ยน Ruby On Rails ลงไปเส ยก อน โดยเล อกท เมน TOOLS>PLUGINS เล อก TAB AVAILABLE PLUGINS จากน นทำเคร องหมายหน าบรรท ด Ruby On Rails จากน นกดท ป ม INSTALL ด านล าง เม อต ดต งเสร จเร ยบร อย Netbeans จะ Restart เพ อพร อมใช งานส วนโปรแกรมภาษา Ruby และ Ruby On Rails ต อไป