Saturday, December 25, 2010

Home ปวดหัวกับ VPS (เจ๊ง) 5 วันเต็มๆ

รู้สึกว่าห่างหายไปพอสมควร กับการอัพบล๊อก เนื่องจาก VPS เสียครับ และครั้งนี้เป็นประสบการณ์อันล้ำค่าเหมือนกันในบทของการจัดการ VPS ส่วนตัว ถ้าเป็นวิชาเรียนก็เรียกได้ว่าเป็น วิชา VPS101 เลยทีเดียว
VPS ที่ผมใช้ก็ที่นี่ครับ PhotonVPS เป็นแบบ semi-managed ซึ่งแปลว่า เค้าจัดการให้ได้บางส่วน เช่น ติดตั้ง OS เบื้องต้น ลง Control panel ให้ แต่หลังจากนั้น เราต้องตั้งค่าและปรับแต่งของเราเอง และถ้าเกิดเสีย ทาง support ของ photonvps อาจจะดูให้ แต่ถ้าแก้ไม่ได้เค้าจะลง OS ใหม่ให้ (ซึ่งเราสามารถลงเองก็ได้ ผ่านทาง SolusVPM กดคลิกเดียว สะดวกรวดเร็ว)
วันนี้เลยอยากจะมาเล่าประสบการณ์ และการแก้ปัญหาให้ฟังครับ
เรื่องก็เริ่มมาจาก ผมมีโปรเจคใหม่ที่จะทำ blog ขึ้นมาอีกชุดนึง เลยทำการ add domain และ subdomain จำนวนหนึ่ง พอทำเสร็จเรียบร้อย ก็ทิ้งไว้เฉยๆ ก่อน เพราะว่ามีงานอื่นที่ต้องสะสาง แต่….. เรื่องก็เกิดจนได้ ผมกลับมาเช็คอีกที apache (httpd) ถูกปิดครับ อยู่ๆ ก็ปิดโดยไม่บอกกล่าวกันเลย ผมเลยแจ้ง support ว่า start apache ผ่านคำสั่ง

