การเริ่มต้น deploy PHP app บน Heroku นั้น จำเป็นต้องมีสิ่งเหล่านี้ก่อนนะครับ

  • PHP app ที่ใช้ Composer สำหรับการจัดการ Dependency
  • ต้องติดตั้ง PHP ก่อน
  • ต้องติดตั้ง Composer ก่อน
  • ต้องมี Heroku account
  • ต้องมี Heroku Toolbelt

การติดตั้ง PHP ให้เข้าไปดาวน์โหลด ที่นี่ ครับ โดยหากใช้งานบน Windows ให้เลือกดาวน์โหลดเวอร์ชันสำหรับ Windows ด้วยนะครับ

ไฟล์ที่ดาวน์โหลดมาจะเป็นไฟล์ zip นะครับ ให้เราแตกไฟล์ zip ดังกล่าวไปไว้ที่ใดก็ได้ครับ


Continue reading

วิธีการ Hot Plug หรือ Hot Deploy เป็นวิธีการที่ใช้แก้ไขไม่ให้เกิด Service Temporarily Unavailable (ไม่สามารถให้บริการได้ชั่วคราว) ในขณะที่กำลังทำการ git push เพื่อแก้ไขแอปพลิเคชันบน OpenShift
ทดสอบการทำงานแบบปกติด้วยการเข้าไปแก้ไขไฟล์ index.php ในแอปพลิเคชัน basicphp ที่ได้สร้างไปใน How-To ครั้งที่แล้วด้วยคำสั่ง

cd basicphp

gedit index.php

แก้ไขโดยการเพิ่ม code ดังภาพแล้วทำการบันทึก


Continue reading

