วิธี config และใช้ nginx + php-fpm + fast-cgi เบื้องต้นให้ใช้งานกับ Codeigniter by heha

31
Dec
0

เนื่องด้วยทั่วๆ ไปแล้ว web server มาตรฐานทั่วๆ ไปที่ใช้งานกันคือ Apache แต่ว่า Apache นั้นบริโภค Memory อย่างไม่ไยดี และถ้าเว็บเรามีการใช้งาน static file จำพวกรูปภาพหรือ css, js มากๆ ก็จะกิน Memory หนักขึ้นไปอีก หลักการของ nginx จึงเปรียบเสมือนการเป็นป้ายบอกทางว่าถ้าเป็น static file ให้เรียกไฟล์นั้นๆ ขึ้นมาตรงๆ เลยไม่ต้องผ่าน apache หรือตัวกลางอื่นๆ แต่ถ้าเป็น Dynamic file เช่น PHP ก็ให้ส่งไปยัง Fast-cgi แทน ซึ่ง Fast-cgi จะทำหน้าที่อ่าน PHP เพียงอย่างเดียว ไม่ต้องเผื่อรองรับ static file จึงกิน Memory น้อยกว่านั่นเอง สุดท้ายจึงทำให้สามารถรองรับการใช้งานเว็บไซต์ที่มี traffic หนักๆ ได้อย่างสบายๆ กว่า apache มากหลายเท่าตัว

อันที่จริงแล้ว Apache ก็ไม่ได้มีแต่ข้อเสียขนาดนั้น ข้อดีของ Apache คือเหมือนเป็น All-in-one machine ติดตั้งตัวเดียว ทำงานได้ทุกอย่าง ถ้ามีคนใช้งานไม่มาก เราจะแทบไม่ต้องไปยุ่งกับการปรับ config เลยด้วยซ้ำไป เพียงแต่ว่าเมื่อเราต้องการให้รองรับการใช้งานหนักๆ ได้ เราจึงจำเป็นต้องใช้ “ผู้เชี่ยวชาญเฉพาะด้าน” ซึ่งในที่นี้คือ fast-cgi นั่นเอง และจะมี php-fpm คอยควบคุมสั่งการอีกทอดหนึ่งซึ่งแน่นอนว่าการ config เพื่อใช้งานจึงยุ่งยากกว่า แต่ก็แลกมากับประสิทธิภาพที่น่าพอใจ

รู้จักกับ config ที่น่าสนใจของ php ในไฟล์ php.ini by heha

26
Nov
0

PHP มี config ต่างๆ มากมาย หากอยากรู้ว่า server ของเราเซ็ต config อะไรไว้อยู่บ้างให้ทดสอบด้วยการสั่ง phpinfo(); ในไฟล์ php ไฟล์ใดก็ได้ ระบบจะแสดง config ออกมาให้เห็นทั้งหมด รวมไปถึงหากต้องการทราบว่าไฟล์ php.ini อยู่ที่ไหนก็ดูได้จาก phpinfo(); เช่นกัน

ตัวอย่าง phpinfo()

ตัวอย่าง phpinfo()

สำหรับการ setup php ตั้งแต่เวอร์ชั่น 5.3 เป็นต้นไป จะมีไฟล์ php.ini-development เอาไว้เป็น sample ให้ copy เป็น php.ini ถ้าต้องการใช้ทดสอบโปรแกรมเฉยๆ และไฟล์ php.ini-production เอาไว้ใช้ใน server ที่ให้บริการกับลูกค้าจริง

วิธี Invite Friend หรือส่ง Request ใน Facebook ด้วย Javascript SDK by heha

31
Oct
0

ก่อนจะอ่านต่อ แนะนำให้ไปอ่านการใช้งาน Facebook Javascript SDK เบื้องต้นที่บทความเก่าของผมอันนี้ก่อนครับ คือต้องสั่ง FB.init ก่อนจะใช้งานครับ จากนั้นเรามาดูรูปแบบคำสั่งกันเลยดีกว่าครับ (ถ้าใครใช้กับ app เก่าที่มีอยู่แล้ว ให้ปรับที่หน้า developer ของ app tab Advanced ให้ Requests 2.0 Efficient เป็น enable เอาไว้ด้วยครับ)