# service httpd restart ไม่ได้
ก็รอๆ ทาง support เค้าแก้ ปรากฎเค้าสามารถ start httpd ได้แล้ว แต่… เว็บผมทั้งหมดขึ้นเป็นหน้า apache test page หมดเลย ซะงั้น ผมก็เลยแจ้งเค้าไป ซึ่งเค้าตอบกลับมาว่า zone file มันมั่วมากตอนนี้ เค้าใช้คำว่า messy ถ้าจะแก้ไข มีความจำเป็นต้อง rebuild VPS ใหม่หมด ข้อมูลจะหาย!!
โอ้ววววว ผมต้องทำใหม่หมดหรือนี่ แต่ก็ต้องยอมจำนวน เพราะหลังจากหาวิธีผ่าน พี่ Google แล้ว ลองทำดู ยิ่งทำ มันยิ่งมั่ว
หลังจาก rebuild VPS ใหม่ ก็สบายใจนึกว่าเรื่องจบ อิอิ (Rebuild VPS เหมือนกับลง windows ใหม่นั่นแหละ)
แต่ ไม่จบครับ หลังจากผมทำ restore ด้วยมือล้วนๆๆ TT อัพไฟล์ อัพ DB, add domain, sub domain เข้าไปใหม่หมด (ใช้ Kloxo เป็นตัวจัดการ เนื่องจากฟรี) แต่แล้ว เรื่องก็เกิดอีกจนได้ ผมลองไป # service httpd restart งานเข้าครับ ไม่สามารถ start ได้อีกแล้ว ผมเริ่มอารมณ์เสีย
เลยติดต่อ support เค้าก็ลองแก้ๆๆๆ ปรากฎต้อง rebuild VPS ใหม่อีกรอบ เฮ้อ!! ผมลองใช้คำสั่ง
# last | head
เพื่อดูว่าเค้าเข้ามาดูให้ผมจริงหรือไม่ (มันเป็นคำสั่งดูประวัติการ login ผ่าน SSH) พบว่า support เค้าเข้ามาดูให้ 7 ชั่วโมงแหนะ ก็เลยคิดว่า มันคงไม่ได้จริงๆ ผมก็เลยให้เค้าลง OS ใหม่อีกรอบ บวกลง kloxo ให้ด้วย
และผมก็ทำเหมือนเดิม อัพไฟล์ อัพ DB, add domain, sub domain เข้าไปใหม่หมด แล้วลองมา restart httpd โอ้ว เป็นอีกแล้วครับ อาการเดิมเลย ผมจะบ้าตายยย วันที่ 3 แล้วนะครับ ยังไม่เส็ดซักที คราวนี้ผมตัดสินใจ ไม่ถาม support แล้วครับ หาวิธีเอง ลองไปเยอะมาก (เพราะคิดว่า ไหนๆ มันเจ๊งแล้ว ขอเอาไว้ลองวิชาหน่อย) ลองไป ลองมา ผมพบเค้าลางของปัญหา โดยไปดูไฟล์ httpd.conf จาก
# nano -w /etc/httpd/conf/httpd.conf
สิ่งที่เจอคือ มัน include ตัว kloxo.conf ไว้ด้วย ก็เลยลองสืบต่อไป ปรากฎมันไป include ไฟล์ virtualhost.conf อีกที ซึ่งในนี้จะเป็นไฟล์ที่สร้าง virtual host ของแต่ละเว็บที่เรา add domain หรือ subdomain เข้าไป (ผมไม่ค่อยเข้าใจคำว่า VirtualHost เท่าไหร่ เข้าใจคร่าวๆ ว่า ถ้าจะให้โฮสนึง IP นึง แต่ใช้ได้หลายเว็บ เราต้องระบุไฟล์นี้ไว้ ไม่รู้เข้าใจถูกหรือเปล่า กรุณาอย่าเอาไปอ้างอิงนะครับ 55)
ผมเลยจัดการด้วยวิธีเกรียนๆ เอา include ออกเลย ไม่ต้องไปใช้ kloxo.conf แล้ว ปรากฎว่า start httpd ได้แล้วครับ ดีใจมาก นึกว่าเรื่องจะจบแล้ว 55 แต่พอลองเข้าเว็บดู เจอ apache test page อีกแล้วครับท่าน!!! เลยคิดไปว่า สงสัยตอนแรก support มันทำงี้แน่เลย อาการเดียวกันเลย เลยหาวิธีต่อไปครับ ก็ไม่ได้ซักที เลยตัดสินใจ เอาวะ ลงใหม่อีกรอบ (รอบที่ 3 แล้ว) แต่คราวนี้ไม่อยากพึ่ง support แล้วครับ เลยไปจัดการลองลง CentOS ผ่าน SolusVPM แบบคลิกเดียวจบ แล้วรอประมา ครึ่งชั่วโมง ให้ระบบมันรัน แล้วผมก็ลง kloxo ผ่านทาง SSH ลงเสร็จ ทีนี้เลยลอง ค่อยๆ add domain และ subdomain เพื่อจะลองไปเรื่อยๆ ว่า ตรงไหนมีปัญหา และนึกขึ้นได้ว่า ตอนผม add subdomain ด้วย Imacro มันมีอยู่ 2 อันที่อ่านจาก csv แล้วมันแปลกๆ คือแทนที่มันจะเป็น abcdefg มันกลับเปน ” abcdefg ” คือมันมีเครื่องหมายคำพูด และมีช่องว่างด้วย เลยเดาในขั้นแรกว่า น่าจะเกิดจากอันนี้ด้วย เวลา add ไปมันอาจจะทำให้ไปสร้างไฟล์ VirtualHost ผิดพลาด เป้นผลทำให้ start apache ไม่ขึ้น
ผมเลยค่อยๆ ลอง add subdomain ที่มีปัญหาด้วยมือ และอันอื่นด้วย imacro เหมือนเดิม (แต่คราวนี้ นั่งเฝ้าเลย กันพลาด) พอ เพิ่มไปซัก 50 อัน ก็มาลอง restart httpd ทีนึง ปรากฎมันก็ได้ ไม่มีปัญหา แสดงว่าผมมาถูกทางแล้ว
ผมเลย add ไปเรื่อยๆ จนถึงจำนวนนึงปรากฎมันเริ่มจะ start ไม่ได้ และไม่ได้เกี่ยวกับปัญหาด้านบนด้วย เลยลองไปเข้าเว็บดู ปรากฎ งานเข้าอีกแล้วครับ เข้าเว็บไม่ได้เลยทีนี้ มันโหลดค้างไปเลย ลอง # top ดูโหลดก็ไม่ได้ทำงานหนักอะไรเลย 0.00% เลยลอง ping เว็บดูครับ ปรากฏ มัน ping ได้ ไม่ช้า เลยยิ่งงงเข้าไปใหญ่เลยครับ หาวิธีจาก Google (อีกแล้ว) ลองไปลองมา ก็ไม่ได้ ปิด Firewall มั่ง ดู port มั่ง มั่วๆ ไปเรื่อยๆ ก็ยังไม่ได้ เลยลองไปดู error log ผ่านทางคำสั่ง
# tail -f /var/log/httpd/error_log
ซึ่งเป็นการดู error ของ httpd ว่ามีอะไรบ้าง แล้วก็เจอ (24)Too many open files: apr_socket_accept: (client socket) https เต็มเลยครับ ไม่รู้ทำไง เลยไปหาใน google แล้วเค้าบอกให้เพิ่ม ulimit ไม่รู้ว่าคือไรเหมือนกัน 55 แต่ก็เพิ่มไปด้วยคำสั่ง
# ulimit -n 4096
เหมือนเป็นการเพิ่ม limit ให้เปิดไฟล์ได้เยอะๆ ค่า default มันอยู่ที่ 1024 คงไม่พอ และแล้ว…. ก็หายทันทีครับ เข้าเว็บได้แล้ว ก็ครบ 5 วันพอดีครับ กว่าจะดึงเว็บมา online ได้ แต่ไม่รู้จะเกิดปัญหาอะไรอีกรึเปล่า อย่าให้มีเล้ยย สาธุ!!
ปล. ปัญหานี้ ไม่รู้เกี่ยวกับ ssl รึเปล่า รบกวนผู้รู้ทีครับ เห็น error เกี่ยวกับ SSL ใน log เยอะมาก
ปล2. หวังว่าบทความนี้จะเป็นประโยชน์แก่ผู้ที่เริ่มต้นจะเช่า vps นะครับ อาจจะเกิดปัญหาเดียวกับผมก็ได้ 55
ปล3. ไม่รู้ผมแก้ถูกหลักรึเปล่า แต่เว็บออนไลน์ได้แล้ว รบกวนผู้รู้ ชี้แนะด้วยครับ

จาก

http://zidit.me/%E0%B8%9B%E0%B8%A7%E0%B8%94%E0%B8%AB%E0%B8%B1%E0%B8%A7%E0%B8%81%E0%B8%B1%E0%B8%9A-vps-%E0%B9%80%E0%B8%88%E0%B9%8A%E0%B8%87-5-%E0%B8%A7%E0%B8%B1%E0%B8%99%E0%B9%80%E0%B8%95%E0%B9%87%E0%B8%A1%E0%B9%86/

0 comments:

Post a Comment

 
Design by GURU