เปลี่ยน php version ใน apache handlers

apache handlers

20220202 วันนี้มีเรื่องเล่า กรณีปัญหาจาก thainame . net ที่เกิดขึ้นเมื่อหลายวันก่อน คือ wordpress บน hosting ของผมตัวหนึ่ง down ไปพักหนึ่ง เพราะมีการย้ายเครื่องบริการ ตามแผน Maintainance ของผู้ให้บริการที่ผมไปเช่าเค้าอยู่ ซึ่งเข้าใจในสิ่งที่เค้าต้องทำ ต่อมามีโอกาสเข้าไปตรวจสอบเพื่อแก้ไข ได้ควานหาปัญหาจาก code ของ wordpress ว่าปัญหาเกิดจากจุดใดอยู่พักหนึ่ง หาว่าทำไมเปิด blog ขึ้นมาแล้ว ถึง redirect ไป url ที่มีชื่อ host ที่ผมไม่ได้กำหนดขึ้นมาแทนที่ ปัญหาอยู่ตรงที่ ระบบบล็อกรีไดเร็คไปยังที่อยู่ใหม่ที่ผิดพลาด ต่อมา พบตำแหน่งใน code จึงรู้ต้นเหตุว่าในระบบฐานข้อมูล ในตาราง options พบระเบียนที่เก็บข้อมูล WordPress Address (URL) และ Site Address (URL) มีค่าเปลี่ยนไป จึงใช้ phpmyadmin เข้าไปเปลี่ยนกลับให้ถูกต้อง ก็พบว่า blog กลับมาใช้งานได้ปกติ

แล้วตัวผมเองก็มีความต้องการใหม่ขึ้นมา คือ อยากอัพเกรด theme ใหม่ แต่ระบบเตือนว่ารุ่นของ php เป็น 5.6 ซึ่งเก่าแล้ว เมื่อเข้าไปเปลี่ยนเป็น php 7.4 ผ่าน php selector ใน cpanel ซึ่งเป็นตัวเลือกสูงสุดที่มีให้ใช้งานได้ แต่ถ้าจะใช้ php 8.1 ต้องเข้า upgrade แบบเสียค่าใช้จ่าย ผลการเปลี่ยนแปลงใน cpanel ไม่พบปัญหา และใน control panel แสดงเป็น 7.4 ตามที่เปลี่ยนไป แต่ปัญหาอยู่ตรงที่ เปลี่ยนเป็น 7.4 แล้วแต่ phpinfo ยังแสดง php 5.6 อยู่ นั่นหมายความว่า ผมเขียน code ด้วย php และทำงานได้ แต่ตัวแปลภาษายังเป็นรุ่น 5.6 เช่นเดิม นั่งทำใจค้นข้อมูลอยู่เกือบสัปดาห์หนึ่ง มีคนบ่นใน community ของผู้ให้บริการเหมือนผม แต่ไม่มีคำตอบที่น่าพึงพอใจ แล้ววันหนึ่งตอนที่สมองโล่งหน่อย ก็เข้าไปตรวจใน apache handlers เพียงไม่นาน พบว่า เรากำหนดได้ว่าสกุล php จะใช้ application ใด แล้วผมก็เปลี่ยนจาก 5.6 เป็น 7.4 ณ ตำแหน่งนี้ สรุปว่า ตรวจสอบด้วย phpinfo และเขียน code php พบว่าทำงานด้วย 7.4 ตามที่ต้องการแล้ว

site address

การทำให้ xampp บริการ ssl

ขั้นตอนการทำให้ xampp บริการ ssl ใน localhost
ซึ่งใช้งานได้จริงกับใน localhost เท่านั้น