Request Dialog 2.0

Request Dialog 2.0

หัดสร้าง Application บน Facebook ด้วย Heroku (Free Cloud Hosting) by heha

30
Sep
4

บทความนี้จริงๆ ก็เหมือนของเก่าเล่าใหม่ เพราะเคยเขียนไปนานมากแล้ว แต่ครั้งนี้ Facebook ได้ประกาศจับมือกับ Heroku ทำให้เรามี Cloud Hosting ได้ใช้กันฟรีๆ ไม่ต้องไปหา host เองให้วุ่นวาย (แต่เฉพาะการทำ app ง่ายๆ เล็กๆ น้อยๆ นะครับ ถ้าจะทำจริงจัง ควรไปเช่า host แบบจ่ายเงินจริงจังอยู่ดี) ซึ่งตัว Heroku นั้นมีข้อดีอย่างมากอย่างแรกคือมี https ในตัว ทำให้ผู้ที่ต้องการจะสร้าง application บน facebook แบบง่ายๆ ไม่ต้องไปวุ่นวายหา Host ใช้งาน และหาทางจดค่าโดเมนและค่า https certificate แบบรายปีให้วุ่นวาย ผมจึงขอเขียนเป็นบทความใหม่ดังนี้ครับ

องค์ประกอบจำเป็นสำหรับนำ application ขึ้น Facebook

รูปแสดง Architecture ของเกม facebook ทั่วๆ ไป

  • —เตรียม Hosting สำหรับเก็บไฟล์ รองรับ load การใช้งานทั่วไป (ในที่นี้ของเราคือ Heroku ครับ)
  • —สร้าง Application ใน Developer ของ Facebook
  • —SDK สำหรับติดต่อกับ Facebook ภาษาต่างๆ (หลักๆ ที่ใช้คือ PHP SDK และ Javascript SDK)
  • —ตัวเกม ตัว app ที่เราสร้างขึ้น

การแก้ไข ปรับเปลี่ยนเว็บไซต์ให้รองรับ HTTPS by heha

30
Sep
0

เนื่องด้วย facebook บังคับให้ application ทุกตัวใช้งาน HTTPS ภายในวันที่ 1 ตุลาคมนี้ ทำให้ผมต้องนั่งปรับแก้ยกใหญ่ โดยสิ่งที่ต้องแก้มีดังนี้

ต้องแก้อะไรบ้าง?

1. ทำ self-signed certificate (ใช้งาน https ได้แต่ browser จะขึ้นเตือนว่าไม่ปลอดภัย และไม่สามารถใช้งานกับ facebook app ที่อยู่ใน canvas ได้) หรือไปขอ certificate จากผู้ให้บริการต่างๆเช่น Thawte, RapidSSL, Godaddy, Verisign ฯลฯ ซึ่งต้องเสียค่าจดทะเบียน ซึ่งจะแตกต่างกันไป

2. แก้ไข code ของเราในการ link ไปแต่ละหน้าจาก http:// ให้เป็น https:// ทั้งหมด เพื่อให้คนที่ใช้งานเว็บไซต์อยู่ไม่หลุดออกจากการเชื่อมต่อ https เพียงเพราะคลิก link เปลี่ยนหน้า

3. แก้ไข code ของเราที่ call ไปยัง external site ต่างๆ เช่น banner exchange ต่างๆ (ที่จริงพวก widget เช่น google+, facebook like หรือ google analytic ก็เข้าเคสนี้ แต่เนื่องจาก code ที่ให้มาจะ auto detect ให้เองว่าเป็น https หรือไม่อยู่แล้วจึงไม่ค่อยมีปัญหานัก ยกเว้นเรา call หาไฟล์ javascript ข้างนอกเองตรงๆ ก็ต้องแก้จาก http:// เป็น https:// ด้วยเช่นกัน)

ผู้ให้บริการ SSL แต่ละเจ้าต่างกันอย่างไร?