อัพเกรดจาก php5.2.6 เป็น 5.4.45 ของ appserv

appserv version
appserv version

1. วันนี้ (1 ก.พ.59) อ.ตุ้ย แจ้งว่าเครื่องบริการเครื่องหนึ่ง
ลง appserv 2.5.10 ที่มีรุ่นของ php เป็น 5.2.6
ซึ่งเป็น appserv รุ่นล่าสุด ที่มี php รุ่น 5
แต่รุ่นถัดมาคือ appserv 8.0 ใช้ php รุ่น 5.6.17 กับ 7.0.2
ซึ่งผมไม่เลือกการลง appserv รุ่นใหม่ เพราะ php ใหม่เกินไป

https://www.appservnetwork.com/en/

appserv 2.5.10 to 8.0.0
appserv 2.5.10 to 8.0.0

2. จุดเริ่มต้น เกิดจากคุณเปรม พบปัญหาในการพัฒนาระบบ
ต้องการส่งอีเมลเป็นภาษาจีนพร้อมภาษาไทย พบปัญหา
โดยฟังก์ชัน mail ส่งข้อมูลไปแล้ว
มีปัญหาไม่แสดงผลภาษาจีนร่วมกับภาษาไทยใน gmail คือ ภาษาจีนหายไปเฉย ๆ
วิธีหนึ่งที่แก้ไขได้คือแปลภาษาจีนที่เป็น unicode เป็น html entities
http://unicode.online-toolz.com/tools/unicode-html-entities-convertor.php

services.msc on WinXP
services.msc on WinXP

3. การแปลง unicode เป็น html entities ใช้ฟังก์ชันง่าย ๆ ได้เลย
โดยใช้ preg_replace_callback แล้วสร้างฟังก์ชันภายในฟังก์ชัน
แต่ php 5.2 ไม่ยอมรับฟังก์ชันแบบนี้
http://stackoverflow.com/questions/13280200/convert-unicode-to-html-entities-hex
คุณซันก็แนะนำ create_function ซึ่งก็น่าสนใจ
ที่ http://php.net/manual/en/function.create-function.php

sha1 คือ ค่า checksum ของแฟ้มที่ download มา
sha1 คือ ค่า checksum ของแฟ้มที่ download มา

4. วิธีที่ผมเลือกแก้ปัญหานี้ คือการ upgrade php จาก 5.2.6 เป็น 5.4.45
ซึ่งความต่างของรุ่น น่าจะกระทบ code ทั้งระบบน้อยกว่าการลง 5.6.17 กับ 7.0.2

– download php 5.4.45 ที่เป็น thread safe for windows มาแตก zip
– stop service ของ apache
– backup php ไว้ก่อน
– copy แฟ้มที่แตกไว้ เข้าห้อง php
– start service ของ apache
– ใช้ phpinfo() ตรวจรุ่นของ php
– ทดสอบ script ใน server ทั้งหมด
– ถ้ามีปัญหา ก็ copy php ที่ backup ไว้ กลับมาทับห้องเดิม
– กลับไปแก้ script ใน server ทั้งหมดให้ทำงานกับ php version ใหม่
– แล้วค่อยย้อนขั้นตอนข้างบนอีกครั้ง
* script ในเครื่องมี programer สัก 4 คนได้มังครับ

5. เลขรุ่นของ appserv ขยับจาก 2.5.10 มาเป็น 8.0.0 ข้ามเลขไปหลายตัว
คาดว่า เพราะเวลาในการพัฒนามีน้อย และมีงานประจำต้องทำ
ผมเองก็พัฒนา thaiabc.com ก็มีแนวคิดคล้าย appserv
นี่ก็หยุดอัพเวอร์ชั่น ไปหลายปีแล้วเหมือนกัน
http://www.thaiabc.com

https://www.facebook.com/media/set/?set=a.10153893646492272.1073741911.350024507271