1. https://ssl.indexnl.com/
2. กรอก localhost ในช่อง domain
3. download 51398a-localhost.zip
แฟ้มนี้ใครก็ใช้ได้ครับ ถ้ามี domain คือ localhost
https://drive.google.com/open?id=1St..IHKE3
คลาย zip พบ 4 แฟ้ม
– ca.ssl.indexnl.com.crt
– localhost.crt
– localhost.key
– readme.txt
4. ใน readme.txt แนะนำว่า
– มีวิธีติดตั้งที่ https://ssl.indexnl.com/xampp-wamp-ssl/
– มี certificate อายุ 3 เดือนที่ https://wildcard.indexnl.com/
– มี community พูดคุยกันที่ https://community.apachefriends.org/f/
5. คัดลอก 2 แฟ้ม
– localhost.key ไปไว้ใน c:\xampp\apache\conf\ssl.key\
– localhost.crt ไปไว้ใน C:\xampp\apache\conf\ssl.crt\
6. ค้น certmgr พบ manage computer certificates
คลิ๊กเลือก Trusted Root Certification Authorities
ที่บน menu bar คลิ๊ก Action, All tasks, import, next, browse
เลือกแฟ้ม ca.ssl.indexnl.com.crt แล้ว open, next, finish
พบ The import was successful.
7. เข้าห้อง c:\xampp\apache\conf\extra\
แล้วเปิดแฟ้ม httpd-vhosts.conf ด้วย editor
8. เพิ่มบรรทัดต่อไปนี้ ต่อท้ายสุดของแฟ้ม

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot “c:\xampp\htdocs”
ServerName localhost
ServerAlias localhost
ErrorLog “logs/localhost-error.log”
CustomLog “logs/localhost-access.log” common
</VirtualHost>

9. ในแฟ้มเดิม ลบโค้ดเดิม และเพิ่มโค้ดใหม่
ข้างล่างนี้เป็นของใหม่

<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot “c:\xampp\htdocs”
ServerName localhost
ServerAlias localhost
SSLEngine on
SSLCertificateFile “c:\xampp\apache\conf\ssl.crt\localhost.crt”
SSLCertificateKeyFile “c:\xampp\apache\conf\ssl.key\localhost.key”
<FilesMatch “\.(cgi|shtml|phtml|php)$”>
SSLOptions +StdEnvVars
</FilesMatch>
ErrorLog “logs/localhost-error.log”
CustomLog “logs/localhost-access.log” common
</VirtualHost>

10. restart xampp
แล้วเปิด https://localhost

อ่านเพิ่มที่ http://www.thaiall.com/omni/indexo.html

เทียบรุ่นของ 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

ใช้ xampp เป็น server แต่ลืมติดตั้ง service

xampp console
xampp console

มีเพื่อนเล่าว่า เครื่องบริการเว็บล้มบ่อยมาก แทบทุกสัปดาห์
โดยโปรแกรมที่ใช้เปิดบริการ คือ xampp
เพราะมี console application ที่ใช้สั่งงานได้ง่าย
มีอยู่วันหนึ่งล้มอีก ผมลองเข้าไปดู เมื่อ login เข้าระบบ
ก็พบ application ค่อย ๆ ตื่น และปิด service ทีละตัว
จึงรู้ว่า xampp ไม่ได้เปิด service ทิ้งไว้
ในแบบที่ server ทั่วไปทำกัน

Download โปรแกรมได้ที่ http://www.apachefriends.org/index.html

ผลการตรจสอบพบประเด็น ดังนี้
1. แก้ไขโดยเปิด service ของ apache กับ mysql
ก็คาดว่าครั้งต่อไป server ตัวนี้คงไม่ล้มเพราะเรื่อง service อีก
2. จะเปิด service พบว่า batch file สำหรับเปิดบริการหายไป
จึงไปหาจากเครื่องอื่นมาวางไว้
3. โดยคำสั่งพื้นฐานที่อยู่ใน batch file ที่ใช้เปิด service มีดังนี้
DOS> bin\httpd -k install
DOS> net start Apache2.4
DOS> bin\mysqld
–install mysql
–defaults-file=”%cd%\bin\my.ini”
DOS> net start MySQL

4. อันที่จริงมีรายละเอียดเกี่ยวกับการติดตั้ง service
ของ mysql ที่ต้อง set my.ini ให้เรียบร้อย
แนะนำว่าไปหา copy หรือ reinstall xampp ใหม่ดีกว่า
หากว่า .bat ทั้งหลายหายไป

ldap server สำหรับ windows

ldap for windows
ldap for windows

22 พ.ย.55 จากการทดสอบติดตั้งโปรแกรม ldap for windows เพื่อจัดตั้ง ldap server
สำหรับให้บริการข้อมูล ก็พบว่า OpenLDAP for Windows 2.4.30 ติดตั้งง่าย
ในการติดตั้งก็กด next เป็นส่วนใหญ่ ยกเว้นรหัสผ่านของ user name ที่ผมได้กำหนดไป
โดยกำหนดให้เหมือนค่า default password ของ server ที่มีมาให้
เมื่อใช้คำสั่ง netstat -na ก็พบว่า port 389 ถูกเปิดรอให้บริการอยู่แล้ว
แล้วใช้ Apache Directory Studio
เชื่อมต่อไปที่ host:localhost port:389
แล้วเลือก No Authentication ก็เข้าได้แล้วครับ