เริ่มต้นมารู้จักกับ OpenShift กันก่อนว่าคืออะไรและให้บริการอะไรบ้าง
OpenShift นั้นเป็นผู้ให้บริการคลาวด์คอมพิวติ้งที่มีเบื้องหลังการทำงานมาที่มาจากทาง Red Hat ในรูปแบบของ PaaS (Platform as a service) โดยที่ OpenShift นั้นจะจัดเตรียมสภาพแวดล้อมพื้นฐาน (Environment) ทั้งหมดที่ใช้ในการพัฒนาโปรแกรมหรือแอปพลิเคชัน อาทิเช่น ฐานข้อมูล เครื่องมือสำหรับการพัฒนา เครื่องมือในการดูแลตรวจสอบระบบ (ข้อมูลเพิ่มเติมเกี่ยวกับ PaaS สามารถอ่านเพิ่มเติมได้ที่ http://en.wikipedia.org/wiki/Platform_as_a_service)
OpenShift นั้นจะแบ่งรูปแบบการให้บริการเป็น 3 ประเภทได้แก่

  1. OpenShift Online จะให้บริการแบบ Public PaaS โดยที่ OpenShift จะจัดเตรียมสภาพแวดล้อมพื้นฐานซึ่งสามารถเข้าใช้งานบริการได้จากทุกที่ผ่านทางเว็บไซต์ https://www.openshift.com
  2. OpenShift Enterprise จะให้บริการแบบ Private PaaS โดยที่ทาง OpenShift จะทำการติดตั้งสภาพแวดล้อมพื้นฐานทั้งหมดในเครื่องแม่ข่ายขององกรณ์และมีค่าใช้จ่าย
  3. OpenShift ORIGIN จะให้บริการในรูปแบบการนำสภาพแวดล้อมพื้นฐานทั้งหมดของ OpenShift ไปติดตั้งและจัดการเองโดยที่ทาง OpenShift เปิดให้ดาวน์โหลดตัวติดตั้งที่ https://www.openshift.com/products/origin


Continue reading

AppScale เป็น OpenSource Platform as a Service หรือจะเรียกว่าเป็น OpenSource AppEngine ก็ว่าได้ เพราะใช้งานคล้ายกัน โค้ดที่เขียนบน Google AppEngine สามารถทำงานบน AppScale ได้ นอกจากนี้คุณยังสามารถติดตั้ง AppScale บน VirtualMachine, Cloud Provider ต่างๆ ได้อย่างง่ายๆ ผ่าน AppScale Tools หากใช้ AWS คุณสามารถสั่ง Scale Compute Node ของ AppScale ได้อัตโนมัติผ่านเครื่องมือที่ทาง AppScale เตรียมไว้ให้ได้เลย

สำหรับท่านที่ต้องการเล่น AppScale มีหลายวิธี

  • ติดตั้งเอง
  • ขอใช้ Demo จาก AppScale
  • ทดลองเล่นผ่าน Vagrant Image ก็ได้


Continue reading

Bluemix เป็นบริการ Cloud Computing ของ IBM ซึ่งเน้นในด้าน Platform as a Service (PaaS) โดยใช้ Cloud Foundry ซึ่งเป็น OpenSource มาพัฒนาต่อและให้บริการ สำหรับท่านที่ใช้ Cloud Foundry มาก่อนก็ใช้งานเหมือนๆ กัน แต่ Bluemix สามารถใช้งานได้ทั้งในรูปแบบ cli ผ่าน Cloud Foundry Cli ปกติ และการทำงานผ่านหน้าเว็บไซต์ Bluemix โดยตรง platform ที่ให้บริการใน Bluemix มี 4 platform หลักคือ java, node.js, ruby on rails และ ruby sinatra นอกจากนี้จะเป็น service, add-on ซึ่งสามารถเพิ่มเข้ามาได้ในภายหลังได้ นอกจากนี้ยังมี boilerplates ที่รวมเอา runtime และ service เข้ามาให้บริการร่วมกันสร้างเป็นบริการเฉพาะทาง เช่น Internet of Things platform, Mobile Cloud, Node Cached Starter, Big Data และอื่นๆ อีกมากมาย

สำหรับการใช้งาน Bluemix ต้องสมัครสมาชิกก่อน สมัครได้ฟรีโดยไม่ต้องใช้บัตรเครดิต แต่ใช้งานได้ฟรี 30 วัน หากติดใจอยากให้งานต่อแนะนำให้ติดต่อเซล เพื่อขอเปิด Pay Account ครับ หากไม่คิดจะใช้งานต่อ แนะนำให้รีบเอาข้อมูลออกมาก่อนหมดระยะเวลาใช้งานฟรี 30 วัน ไม่อย่างนั้นจะไม่มีโอกาสเอาข้อมูลกลับมานะครับ อันนี้ประสบการณ์ตรง :P เอาล่ะ เมื่อสมัครสมาชิกกันแล้วก็เริ่มใช้งานกันได้ อย่างที่บอกคือ ถ้าเคยใช้ Cloud Foundry มาก่อนไม่ยากเลยครับ ขั้นแรกไปดาวน์โหลด Cloud Foundry CLI กันก่อน เลือก Binary หรือ Installer ก็ได้ เลือกให้ตรงกับระบบปฏิบัติการที่คุณใช้นะครับ
Continue reading

หลังจากครั้งก่อน เราสร้างแอปขึ้นไปรันบน heroku แล้ว ตอนนี้ผมจะพูดถึงวิธีการดู logs ของแอปเรา ว่ามีใครเข้ามาดู ใครเรียกหน้าไหน หรือมี error อะไรบ้าง ผมจะแก้โค้ดเพิ่มเติม เพื่อดูว่า มีการเรียกใช้หน้าที่แตกต่างกัน จะได้อะไรบ้าง

@app.route('/home/<name>')
def home(name):
    return 'Hello, %s' % name

@app.route('/error')
def error():
    return hello_world

ดูโค้ดที่เพิ่มเข้าไปผ่าน git diff hello.py ก็ได้
Continue reading

Command Line Tools (RHC) เป็นตัวช่วยที่สำคัญและสามารถทำงานได้มากกว่าการทำงานผ่านเว็บไซต์ OpenShift RHC นั้นจะใช้งานผ่านทาง Terminal หรือ Command Line ใน How-To ครั้งที่แล้วได้ทำการติดตั้งไปแล้วใน How-To ครั้งนี้จะมาเล่นเจ้า Command Line Tools (RHC) ในแบบง่ายๆและเข้าใจง่ายกัน
การเรียกดูข้อมูลเบื้องต้นของ RHC ใช้คำสั่ง

rhc

จะปรากฏข้อมูลที่ประกอบด้วยวิธีการใช้และคำสั่งในการทำงานแยกเป็นกลุ่มดังนี้

  • กลุ่มของคำสั่งพื้นฐานในการเริ่มต้นการใช้งาน ( Getting started )
  • กลุ่มของคำสั่งที่ใช้ทำงานกับแอปพลิเคชัน (Working with apps )
  • กลุ่มของคำสั่งที่เป็นคำสั่งในส่วนของการจัดการต่างๆ ( Management commands )


Continue reading

เริ่มต้นสร้างแอปพลิเคชันโดยทำการเลือก Cartridge ดังนี้ PHP 5.4, MySQL 5.5, phpMyAdmin 4 และตั้งชื่อแอปพลิเคชันด้วยคำสั่ง

rhc app-create (app-name) php-5.4 mysql-5.5 phpmyadmin-4

โดยเปลี่ยนค่า (app-name) เป็นชื่อของแอปพลิเคชัน เช่น

rhc app-create basicphp php-5.4 mysql-5.5 phpmyadmin-4

ทำการดูและคัดลอกค่า ชื่อฐานข้อมูล(Database Name), ชื่อผู้ใช้ (Username), รหัสผ่าน (Password) ของฐานข้อมูลมาเก็บไว้ด้วยคำสั่ง

rhc app show –a (app-name)
Continue reading

หลายคนอาจเจอปัญหาอาการ 503 Service Unavailable บน OpenShift หลังจาก Deploy PHP App ทุกครั้งที่มีการ Deploy app ผ่าน git push OpenShift จะเอาไฟล์ที่ push ไปวางแทนที่ revision เดิมและเริ่มกระบวนการ Deploy และจะทะยอย Stop และ Start Service ต่างๆ ใน Cartridge ที่เรามี เช่น Web Server, MySQL เป็นต้น เนื่องจาก OpenShift จะต้องรอ Service ในแต่ Cartridge เริ่มทำงานก่อน ทำให้เราเจอหน้า 503 Service Unavailable ในการ Deploy PHP App ไม่จำเป็นต้อง Stop และ Start Service ใน Cartridge ต่างๆ ก็ได้เพราะภาษา PHP เป็นภาษา Script เราสามารถแก้ปัญหานี้ได้ง่ายๆ โดยใช้วิธีที่เรียกว่า Hot Deploy

การทำ Hot Deploy จะเป็นการสั่งให้ OpenShift ไม่ต้องสนใจเรื่อง Start/Stop Cartridge มีวิธีการง่ายๆ คือ สร้างไฟล์ hot_deploy ใน markers

$ touch YourAppName/.openshift/markers/hot_deploy

$ git commit -am "Adding hot deploy marker"

$ git push

PaaS คืออะไร? <<”>>
Platform as a Service – PaaS คือ แพลตฟอร์มสำหรับการพัฒนา SaaS ที่ให้บริการให้แก่ผู้พัฒนาเพื่อพัฒนาโดยทั่วไปแล้วแพลตฟอร์มดังกล่าวประกอบด้วยฐานข้อมูล มิดเดิลแวร์ และเครื่องมือสำหรับการพัฒนา โดยทั้งหมดนี้ได้รับการนำเสนอในรูปแบบของบริการผ่านทางอินเทอร์เน็ต

o_1.png

แล้วจะหาใช้ได้จากไหนละ o_0?
-http://www.microsoft.com/windowsazure/
-http://www.openshift.com
-http://moncai.com/
-http://www.heroku.com

แต่วันนี้เราจะมาลอง Openshift กัน
ในส่วนการให้บริการของ Openshift นั้นแบ่งเป็น3ระดับ
-Express บริการฟรีโดยมีเงื่อนไขที่เราสามารถสร้างได้เพียง Application เดียวเท่านั้น และมีการกำหนดภาษาที่ใช้พัฒนา PHP , Python , Ruby , Perl
-Flex สมารถสร้างได้หลาย Application มีการเพิ่มภาษาที่ใช้ในการพัฒนามากขี้นและฐานข้อมูลเพิ่มขึ้นจาก Express และยังมีส่วนของการจัดการฐานข้อมูลและระบบตรวจสอบสถานะ แต่ไม่ฟรีนะ
-Power (ยังไม่เปิดให้บริการ)

Type

ผมลองได้แต่แบบ Express เพราะมันฟรี เริ่มลงทะเบียนสมาชิกกันก่อน ขั้นตอนการสมัครก็ไม่ยุ่งยากกด Try it now แล้วกรอกข้อมูลไป ละก็รอรับ Email ยืนยันได้เลย ง่ายกว่า สมัคร Facebook อีก

สมัครเสร็จแล้ว Login เข้ามาก็พบกับหน้า Getting Started
-Install the client tools click ไปอ่านกันได้เลย client ลงได้ทุก OS ครับ แต่สำหรับ Linux เขียนไว้เฉพาะ Red Hat แล้วคนใช้ Ubuntu ละเขาบอกว่าให้ทำตามนี้ครับ

Other Linuxes
1.Prerequisites
Root access
Ruby 1.8 or higher installed or available to be installed
2.Install the required packages: git, ruby, rubygems, and the ruby 1.8 development package.
3.Install the gem:

su -c 'gem install rhc'

ok แค่ลง Packages ตามนั้นแล้ว su -c ‘gem install rhc’ งั้นลุยเลย les’t go ………
3นาทีผ่านไป อ้าว warning –” แล้วมันลงยังไงละเนี่ย google ซิครับแบบนี้ค้นไปพักใหญ่ก็ได้คำตอบตามนี้เลย

sudo apt-get install git-core openssh-client ruby-full

sudo apt-get install rubygems1.8

sudo gem install --source http://gems.rubyforge.org --source https://openshift.redhat.com/app/repo/ rhc

ลงเสร็จก็สร้าง Domain name กับ Application

/var/lib/gems/1.8/bin/rhc-create-domain -n domainname -l EMAIL_ID

พิมพ์ password ตามที่เราลงทะเบียนไว้

/var/lib/gems/1.8/bin/rhc-create-app -a applicationname -t php-5.3.2

พิมพ์ password ตามที่เราลงทะเบียนไว้

เสร็จแล้วทดสอบกันหน่อยว่าใช้ได้ไหม

cd myapp
nano php/index.php
(ทำการแก้ไขcode เพื่อทดสอบ)
git commit -a -m "My first change
git push

เข้าไปที่ http://applicationname-domainname.rhcloud.com

ใครอ่านแล้วยังงงๆก็ตามไปที่ clip นี้ได้เลย

How to install drupal ^!^
ลองเล่นกับopenshiftกันซักเล็กน้อยด้วยการลงDrupal
-เข้าไปcopy link drupal เวอร์ชั่นล่าสุดที่ http://www.drupal.org

wget http://ftp.drupal.org/files/projects/drupal-7.4.tar.gz
cd drupal
tar zxf ../drupal-7.0.tar.gz
mv drupal-7.0/*php
rm -rf drupal-7.0/
cd php
gedit sites/ default/default/default.setting.php

ทำการค้นหาด้วยการกด ctrl+f base
แก้ไขcode เป็น

$ base url = ‘http://applicationname-domainname.rhcloud.com’

สั่งให้สิ่งที่เราแก้ไขขึ้นไปยังCloud

git add -A
git comit -a -m "Add Drupal to my site
push

-ไปที่ websiteที่เราตั่งชื่อไว้แล้วติดตั้ง drupal โดยเลือกdata base เป็น SQLite ในช่อง Database file ให้ใส่เป็น ../../data/.ht.sqlite กด save and continue

-setค่าของdatabaseให้เรียบร้อยเราก็จะได้ Drupalมาใช้งานกันแล้ว
ด้วยความเป็น PaaSเราจึงไม่จำเป็นที่จะต้องไปลงอะไรอื่นๆเกี่ยวกับระบบเลย ^^

อ่านแล้วไม่เห็นภาพหรือไม่เข้าใจก็ตามไปที่ Clip Install drupal ได้เลย…