สวัสดีครับ ช่วงนี้หายไปนานเลย ช่วงนี้มีกิจกรรมของภาควิชาเยอะมาก เลยไม่ได้มาอัพบทความสักเท่าไหร่เลย = =”
ตอนนี้ผม (ทำระบบหลังบ้าน, PHP, JS) กับวิน (@winwanwon) (ทำหน้าบ้าน, HTML, CSS, JS, AngularJS) ช่วยกันทำเว็บค่าย Comcamp#27 กันอยู่ครับ ที่มาของการใช้งาน appspot ก็มาจากในหน้าประกาศผลการเข้าค่าย มันจะมี reChaptcha ให้ตรวจสอบว่าเป็นบอทรึเปล่า แล้วมันจะต้องมีการส่งค่าไปที่ Google ตามคู่มือนี้เพื่อพิสูจน์ทราบว่าเป็นรหัสจริง ไม่ได้โมเมเอา แต่เนื่องจากว่า server ของค่ายมันจำกัดการเชื่อมต่อจาก server ไปโลกภายนอก พอน้องๆ ส่ง reChaptcha มาเยอะๆ firewall มันจะบล็อกการเชื่อมต่อตัวหลังๆ ทำให้บางคนไม่สามารถเช็คผลได้ ผมก็เลยต้องใช้วิธิ “ยืมมือส่งสาร” ตามผังด้านล่างนี้ :
จากภาพจะเห็นได้ว่าจะต้องมีการทำงานทั้งฝั่ง client คือยิง request ไปยัง server รองที่ทำหน้าที่ช่วยตรวจผลของ reChaptcha และฝั่ง server ย่อย นอกจากเช็คกับ Google แล้ว ถ้าถูกต้องก็ต้องส่ง Token ไปยัง server ของค่ายเพื่อแคชผลไว้ไม่ต้องเช็คซ้ำ นอกจากจะลดการทำงานของฝั่ง server ค่าที่ไม่ต้องไปบากหน้าติดต่อกับ Google ทุกครั้ง (ให้มีเฉพาะกรณี server ย่อยทำงานให้ไม่ทัน) แล้ว ยังช่วยคงค่า Quota การติดต่อของ server ไว้ได้อีกด้วย
เริ่มต้นก็เข้าไปที่หน้าแดชบอร์ดของ appspot เพื่อสร้าง Application ในงานนี้ครับ
เสร็จแล้วก็เข้าไปที่ App Config Tool แล้วเลือก PHP configuration เพื่อเข้าไปโหลด SDK มาใช้ครับ (แน่ล่ะ จะทำ PHP นี่เนอะ) อ้อ! อย่าลืมลง Python ก่อนนะครับ เพราะโปรแกรมรันด้วย Python
ติดตั้งเสร็จก็เรียก Google App Engine Launcher ขึ้นมา…
แล้วก็สร้าง Application บนเครื่องเราขึ้นมา กด File > Create New Application (Ctrl + N) แล้วสร้างขึ้นมาโดยใช้ชื่อ Application เดียวกับที่เราสร้างใน web เมื่อตะกี๊นี้ครับ
ให้เราเลือกที่ตั้งของ Application บนเครื่องเรา แล้วอย่าลืมเลือก runtime เป็น PHP ด้วย ส่วนเลขพอร์ตทั้งสองอันจะใช้เลขที่สร้างมาให้หรือจะใส่เองก็ได้ แต่ต้องไม่ซ้ำกับโปรแกรมอื่นหรือโปรเจกอื่นๆนะครับ…
จะได้แอพฯ ขึ้นมาตัวหนึ่งพร้อม Code Hello world ของ PHP ใน main.php ใน folder ที่เราเลือกไว้ ให้เราเลือก application ของเราแล้วกด Edit ครับ เราจะเข้าไปแก้ไฟล์ app.yaml ซึ่งเป็นไฟล์ config ของโครงการครับ
ให้เราใส่ property
module: default
เพิ่มจากเดิมด้วยนะครับ เพราะไม่งั้นมันจะมีปัญหา ‘module’ parameter not specified นะครับ
ส่วนใน handlers เราสามารถเปลี่ยนหน้าแรกของโปรเจกได้ด้วยนะครับ เช่นจะเปลี่ยนจาก main.php เป็น index.php หรืออื่นๆ ก็แล้วแต่ใจชอบ เสร็จแล้วกด save
เมื่อปรับแต่งจนพอใจแล้ว สั่งรัน Project (บนเครื่องเรา) โดยเลือกโปรเจกของเราแล้วกด Run จะใช้เวลาครู่หนึ่งครับเพื่อเปิดใช้งาน
เสร็จแล้ว เราสามารถเข้าไปลองเขียน Code ในโฟลเดอร์ที่เราสร้างไว้ในตอนต้น แล้วรันบนหน้าเว็บได้ผ่านทาง http://localhost:[port] โดย port นี้จะเป็นพอร์ตคนละตัวกับ admin port นะครับ หรือจะกดดูจาก Browse รูปลูกโลกก็ได้เช่นกัน
หลังจากที่เราเขียน Code จนพอใจแล้ว หากต้องการ deploy สู่เว็บจริง ทำได้โดยการเลือกโปรเจกของเราแล้วกด deploy จะขึ้น popup ให้กรอก username และ password ที่ใช้ เสร็จแล้วรอจนกว่าจะคัดลอกข้อมูลจนขึ้นคำว่า “You can close this window now.” ก็เป็นอันเรียบร้อย (ถ้าไม่ขึ้น error น่ะนะ)
หลังจากนี้ ก็สามารถเข้าไปใช้งานโปรเจกเราได้ที่ https://[project_name].appspot.com ได้เลยครับ 😉
จริงๆ นอกจาก PHP ยังรองรับการใช้กับ MySQL ด้วยนะครับ แต่คงต้องไว้คราวหน้า (ตอนไหนก็ไม่รู้ = =”) ส่วนใครมีคำถามอะไรก็ถามมาใน Comment ได้เลยนะครับ 😀