PHP

จากตอนที่แล้ว “[Windows Azure ตอนที่ 3 การติดตั้ง Drupal บน Windows Azure Web Sites](http://www.blognone.com/node/52835)” นั้น จะไม่ขอพูดในบางส่วนที่เป็นการอธิบายซ้ำซึ่งอยู่ในขั้นตอนที่ 1 – 30 ซึ่งจะใช้การตั้งค่าที่เหมือนกัน (ใช้ในการอ้างอิงได้ทุก CMS ของ PHP ด้วยซ้ำไป)

โดยจากขั้นตอนที่ 1- 30 จากบทความที่แล้ว เราจะมีข้อมูลดังต่อไปนี้

  • FTP host name , username และ password สำหรับการ FTP/FTPS เข้าไปวางไฟล์
  • Endpoint Information (MySQL hostname) และ Access Credentials  (username และ password) ของฐานข้อมูล MySQL จาก cleardb

เมื่อเราได้ข้อมูลครบก็ทำการโอนย้ายไฟล์ของ WordPress ที่ดาวน์โหลดได้จาก wordpress.org/download

สำหรับการ FTP ไปวางไฟล์ ถ้าไม่ใช้ client ที่ติดมากับ Windows ก็ใช้สามารถใช้ client ของเจ้าอื่นๆ ได้ อย่างตัวอย่างนี้ก็ใช้ CuteFTP 9.0 ในการอัพโหลดไฟล์ได้เช่นกัน

โดยนำไฟล์ไปวางไว้ที่ /site/wwwroot

ทำการเข้าหน้าแรกของตัวเว็บที่ติดตั้งไฟล์ WordPress จากข้อที่แล้ว

นำข้อมูล Endpoint Information (MySQL hostname) และ Access Credentials  (username และ password) ของฐานข้อมูล MySQL จาก cleardb มากรอกในหน้า database connection details นี้

สั่ง Run the install เพื่อติดตั้งฐานข้อมูลลง cleardb

เมื่อติดตั้งฐานข้อมูลเรียบร้อยแล้ว ก็กำหนดข้อมูลต่างๆ ของเว็บที่ทำจาก WordPress รวมไปถึง Username และ Password สำหรับเข้าไปจัดการ WordPress เสียก่อน

เมื่อกำหนดค่าเรียบร้อยก็ให้เข้าระบบ Dashboard ลอง WordPress ได้ทันที

 

การปรับแต่ง PHP บน Windows Azure Web Sites

1. การเปิดสร้าง rewrite rules เพื่อใช้ Custom URL ของ WordPress

เข้าไปที่ Dashboard ของ WordPress แล้วเลือกเมนู Settings และไปเมนูชื่อ Permalink

เสร็จแล้วตั้งค่า Permalink ได้ตามที่ต้องการ เสร็จแล้วกด Save

เมื่อ FTP เข้าไป จะเห็นว่าตัว WordPress จะสร้าง web.config ขึ้นมาให้ โดยภายในจะมี rewrite rules ที่เราตั้งไว้

โดยภายหลังจากสร้างไฟล์แล้ว ถ้าเราต้องการปรับแต่ง rewrite rules เพื่อใช้ Custom URL ก็สามารถทำผ่านไฟล์ web.config ได้ทันที

การเพิ่ม PHP Extension ใน Windows Azure Web Sites

ใน Windows Azure Web Sites นั้นเป็นระบบปฎิบัติการ Windows Server 2012 และระบบให้บริการเว็บ Microsoft Internet Information Services 8.0 (IIS 8.0) ซึ่งทำงานร่วมกับ PHP ที่ Compile ผ่าน MSVC9 x86 และทำงานผ่าน FastCGI API อีกทั้งยังทำงานแบบ Non Thread Safety ไว้ด้วย

การเข้าไปหา extension ใน http://downloads.php.net/pierre/ นั้นจึงต้องใช้ extension ที่เป็น nts ที่ย่อมาจาก Non Thread Safety และเป็นการ Compile แบบ VC9 x86 เช่นกัน

จากตัวอย่าง ทางผู้เขียนยกตัวอย่างการติดตั้ง extension ที่ชื่อว่า Memcache ลงบน PHP 5.3.19 บน Windows Azure Web Sites โดยเลือกชื่อว่า php_memcache-2.2.6-5.3-nts-vc9-x86.zip

ทำการแตกไฟล์ php_memcache-2.2.6-5.3-nts-vc9-x86.zip  ออกมา จะได้ไฟล์ php_memcache.dll เสร็จแล้วนำไฟล์ไปวางไว้ที่ /site/wwwroot/bin

เข้าไปที่ Dashboard แล้วไปที่ CONFIGURE

เลื่อนลงมาที่หัวข้อ app settings แล้วใส่ค่าดังต่อไปนี้

KEY ใส่ค่าเป็น PHP_EXTENSIONS

VALUE ใส่ค่าเป็น bin\php_memcache.dll

ถ้าหากมีการกำหนดค่าของ extension มากกว่า 1 ตัวให้ใช้ comma (,) ขั้นไปเรื่อยๆ เช่น

bin\php_memcache.dll,bin\php_mongo.dll

โดยไฟล์ extension.dll ต้องอยู่ใน directory “/site/wwwroot/bin” เพื่อความสะดวกในการจัดการ

เมื่อตั้งค่าเรียบร้อยแล้วให้กด Restart

รอจนกว่าสถานะ Restart จะสำเร็จ

เมื่อแสดงผล phpinfo ใหม่อีกครั้ง extension ที่ใส่ลงไปจะมาให้เราเห็นใน phpinfo

ลองทำสอบใช้งานได้ตามโค้ดด้านล่างก็จะสามารถใช้งานได้

การปรับแต่งค่า PHP.ini ใน Windows Azure Web Sites แบบ global setting

ในบางครั้ง ค่าเริ่มต้นของ phpconfig ที่ Windows Azure Web Sites ให้มา อาจจะไม่เพียงพอ หรือไม่เหมาะสม เช่นการแสดงผลความผิดพลาดที่ปิดไว้ หรือขนาดไฟล์ที่ให้รองรับการอัพโหลดเข้ามาที่ Windows Azure Web Sites เพียง 20MB ที่น้อยเกินไป เป็นต้น เราสามารถตั้งค่าพวกนี้ใหม่ได้ด้วยการใช้ไฟล์ชื่อ .user.ini โดยอัพโหลดเข้าไปไว้ใน /site/wwwroot เพื่อให้ Windows Azure Web Sites ใช้ค่าในไฟล์ดังกล่าวแทนค่าเริ่มต้นของระบบ

จากตัวอย่างได้ทดลองเปิดการแจ้งเตือนความผิดพลาด และเพิ่มขนาดไฟล์ที่รองรับการอัพโหลดเป็น 100MB ด้วยการตั้งค่าด้านล่าง

; User Settingsdisplay_errors=Onupload_max_filesize=100M

เมื่อตั้งค่าเรียบร้อยแล้วก็ Restart ตัว Windows Azure Web Sites เพื่อให้ระบบอ่านค่าใหม่อีกครั้ง

ลักษณะการขยายระบบบน Windows Azure Web Sites

การเข้าไปปรับแต่งเรื่องการขยายระบบบน Windows Azure Web Sites นั้นสามารถทำได้ที่ หน้า Portal ของ Windows Azure โดยเข้าไปที่ Dashboard ของ Web Sites นั้นๆ แล้ว ไปที่เมนู SCALE เพื่อเลือกตัวเลือกรูปแบบสำหรับการขยายระบบ ซึ่งใน Windows Azure Web Sites นั้นจะมีรูปแบบสำหรับการขยายระบบอยู่ 3 รูปแบบคือ Free, Shared และ Standard

1. Free – เป็นการนำเว็บของเราไปไว้บน Virtual Machine บนระบบประมวลผลแบบกลุ่มเมฆ และให้เราใช้งาน CPU เพียง 1 Core โดยเป็นการให้ใช้งานในรูปแบบแชร์ทรัพยากรในการประมวผล ซึ่งจะให้ใช้งานฟรีโดยให้ระยะเวลาในการประมวลผลเพียง 1 ชั่วโมงต่อวันเท่านั้น และไม่สามารถขยายการใช้งานออกไป ด้วยการเพิ่มอินสแตนซ์ไม่ได้

2. Shared – เป็นการนำเว็บของเราไปไว้บน Virtual Machine บนระบบประมวลผลแบบกลุ่มเมฆ และให้เราใช้งาน CPU เพียง 1 Core โดยเป็นการให้ใช้งานในรูปแบบแชร์ทรัพยากรในการประมวผล ซึ่งจะให้ใช้งานโดยให้ระยะเวลาในการประมวลผลเพียง 4 ชั่วโมงต่อวันเท่านั้น (240 นาที) แต่สามารถขยายการใช้งานออกไปด้วยการเพิ่มอินสแตนซ์ได้มากทีสุดถึง 6 อินสแตนซ์ หรือทำให้ทำงานประมวลผต่อเนื่องได้ 24 ชั่วโมงเลยทีเดียว (4 ชั่วโมง x 6 อินสแตนซ์)

การเลื่อนปรับค่าทำได้ที่หน้า SCALE ด้วยการเลือก WEB SITE MODE ไปที่ SHARED แล้วไปเลื่อนปรับ INSTANCE COUNT ที่ด้านล่างตามจำนวนที่ต้องการ

3. Standard - เป็นการนำเว็บของเราไปไว้บน Virtual Machine บนระบบประมวลผลแบบกลุ่มเมฆ โดยเป็นการจอง Virtual Machine เป็นอินสแตนซ์ตามจำนวนและความสามารถที่ต้องการไว้เพียงระบบเดียวโดยคิดระยะเวลาการใช้งานเป็นชั่วโมงหรือนาที โดยขึ้นอยู่กับคุณสมบัติและความสามารถที่ได้เลือกขอใช้บริการ

สำหรับตัวเลือก Standard นี้จะมีตัวเลือกคุณสมบัติของ Virtual Machine ดังนี้

    COMPUTE INSTANCE NAME

    VIRTUAL CORES

    RAM

    Small

    1

    1.75 GB

    Medium

    2

    3.5 GB

    Large

    4

    7 GB

      การเลือกปรับค่าทำได้ที่หน้า SCALE ด้วยการเลือก WEB SITE MODE ไปที่ STANDARD แล้วไปเลื่อนปรับ INSTANCE SIZE ตามคุณสมบัติที่ต้องการ

      เมื่อเราเลือก Web Sites ตัวใดตัวหนึ่งเป็น Standard แล้ว เราสามารถเลือกให้ Web Sites อื่นๆ ที่เรามีอยู่ มาใช้งานอินสแตนซ์นี้ร่วมได้ด้วย

      เมื่อเราเลือกแล้วว่าจะให้ Web Sites ตัวไหนบ้างใช้งาน Standard ที่เรากำหนด ก็มาถึงขั้นตอนการกำหนดการขยายระบบตามโหลดของหน่วยประมลผล หรือช่วงเวลาที่เรากำหนดได้อัตโนมัติ หรือการทำ Autoscale

      การกำหนดขยายระบบแบบแปร่ตามการโหลดของหน่วยประมวล

      จากภาพตัวอย่างจะเพิ่มอินสแตนซ์ที่มีคุณสมบัติแบบ Small (1 core, 1.75GB Memory) ระหว่าง 1 – 4 อินสแตนซ์ขึ้นมาตามโหลดของตัว Virtual Machine ที่มีอยู่ โดยใช้การวัดจากการโหลดของหน่วยประมวลผลที่ Virtual Machine โดยตั้งค่าให้อยู่ระหว่าง 60 – 80% ความหมายของตัวต่ำสุด-สูงสุดคือ

      1. ถ้าโหลดต่ำกว่า 60% ก็จะทำการลดอินสแตนซ์ลงจนถึงค่า INSTANCE COUNT ที่ตั้งไว้

      2. ถ้าโหลดสูงถึง 80% จะสร้างอินสแตนซ์เพิ่มขึ้นมาเรื่อยๆ แต่ไม่เกินค่า INSTANCE COUNT ที่ตั้งไว้ จนกว่าโหลดจะลงมาในระดับต่ำกว่า 80%

       

      การกำหนดขยายระบบแบบแปร่ตามช่วงเวลาที่ตั้งไว้

      สิ่งแรกที่ต้องทำก่อนคือตั้งค่าเวลาที่จะใช้ในการขยายระบบ เพื่อกำหนดช่วงเวลา โดยไปที่ “set up schedule times

      การตั้งค่า Set up schedule times นั้นมีตัวเลือก

      1. Different scale settings for day and night – ให้สามารถแยกระหว่างเวลาทำงการ (day) กับเวลาเลิกทำการ (night)

      2. Differnet scale settings for week days and weekends – ให้แยกเวลาระหว่างวันทำการ (weekdays; วันจันทร์-ศุกร์) กับวันหยุด (weekends; วันเสาร์-อาทิตย์)

      3. Time ตั้งเวลาว่าเวลาทำการจะเริ่มต้นเมื่อไหร่

      4. Time zone กำหนด Time zone ที่ใช้อ้างอิง

      จากตัวอย่างเมื่อผมเลือกทั้งหมด โดยกำหนดว่าเวลาทำการคือ 8:00 ถึง 20:00 เป็นเวลาทำการ และเลือกตั้งให้ขยายระบบแยกกันระหว่างเวลาทำการ เวลาเลิกการ วันทำการและวันหยุด โดยเมื่อเราตั้งเสร็จแล้ว ที่ EDIT SCALE SETTINGS FOR SCHEDULE จะมีตัวเลือกเพิ่มมา 3 ตัวเลือก คือ Week Day, Week Night และ Weekend

      Week Day (วันทำการจันทร์-ศุกร์ เวลา 8:00 – 20:00) จะเพิ่มอินสแตนซ์ที่มีคุณสมบัติแบบ Small (1 core, 1.75GB Memory) จำนวน 4 อินสแตนซ์ขึ้นมาคงที่ตลอดระยะเวลาดังกล่าว

      Week Night(วันทำการจันทร์-ศุกร์ เวลา 20:01 – 7:59) จะลดอินสแตนซ์ที่มีคุณสมบัติแบบ Small (1 core, 1.75GB Memory) ลงเหลือจำนวน 1 อินสแตนซ์คงที่ตลอดระยะเวลาดังกล่าว

      Weekend (วันทำการเสาร์-อาทิตย์ เวลา 00:00 – 23:59) จะปรับอินสแตนซ์ที่มีคุณสมบัติแบบ Small (1 core, 1.75GB Memory) กลับมาที่จำนวน 2 อินสแตนซ์คงที่ตลอดระยะเวลาดังกล่าว

      จากตัวอย่างข้างตอนสำหรับการขยายระบบทั้งแบบแปร่ตามโหลดของหน่วยประมวลผลและแบบแปร่ตามช่วงเวลา เราสามารถนำมาผสมกันเพื่อใช้ในการตั้งค่าขยายระบบแปร่ตามช่วงเวลาและขยายระบบแปร่ตามหน่วยประมวผลได้พร้อมๆ กันด้วย

      การตั้งค่าขยายระบบแบบแปร่ผันตามโหลดของหน่วยประมวลและแปร่ตามช่วงเวลา

      ทำการตั้งค่าเวลาที่จะใช้ในการขยายระบบ เพื่อกำหนดช่วงเวลา

      1. ไปที่ “set up schedule times” ตามข้อที่ปรับแต่งเรื่องช่วงเวลาในการขยายระบบเสียก่อน

      2. แล้วเลือก Week Day, Week Night และ Weekend ตามช่วงเวลาที่ต้องการปรับขยายระบบ

      3. เลือก SCALE BY METRIC โดยเลือกที่ CPU จะมีตัวเลือก TARGET CPU ขึ้นมาเพิ่มเติมจาก INSTANCE COUNT ที่มีอยู่ก่อนแล้ว

      Week Day (วันทำการจันทร์-ศุกร์ เวลา 8:00 – 20:00)

      ระบบเพิ่มอินสแตนซ์ที่มีคุณสมบัติแบบ Small (1 core, 1.75GB Memory) จำนวน 2 – 6 อินสแตนซ์ขึ้นและลง โดยแปร่ตามการโหลดของหน่วยประมลผลตั้งแต่ 70 – 90 % ของระบบ

      Week Night(วันทำการจันทร์-ศุกร์ เวลา 20:01 – 7:59)

      ระบบเพิ่มอินสแตนซ์ที่มีคุณสมบัติแบบ Small (1 core, 1.75GB Memory) จำนวน 1 – 2 อินสแตนซ์ขึ้นและลง โดยแปร่ตามการโหลดของหน่วยประมลผลตั้งแต่ 70 – 90 % ของระบบ

      Weekend (วันทำการเสาร์-อาทิตย์ เวลา 00:00 – 23:59)

      ระบบเพิ่มอินสแตนซ์ที่มีคุณสมบัติแบบ Small (1 core, 1.75GB Memory) จำนวน 1 – 4 อินสแตนซ์ขึ้นและลง โดยแปร่ตามการโหลดของหน่วยประมลผลตั้งแต่ 70 – 90 % ของระบบ

      จากทั้งหมดที่ได้กล่าวมาในชุดบทความ Windows Azure นี้ มุ่งเน้นเรื่องราวการทำความเข้าใจระบบประมวลผลแบบกลุ่มเมฆ รูปแบบบริการต่างๆ ของ Windows Azure การคิดราคา และยกตัวอย่างการนำเว็บไซต์ขึ้นสู่ระบบ Windows Azure โดยมุ่งเป็นตัวอย่างในการขยายระบบอย่างง่ายเพื่อความเข้าใจในขั้นตอนการสร้าง ปรับแต่ง และนำระบบขึ้นบนบริการย่อยที่ชื่อ Windows Azure Web Sites ทำให้เห็นการติดตั้งเว็บไซต์ที่มีตัวช่วยให้สามารถรองรับโหลดขนาดใหญ่ อีกทั้งยังมีความฉลาดในการขยายตัวเองได้ตามรูปแบบที่ได้ตั้งค่าไว้ด้วย

      Hiring! บริษัทที่น่าสนใจ

      Carmen Software company cover
      Carmen Software
      Hotel Financial Solutions
      Next Innovation (Thailand) Co., Ltd. company cover
      Next Innovation (Thailand) Co., Ltd.
      We are web design with consulting & engineering services driven the future stronger and flexibility.
      KKP Dime company cover
      KKP Dime
      KKP Dime บริษัทในเครือเกียรตินาคินภัทร
      Kiatnakin Phatra Financial Group company cover
      Kiatnakin Phatra Financial Group
      Financial Service
      Fastwork Technologies company cover
      Fastwork Technologies
      Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
      Thoughtworks Thailand company cover
      Thoughtworks Thailand
      Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
      Iron Software company cover
      Iron Software
      Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
      CLEVERSE company cover
      CLEVERSE
      Cleverse is a Venture Builder. Our team builds several tech companies.
      Nipa Cloud company cover
      Nipa Cloud
      #1 OpenStack cloud provider in Thailand with our own data center and software platform.
      Bangmod Enterprise company cover
      Bangmod Enterprise
      The leader in Cloud Server and Hosting in Thailand.
      CIMB THAI Bank company cover
      CIMB THAI Bank
      MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
      Bangkok Bank company cover
      Bangkok Bank
      Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
      MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
      MuvMi (Urban Mobility Tech Co.,Ltd.)
      Shape the future of urban mobility towards affordable, clean, and safe solutions
      T.N. Digital Solution Co., Ltd. company cover
      T.N. Digital Solution Co., Ltd.
      TNDS has been involving in every first move of banking’s major digital transformation.
      KBTG - KASIKORN Business-Technology Group company cover
      KBTG - KASIKORN Business-Technology Group
      KBTG - "The Technology Company for Digital Business Innovation"
      Siam Commercial Bank Public Company Limited company cover
      Siam Commercial Bank Public Company Limited
      "Let's start a brighter career future together"
      Icon Framework co.,Ltd. company cover
      Icon Framework co.,Ltd.
      Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
      REFINITIV company cover
      REFINITIV
      The Financial and Risk business of Thomson Reuters is now Refinitiv
      H LAB company cover
      H LAB
      Re-engineering healthcare systems through intelligent platforms and system design.
      The Gang Technology Co., Ltd. company cover
      The Gang Technology Co., Ltd.
      We're a Digital Agency that helps our customers transform their business into digital with ease.
      LTMH company cover
      LTMH
      LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
      Seven Peaks company cover
      Seven Peaks
      We Drive Digital Transformation
      Wisesight (Thailand) Co., Ltd. company cover
      Wisesight (Thailand) Co., Ltd.
      The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
      MOLOG Tech company cover
      MOLOG Tech
      We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
      Data Wow Co.,Ltd company cover
      Data Wow Co.,Ltd
      We enable our clients to realize increased productivity by solving their most complex issues by Data
      LINE Company Thailand company cover
      LINE Company Thailand
      LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
      LINE MAN Wongnai company cover
      LINE MAN Wongnai
      Join our journey to becoming No.1 food platform in Thailand

      ลองทำสอบใช้งานได้ตามโค้ดด้านล่างก็จะสามารถใช้งานได้

      ลองทำสอบ ?

      และให้เราใช้งาน CPU เพียง 1 Core โดยเป็นการให้ใช้งานในรูปแบบแชร์ทรัพยากรในการประมวผล

      ประมวผล=> ประมวลผล

      แต่สามารถขยายการใช้งานออกไปด้วยการเพิ่มอินสแตนซ์ได้มากทีสุดถึง 6 อินสแตนซ์

      ได้มากทีสุด => ได้มากที่สุด

      หรือทำให้ทำงานประมวลผต่อเนื่องได้ 24 ชั่วโมงเลยทีเดียว

      ประมวลผต่อเนื่อง => ประมวลผลต่อเนื่อง

      การกำหนดขยายระบบแบบแปร่ตามการโหลดของหน่วยประมวล

      การกำหนดขยายระบบแบบแปร่ตามช่วงเวลาที่ตั้งไว้

      จากตัวอย่างข้างตอนสำหรับการขยายระบบทั้งแบบแปร่ตามโหลดของหน่วยประมวลผลและแบบแปร่ตามช่วงเวลา

      เราสามารถนำมาผสมกันเพื่อใช้ในการตั้งค่าขยายระบบแปร่ตามช่วงเวลาและขยายระบบแปร่ตามหน่วยประมวผลได้พร้อมๆ กันด้วย

      การตั้งค่าขยายระบบแบบแปร่ผันตามโหลดของหน่วยประมวลและแปร่ตามช่วงเวลา

      โดยแปร่ตามการโหลดของหน่วยประมลผลตั้งแต่ 70 – 90 % ของระบบ

      แปร่ ?

      หน่วยประมวผล => หน่วยประมวลผล

      หน่วยประมลผล => หน่วยประมวลผล

      ให้สามารถแยกระหว่างเวลาทำงการ (day) กับเวลาเลิกทำการ (night)

      เวลาทำงการ ?