Tag Archives | Apache

ปวดหัวกับ dynamic vhost

อาทิตย์นี้ทั้งอาทิตย์วุ่นๆ ทั้งอาทิตย์เพราะจัดการแฟ้มๆ ต่างๆ ในเซิร์ฟเวอร์ใหม่หมดจากเดิมที่ข้อมูลโดเมนและเว็บแต่ละคนจะอยู่ในแฟ้มบ้านแต่ละคนตอนนี้ย้ายมาอยู่ที่เดียวกัน แล้วคนที่เข้ามาแก้ไขข้อมูลก็อยู่ในแฟ้มโดเมนนั้นไปเลย ไม่ให้ออกมาเพ่นพ่านแฟ้มคนอื่น ตอนแรกก็คิดว่ามันคงไม่ยากอะไร เพราะตั้งใจจะย้ายไปใช้ Lighttpd แต่ปรากฏว่ามันดันใช้ .htaccess เพื่อแก้ url แบบ Apache ไม่ได้พวกค่่าต่างๆ ที่ใช้ใน WordPress และโปรแกรมอื่นๆ พังหมด -_-” พยายามหาทางแก้ข้ามวันข้ามคืนว่า Lighttpd มีทางออกที่ดีกว่าไปเขียน url ใหม่ที่เป็นแบบ Lighttpd โดยเฉพาะหรือป่าว ก็ไม่มีสุดท้ายเลยยอมแพ้ กลับมาใช้ Apache เหมือนเดิม ที่อยากใช้ Lighttpd มากเพราะนอกจากมันเบาแล้วมันยังมีอุปกรณ์เสริมอีกตัวนึงที่อยากได้ใน Apache แต่ดันไม่มี(จริงๆ เหมือนจะมีแต่กำหนดได้งี่เง่ามาก) นั่นคือ mod_evhost เนื่องจากเซิร์ฟเวอร์ที่ดูแลอยู่มันยังไม่มีโปรแกรมที่ใช้ควบคุมเหมือนคนอื่น(พวก Direct Admin, Plesk, cPanel ไรพวกนั้นหนะ) ด้วยเหตุผลว่าจะทำเอง(จนพวกนั้นมันแพง -_-”) ก็เลยต้องหาทางให้แก้ไขไฟล์ต่างๆของเซิร์ฟเวอร์ให้น้อยที่สุด จะได้ไม่ต้องไปรีโหลด หรือเปิดปิดเว็บเซิร์ฟเวอร์บ่อยๆ แล้วโมดูลตัวนี้มันสามารถกำหนดโดยใช้พวก %1 … ต่างๆได้เพื่อกำหนดไปว่าถ้ามีคนเปิดเว็บโดเมนนี้ [...]

Read full story Comments { 0 }

mod_proxy

ทำไว้เมื่อสองหรือสามอาทิตย์ก่อนไม่แน่ใจแต่ไม่ได้จดไว้ เดี๊ยวลืมวันนี้ว่างๆ เลยจดไว้ซะหน่อย(ว่างจริงหรอฟะ) สำหรับปัญหาที่ทำให้ต้องติดก็คือ เวลามีคนมาโหลดไฟล์ใหญ่ๆ จากเซิร์ฟเวอร์มากๆ เนี๊ยะเว็บเซิร์ฟเวอร์ที่แสนดีอย่าง Apache มันก็จะอืดลงไปทันตาเห็น คือเข้าเว็บที่เป็น php ธรรมดากว่าจะประมวลผลแล้วส่งกลับมาต้องรอเป็นนาที ไม่รู้มันทำอะไรของมัน แต่จะทิ้งไว้ก็ใช่ที่ ฉะนั้นอย่ารอช้าเลย เอาพวกไฟล์ใหญ่ๆ เหล่านี้ย้ายไปให้ lighttpd ทำแทนดีกว่า มันตายไปตัวหลักก็ยังรอดด้วย(แต่เท่าที่เห็น มันไม่เคยตายเลยแฮะ ทนกว่า Apache อีก -_-”) อ้อสำหรับใครที่ยังไม่รู้ว่าผมทำอะไร ทำไมมันถึงมีไฟล์ขนาดใหญ่ จริงๆ แล้วเซิร์ฟเวอร์นี้มีโดเมนย่อยอยู่อันนึงไว้เป็นที่ดาวโหลดลินุกซ์(และอื่นๆ อีกมากมายสำหรับเขียนโปรแกรม) เก็บไว้อยู่ด้วย ใครอยากดูหรืออยากโหลดก็เข้าไปที่ http://mirror.nytes.net ได้หรืออยากให้เพิ่มอะไรที่ไม่เถื่อนก็บอกมาละกัน ถ้าพื้นที่ยังเพียงพอก็จะพยายามยัดเข้าไปให้ อ่าวบ่นเยอะและเขียนวิธีทำบ้างดีกว่า เริ่มจากติด lighttpd ก่อนโดยไปที่ /usr/port/www/lighttpd แล้วก็​ make install ธรรมดาอันนี้ไม่มีอะไรพิเศษ ไปที่ /usr/port/www/apache22 แล้ว make config จากนั้นเลือก mod_proxy, mod_proxy_connect และ mod_proxy_http เพิ่มแล้วก็เลือก [...]