ldap : apache directory studio
ldap : apache directory studio

การติดตั้ง Apache Directory Studio นั้น ต้องมี JRE อยู่ในเครื่อง
แล้วผมก็ copy ห้อง /jre ไปไว้ใน  C:\Program Files\Apache Directory Studio
แล้วสามารถเรียกใช้โปรแกรมได้ตามปกติ เพราะพัฒนาด้วยภาษา Java
ถ้าเข้าระบบแบบ No Authentication จะมองเห็นข้อมูลทั่วไป
แต่ไม่เห็นรหัสผ่าน ของสมาชิก จะต้องกำหนด User และ Password สำหรับแบบ Simple Authentication
จึงจะเข้าแก้ไขข้อมูลที่ถูกปิดไว้ ได้แก่ password ของ member นั่นเอง

ldap ou=xxx,dc=xxx,dc=xxx
อาทิ ldap ou=xxx,dc=xxx,dc=xxx

บทเรียนเกี่ยวกับ 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>

ทดสอบโปรแกรม thaiabc.com รุ่น 6.5 กับการประมวลผลบน DVD

1 เม.ย.53 โปรแกรมแก้วสารพัดนึก คือ โปรแกรมที่ช่วย ติดตั้งเครื่องบริการเว็บ เครื่องบริการฐานข้อมูล โอเพนซอร์ส และรวมบทความมากมาย สำหรับนำไปเรียนรู้ได้ด้วยตนเอง หลังติดตั้งเสร็จจะได้โปรแกรม Apache + PHP + MySQL + Perl + Script เช่น e-Commerce, e-Learning, CMS, Article และ Source Code
     วันนี้เขียน software หลายร้อยโปรแกรมลง DVD หลายแผ่นไว้แจกนักศึกษาในชั้นเรียน ในนั้นมีโปรแกรม thaiabc.com แบบ no install ให้ประมวลผล apache + php + mysql ที่ใครเรียกว่าโปรแกรมประเภท WAMP จากการแก้ไขให้ run mysql แบบไม่ใช้ innodb พบว่า wordpress สามารถ run ผ่าน CD-ROM ได้ทันทีใช้ admin เข้าระบบก็ได้ เพราะการอ่าน blog ที่วางไว้สองร้อยกว่าเรื่องไม่มีการเก็บ log ของการอ่านไว้ในฐานข้อมูล  ส่วน learnsquare v2 ก็ไม่พบปัญหาแม้จะ login ด้วย admin ก็ใช้งานผ่าน DVD ได้ปกติ ส่วน phpmyadmin พบว่าสามารถเข้าดูข้อมูลใน mysql ได้ วันนี้คุณสามารถ download ชุดติดตั้งโปรแกรมแก้วสารพัดนึกจาก thaiabc.com ได้แล้ว 1) เมื่อติดตั้งแล้วก็ใช้งานใน Drive C 2)เลือกที่จะคัดลอกไปวางใน DVD หรือ CD ซึ่งเก็บข้อมูลได้มากและราคาถูก 3)เลือกที่จะคัดลอกไปวางไว้ใน Thumb Drive เพื่อใช้งานได้ในทุกที่
     แต่ moodle พบ error message เพราะมีการเขียน session ส่วน mambo มีการ insert เข้าฐานข้อมูลพบ error ส่วน oscommerce มีการ insert เข้าตาราง session พบ error ส่วน gallery ก็ใช้งานไม่ได้พบ error ส่วน phpbb3 ก็ใช้งานไม่ได้พบ error .. สรุปว่าผลการทดสอบกับ DVD ซึ่งเป็นสื่อเก็บข้อมูลแบบอ่านอย่างเดียว ถือเป็นปัญหาที่ไม่ใหญ่นัก เนื่องจากคาดไว้แล้ว แต่การใช้งานจริงก็จะใช้ผ่าน USB Drive หรือ Flash Drive เพราะเป็นอุปกรณ์ที่อ่านเขียนได้ ราคาถูกลงมาก และทำงานได้เร็วกว่า DVD แน่นอน .. ดังนั้นทุกบริการจึงทำงานได้ทั้งหมด