เวลาของเซิร์ฟเวอร์ไม่ตรง แล้วผู้ให้บริการhostingไม่ยอมปรับให้

คือ ที่บริษัทที่จ้างผมเขียนเว็บเค้าใช้โฮสphp+mysqlของ(บ.สงวนนาม) แล้วทีนี้มันห่วยแตกมาก จะมาเล่าให้ฟัง

มันบอกเพื่อความปลอดภัยต้องเปิด safe mode(โฮสบ้าที่ไหนเปิดsafe mode) แล้วพวกฟังก์ชั่นที่สำคัญต่างๆ มันจะใช้ไม่ได้อย่างพวก chmod() fopen() ฯลฯ
คุยกับมันอยู่หลายวัน มันถึงยอมเซ็ตเซิร์ฟเวอร์อีกตัวให้ ทีนี้safe mode เป็น off แล้ว แต่ว่ามันเซ็ตให้ปิดการทำงานของพวก shell สคริ๊ปไม่เป็นอีก -*-

สองวันต่อมา เพิ่งรู้ว่าเวลาของ server ไม่ตรง ทำให้ log timestamp ต่างๆ ผิดพลาดหมด
โทรไปบอกมัน มันบอกว่าเปลี่ยนให้ตรงไม่ได้เพราะจะมีผลต่อผู้ใช้คนอื่น

บอกตรง ๆ ไปเลย
ดีก็บอกว่าดี
ไม่ดีก็บอกว่าไม่ดี
จบ…

อืม… ก่อนซื้อไม่เมล์ถามรายละเอียดก่อนหล่ะครับ ถ้าต้องมาเอาใจใครคนหนึ่ง… host นั้นก็คงไม่ดีหล่ะครับ

เรื่องเวลาไม่ตรงไม่น่าจะเกิดขึ้นได้นะครับ
่ที่ว่าไม่ตรงมันไม่ตรงกับอะไรครับ

ถ้ามันไม่ตรงจริง ก็ใช้ เวลามาตฐานได้นิครับ

เอาไปใปฝาก admin ให้เขาใส่ใน crontab ด้วยคำสั่งนี้

ntpdate -b -s clock.nectec.or.th

ก็น่าจะตรงแล้วครับ

ปัญหาใหญ่ คือคนที่เป็นคนเลือกโฮส ไม่มีความรู้เรื่องเว็บไซต์ แล้วก็ดันจ่ายเงินค่าโฮสเรียบร้อย 1 ปีล่วงหน้า ก่อนที่ผมจะมา
ผมก็บอกไปแล้วให้เปลี่ยนไปที่มันดีและถูกกว่านี้ ก็ไม่เอา เพราะบอกว่ามีคนมาแนะนำว่าโฮสนี้ดี(สงสัยว่าเป็นหน้าม้า)

เรื่องเวลาในเซิร์ฟเวอร์ไม่ตรงคือ ตัวอย่าง
<?
echo "now time is ".date(‘Y-m-d H:i:s’,time());
//out put:now time is 2007-01-18 08:25:42
//ทั้งที่เวลาจริงๆ มันต้องเป็น 2007-01-18 21:25:42
?>

ช้ากว่ากัน 13 ชั่วโมง สงสัยว่ามันไปตั้งserver มาจากกรีนแลนด์มั้ง
แล้วจะไล่ทุกสคริ๊ปเพื่อบวกเวลาเพิ่มอีก 13 ชั่วโมง ใครจะทำ

ผมใช้โฮสมาหลายที่ โฮสนี้ไม่เหมือนใครจริงๆ

อ่านดูแล้วรู้สึกเหมือนเครื่องอยู่ต่างประเทศเลย

บอกไปแล้วครับ มันบอกว่า เดี๋ยวจะทำให้ผู้ใช้คนอื่นได้รับผลกระทบ ???
ผมก็งงว่าแค่เปลี่ยนเวลาให้มันตรง มีแต่ทุกคนได้ประโยชน์ จะมีผลกระทบต่อใครยังไง

คิคิ… งั้นฝากถามกลับไปว่า “คนไทยหรือเปล่า” :wub:

หากมันตอบว่า “No!”

ตัวใครตัวมันครับ :smash:

อยากรู้แล้วครับว่าโฮสไหน PM มาบอกก็ดีนะครับ

ผมไม่ได้ใช้ -b กับ crontab ครับ

/usr/sbin/ntpdate -u -s clock.nectec.or.th; /sbin/hwclock --systohc

เพิ่มตัวหลังเข้าไปด้วยเพื่อให้มัน sync ลง hardware clock ด้วยครับ ไม่งั้น reboot ใหม่มันก็จะไม่ตรงอีก
ต้องรอจนกว่า cron จะรัน

ส่วนเครื่องไหนที่รัน ntpd ได้ ก็น่าจะดีกว่าเนอะ

แต่ถ้าเวลาผิดความจริงแบบว่า 12.00 ทั้งที่ควรเป็น 12.35 แบบนี้ถือว่าผิดปกติและทางโฮสควรปรับแก้ให้ถูกต้อง

แต่ถ้าผิดกันเป็นชั่วโมงเต็มๆถือว่าไม่มีปัญหาครับ เป็นเรื่องของ timezone
อย่าง server อยู่ในไทยก็อาจจจะตั้งกันได้ทั้ง UTC (GMT+0) หรือ ICT (GMT+7)
ถ้าอยู่ประเทศอื่นก็จะ GMT ± ต่างๆกันไป ถือว่าไม่แปลก
server จะอยู่ประเทศใหนไม่สำคัญ ขอเพียงให้ทราบว่าเขาใช้ time zone ± เท่าไหร่เป็นพอ

เป็นหน้าที่ของคุณที่ต้องหาความรู้เรื่อง GMT Time zone มาใช้กับ script ของคุณเอง
ถ้าทางโฮสแก้ time zone ย่อมกระทบกับผู้ใช้คนอื่นที่ทำการตั้งค่า time zone ไว้แล้วแน่นอน
อย่างที่ยกตัวอย่างมาก็เป็น GMT -6 ก็เอาค่า GMT-6 ไปใส่ใน script

แต่ทั้งนี้ต้องเช็คดูด้วยว่า เวลาของ server ตรงกับ GMT ที่ตั้งไว้หรือไม่
เช่น UTC = 0.00
ถ้าตั้งให้ server ใช้ GMT+7 เวลาใน cmos ก็ต้องเป็น 7.00
อย่างกรณีที่ยกมาค่า GMT ที่ server ก็ควรต้องตั้งไว้เป็น GMT-6 แต่ถ้าดันเป็น UTC หรือ GMT+7 ก็เปลี่ยนโฮสเถอะครับ

ลองตรวจสอบด้วย script นี้ดูครับ


<?php
echo "
Server Cmos Time: ".date ("M d Y H:i:s", time());
echo "

UTC Time (GMT+0): ".gmdate ("M d Y H:i:s", time());
echo "

Bangkok Time (GMT+7): ".gmdate ("M d Y H:i:s", time()+25200); // 60sec*60min*7hr=25200
?>

http://www.pinkkeyhost.com/time.php

กรณีของดิฉัน เราไม่สามารถแก้ไข time zone ได้ค่ะ เนื่องจากลูกค้ามีหลายประเทศ (ขืนแก้ให้ตรงไทย แล้วประเทศอื่นจะเอาด้วย มิมั่วไปหมดหรือคะ) ดังนั้น time zone จึงเป็นเวลา local time server ที่วางในเมืองนั้น (ในอเมริกา) ต้องยอมรับค่ะ