Read full story Comments { 0 }

Upgrade mod_passenger

เมื่อวานพี่ที่ทำงานจะเอา redmine ลงก็เลยมาถามแล้วก็เอาที่เคยเขียนไปให้ดูปรากฏว่าไม่สำเร็จ พี่อีกคนทำมั่งก็บอกว่าหา module ของ apache ไม่เจอก็เลยไปดูบ้างปรากฏว่ามันเปลี่ยนรุ่นไปไกลแล้ว จากที่เคยลงมันเป็นรุ่น 1.0.5 ตอนนี้มันกลายเป็น 2.0.2 หละพร้อมกับการตั้งค่าที่เปลี่ยนไป เลยทำให้ปวดหัวเล็กน้อย วันนี้ตอนเช้าเลยลองทำและก็ถือโอกาสอัพเกรดซะด้วยเลย ขั้นตอนๆ เริ่มจากอัพเกรด mod_passenger เป็นรุ่นใหม่ก่อน ขั้นนี้ง่ายๆ เพราะมี gem อยู่ก็สั่งอัพเกรดบรรทัดเดียวด้วยคำสั่ง #gem upgrade ที่เหลือก็ปล่อยมันดาวโหลดไป จากนั้นต้องให้มันคอมไพล์ออกมาเป็น .so สำหรับยัดเข้า apache แต่มันมี binary ให้พร้อมอยู่แล้วแค่สั่ง #passenger-install-apache2-module จากนั้นแก้ไข apache config โดยการเพิ่มสามบรรทัดนี้เข้าไป LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.0.2/ext/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.0.2 PassengerRuby /usr/local/bin/ruby18 จากนั้นกำหนด vhost ตามเดิมก็ใช้ได้หละ แล้วสั่ง apache ให้เริ่มใหม่ก็เรียบร้อย ของเก่าดูได้จากที่นี่: Redmine กับ Phusion [...]

Read full story Comments { 0 }

Java Content Repository

ทิ้งเรื่องนี้ไว้นาน เนื่องจากติดงานอื่น + นึกไม่ออกว่าจะเขียนยังไงต่อดี เลยทิ้งไว้ยาวเลย Java Content Repository (JSR170 และ JSR283) เป็นชุด api มาตรฐานเกี่ยวกับการจัดเก็บข้อมูล โดยที่คนใช้งานไม่ต้องสนใจว่ามันจะจัดเก็บยังไง เหมือนเอาไฟล์มาบันทึกในเครื่อง เราก็ไม่ต้องสนใจว่าระบบไฟล์มันจะเอาข้อมูลไปแบ่งเก็บยังไง ถ้ายังนึกไม่ออกก็ลองนึกถึง Google Base ละกันคิดว่าน่าจะคล้ายๆ กันนะ ตอนนี้คนทีทำให้มันใช้งานได้ที่ผมรู้จักแบบใช้งานได้ฟรีๆ ก็มีอยู่ตัวเดียวคือ Apache Jack Rabbit ในเว็บก็มีอธิบายไว้ว่า Content Repository(CR) มีทั้งหมดสามระดับ โดบที่ทุก CR ต้องมีคือระดับแรก เพื่อให้สามารถอ่านข้อมูลจาก CR ได้ ส่วนระดับที่สองคือความสามารถในการเขียนข้อมูลลง CR และระดับสุดท้ายก็พวกการจัดการรุ่น การใช้ Query Language ในการดึงข้อมูลออกมา การล๊อกข้อมูล ลองไปดูภาพในเว็บ Apache Jack Rabbit ดีกว่า ทำออกมาสวยงามเข้าใจง่ายดี แถมยังบอกด้วยว่า Jack Rabbit ทำได้หมดทั้งสามระดับเลย [...]

Read full story Comments { 1 }