อัพเกรดจาก 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

เทียบรุ่นของ apache ใน appserv กับ xampp

apache httpd.conf
apache httpd.conf

เหตุเกิดจากข้อสงสัยเรื่อง appserv กับ xampp
ที่เกี่ยวกับบริการ download แฟ้ม .zip
ภายในเครือข่าย LAN ช้ามาก กับเร็วปรื้ด ๆ
แล้วก็พยายามลดข้อกำหนดของ Apache 2.0.52.0
ใน httpd.conf ให้เหลือ 11 บรรทัด
เพื่อบริการ download แฟ้ม .zip
แข่งกับ Apache 2.4.2.0 ใน ApacheFriends XAMPP 1.8.0
พบว่า apache รุ่นใหม่กว่า บริการได้เร็วกว่าหลายเท่า
ต่างกันระหว่าง 1 MB/s กับ 4 MB/s ใน LAN

download new version
download new version

#httpd.conf

ServerRoot “../”
PidFile c:/windows/httpd.pid
Listen 80
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
LoadModule mime_module modules/mod_mime.so
ServerName 192.168.1.100:80
DocumentRoot “../htdocs”
<Directory />
</Directory>
ErrorLog c:/windows/error.log

จากปัญหาความเร็วที่แตกต่าง
จึงทดสอบในหลายเครื่อง และหลายคู่
เทียบระหว่าง appserv กับ xampp
แต่มา clear ตอนล้าง config ของ apache
ทำให้เห็นชัดว่า น่าจะเป็นความต่างที่รุ่นของ apache

มีอีกคู่หนึ่งคือ Apache 2.2.25.0 กับ Apache 2.4.2.0 บน Xampp
พบว่า Apache แบบ MSI ช้ากว่า 1 ใน 3
คือได้ 200 KBps กับ 600 KBps

มูดเดิ้ลล้ม แล้วย้ายเครื่อง ออกอาการสตาร์ทไม่ติด

can not start moodle
can not start moodle
การติดตั้ง moodle 2.1 ขึ้นไป
ต้องใช้ PHP 5.3.2 เป็นขั้นต่ำ
อย่างเครื่องที่ใช้ PHP 5.2.6 ถ้ามีการปิดระบบ หรือย้ายเครื่อง
อาจพบปัญหานี้ได้ ก็แก้ไขโดยเปลี่ยนรุ่นของ php
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM
in C:\Appserv\www\_class\lib\accesslib.php on line 5288
แล้วอย่าลืมว่า mysql ก็ต้อง MySQL 5.0.25 ขึ้นไป
อย่างเครื่องบริการเครื่องหนึ่งเป็น php 4 + mysql 4
ก็ต้องเลือก moodle 1.9 เพราะ 2.2 ต้องการมากกว่าที่มี
แต่ถ้าเป็นเครื่องที่ควบคุมได้ ก็ลงไปเลย php5.3 + mysql5.0
แล้วการใช้ appserv ก็เป็นอะไรที่สะดวกสบายยิ่ง
.. confirm

บทเรียนเกี่ยวกับ apache

6 ก.พ.55 มีบทเรียนด้านคอมพิวเตอร์มาฝาก 2 เรื่อง
เกี่ยวกับ apache web server (ใช้ appserv)
1. พบคำว่า “Could not connect to the database”
ในหน้าแรกของ wordpress หลังจากปรับระบบนิดหน่อย ซึ่งเดิมใช้งานได้ปกติ
ปัญหานี้เกิดรหัสผ่านเข้า mysql ใน wp-config.php ไม่ตรงกับที่กำหนดไ…ว้
สรุปว่า รหัสของ mysql ไม่ถูกต้อง (หลายมือครับ)

2. เครื่องบริการหนึ่งเครื่องมี ip จำนวน 2 เบอร์
ต้องการให้เบอร์หนึ่งชี้ไปที่ host ตัวหนึ่ง และอีกตัวชี้ไปที่ host อีกตัว
จึงต้องกำหนด virtual host ใน httpd.conf

NameVirtualHost 10.10.10.10
<VirtualHost 10.10.10.10>
ServerAdmin burin_ruj@nation.ac.th
DocumentRoot C:\www\class
ServerName class.nation.ac.th
</VirtualHost>