Skip to content

Engiblog.com

ก็แค่ engineer ที่อยากเขียน blog – Just a Simple engineer's blog.

Archive

Category: Webhosting

HTTP WARNING: HTTP/1.1 403 Forbidden คืออะไร เกิดอะไรขึ้น

เนื่องจากใช้งาน Nagios ในการ monitoring server ต่างๆ รวมทั้ง webhosting

แต่อยู่ดีดันเกิด Warning ว่า “HTTP WARNING: HTTP/1.1 403 Forbidden”

ไม่ต้องตกใจไปครับ วิธีแก้ไม่ยากเลยครับ

ไปที่ โดเมนเนมหลักของ webhosting ที่ warning แล้วสร้างไฟล์ index.html เข้าไปใน

httpdocs หรือ public_html แล้วแต่ webhosting พอสร้างเสร็จแค่นี้ warning ก็หายแล้วครับ

เนื่องจาก waring ที่เตือนนั้นบอกว่า หาไฟล์ index ของโดเมนเนมหลักไม่เจอครับ :-)

วันนี้ผมจะมาเสนอคำว่า Wildcard SSL ครับ เนื่องจากเหตุผลเดิม คือ มาจากลูกค้า

พอดีลูกค้ามีการใช้งาน SSL กับ domainname หลักอยู่และ ต้องการอยากจะใช้งาน

SSL กับ subdomain ที่สร้างขึ้นมาด้วย จะทำยังไงดี หลังจากที่ลองแล้วก็ใช้งานไม่ได้

จึงลองหาข้อมูลดูพบว่าถ้าต้องการจะใช้งาน SSL กับ subdomain ภายใต้ Domainname หลัก

นั้นต้องทำการจด SSL แบบ Wildcard SSL ซึ่งจะทำให้สามารถใช้งานกับ Subdomain ภายใต้

Domainname หลักได้ เพราะว่าการจด SSL นั้นจะมองเป็นอย่างนี้ครับ

www.engiblog.com จะมองเป็น 1 Domain และถ้าสร้าง subdomain เช่น

webmaster.engiblog.com ก้จะมองเป็นอีก 1 Domain ซึ่งจะไม่สามารถใช้งาน SSL ร่วมกันได้

ถ้าต้องการจะใช้กับ Subdomain ด้วยก้ต้องจด SSL เป็นปแบบ Wildcard SSL only ครับพี่น้อง

จดแบบ Wildcard SSL จะเอาไปใส่กี่ Subdomain ก็เรื่องของคุณเลยครับ ตามสบาย :-)

ผมมักจะเจอลูกค้าชอบถามว่า

“เว็บโฮสติ้งคุณ 1 server แชร์กี่เว็บ”

“1 IP ใช้กี่เว็บ”

“เว็บโฮสติ้คุณแชร์เว็บเยอะไปหรือเปล่า?”

และคำถามต่างๆ อีกมากมาก ที่สงสัยประมาณว่า เค้าอยากอยู่เพื่อนบ้านที่อยู่บน server เดียวกับกัน

IP เดียว จะมีสักกี่เว็บไซต์ ผมเลยคิดว่าเอางี้ดีกว่า ไม่อยากตอบและ ไปเช็คเองเลยดีกว่าไหม (พูดเล่นนะครับ)

เข้าไปที่เว็บนี้โดยด่วนเลยครับ

http://www.yougetsignal.com/tools/web-sites-on-web-server/

เว็บนี้เค้าสามารถบอกคุณได้ครับว่า มีเพื่อนร่วมชะตาบน server เดียวกับคุณสักกี่เว็บไซต์

การทำงานคร่าวของเว็บไซต์นี้คือ คุณป้อนชื่อเว็บไซต์คุณลงไป แล้วก็รอให้ระบบทำการ Reverse Lookup

สักครู่ก็จได้ผลลัพธ์ออกมา จะได้ไม่ต้องมาถามกันบ่อยๆ 5555

แต่จะบอกกันอีกนิดนึงนะครับ โฮสติ้งบางที่เค้าก็ใช้วิธีการ Add IP มากกว่าหนึ่ง IP ลงไปใน 1 server

และก็กำหนดว่า 1 IP นั้น จะมีเว็บไซต์ใช้งานได้กี่เว็บไซต์ แค่นี้เองครับ เค้าไม่ได้โกง หรือว่าโกหกนะครับ

แค่ประหยัดทรัพยากร และทำให้ลูกค้าสบายใจได้ไงครับ :-)

หลังจากหยุดยาว ชิวๆ อยู่กับบ้านเนื่องจากไปทำงานไม่ได้ เพราะสถานการณ์ “เสื้อแดง”

ไปทำงานที่บริษัทไม่ได้จึงต้องทำงานออนไลน์อยู่ที่บ้านแทน มีลูกค้ามีปัญหากับเว็บไซต์

ส่งอีเมลผานทาง support มาว่ามีปัญหากับโค้ดดังนี้

Microsoft OLE DB Provider for ODBC Drivers error ’80004005′

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry
key ‘Temporary (volatile) Jet DSN for process 0x4a80 Thread 0×5484 DBC 0x19d3c84 Jet’.

/path ที่อยู่ของโค้ด , line 5

ซึ่งลูกค้ารายนี้ใช้งาน MS Access เป็น Database ตอนแรกนึกว่า Application Pool ของลูกค้า stop

เลยจัด Restart ไปทีนึง แต่ก็ไม่หาย พอเข้าไปดูที่ Path ที่เก็บไฟล์ database ถึงได้รู้ว่า มีไฟล์ที่เป็น

tmp ของ access เปิดค้างอยู่ (ไฟล์นามสกุล .ldb) เลยรู้และว่าเกิดจากที่มีคนรันโค้ดในส่วนนี้แล้วเกิด

มีปัญหาขัดข้องที่ทำให้ database ตัวนี้เจ๊งไปบางส่วนทำให้ database lock เลยต้องทำดังนี้ครับ

1. FTP เข้าไปโหลดไฟล์ database ออกมา

2. เปิดไฟล์ database ตัวนั้นด้วย MS Access

3. MS Access จะถามว่าต้องการ Repair ไหม จะช้าอยู่ใย ตอบไปเลยว่า “จัดมาด่วน” และก็ “รอ”

4. เมื่อ Repair เสร็จแล้วก็ทำการ save as เลือก version ของ access ที่ต้องการ save ผมเลือกเป็น 2002-2003 (เนื่องจากผมใช้เป็น MS Access 2007)

5. FTP กลับขึ้นไปที่ server ที่เก่า และ รอ…..

6. ยิ้มหน้าบาน รอคำชมจากลูกค้า ครับ

ง่ายๆ ไม่ยากเลยใช่ไหมครับ

เรื่องมีอยู่ว่า ลูกค้ารายนึงเค้าต้องการทำลิงค์ให้โหลดไฟล์ที่เป็น 7 Zip แต่พอทำลิงค์เสร็จแล้ว

กดโหลดที่ไรก็ขึ้นแต่ว่า Error 404 ซึ่งดาวน์โหลดไม่ได้ เลยต้องจัดให้ลูกค้ารายนี้สักหน่อย

ปัญหาที่เกิดเนื่องจากเว็บไซต์ลูกค้าใช้งานบน IIS ซึ่งไฟล์ที่ลูกค้าต้องการโหลดนั้นเป็นไฟล์ 7 Zip

ซึ่งแน่นอน IIS ไม่รู้จักเลยทำให้มัน “เอ๋อ” จึงต้องทำการ Add mine type ให้มันรู้จักว่า

ถ้ามีคนต้องการดาวน์โหลดไฟล์นามสกุล .7z นี้นะ ก็ให้ไปโหลดไฟล์นะ ไม่ใช่เรียกขึ้นมารัน

วิธีการ Add mine type ก็ไม่ยากไปที่

Strat -> Programs -> Administrative tools -> Internet Information Services (IIS) Manager

และไปที่เว็บไซต์ที่ต้องการ Add ในหัวข้อ Website คลิ๊กขวา และ Properties ไปที่แทป HTTP Headers

คลิ๊กที่ Mine type -> New และใส่รายละเอียดดังนี้

Extensions: .7z

Mine Type: application/x-7z-compressed

แค่นี้แหละครับ จบเลย ดาวน์โหลดได้เนียนๆ เลยครับ

อยู่ดีๆวันนี้ก็งานเข้า เรื่องมันมีอยู่ว่า อยู่ดีก็มีลูกค้ารายนึงต้องการให้ Import ไฟล์ .sql เข้า MySQL

จริงๆแล้วมันไม่ยากหรอกครับที่จะ Import Database แต่มันติดตรงที่ว่า ไฟล์ sql เจ้าปัญหาตัวนี้

มีขนาดถึง 33MB ครับ sql ก็ประมาณ 20,000 กว่าบรรทัด ทำไงดีล่ะครับ เลยคิดได้อย่างนี้

1. เอาไป zip แล้ว import เข้าเลย หลังจากคิดแล้วก็ลอง ปรากฎว่า zip แล้วเหลือ 2MB กว่า

แต่พอเอาไป import แล้วก็ไม่ได้ timeout เสียก่อน ใจจริงอยากตั้ง timeout มากขึ้นแต่ไม่อยากไปเซ็ตเพิ่ม

เนื่องจากลูกค้าใช้งานกันหลายราย เลยไม่สำเร็จด้วยวิธีนี้ แต่ก็ได้รู้ว่าถ้าเรา import ไม่เสร็จ timeout เสียก่อน

สามารถสามารถ import ไฟล์เดิมอีกรอบ ซ้ำไปเรื่อยๆได้เลย ระบบ phpmyadmin จะทำต่อให้เอง แจ่มจริง

แต่ขี้เกียจรออ่ะ

วิธีต่อไป

2. เลยคิดถ้าเอาไฟล์ sql  import ที่เครื่อง notebook แล้วค่อยใช้โปรแกรม Navicat ช่วย copy database

ดีกว่า แต่ก็ทำไมได้เพราะว่าไม่ได้เปิด Policy Firewall สำหรับ port MySQL(3306) เลยจบกัน

วิธีสุดท้าย

3. คิดได้ว่าทำไมไม่ใช้ MySQL command มันใช้ได้นี่หว่า เลยจัดการใช้โปรแกรม WinSCP

เอาไฟล์ sql โยนไปบน MySQL server แล้วก็ใช่ MySQL command ดังต่อไปนี้

mysql -u username -p password –database=databasename < sqlfile.sql

แค่นี้แหละจบเลย ง่ายๆ

มี trick ฝากนิดหน่อย คือ

- u username และ -p password ทั้ง username และ password พิมติดกับ ตัว -u และ -p เลย

ไม่ต้องเว้นวรรค และถ้าตัว password มีตัวอักษรพิเศษก็ใช้วิธีการดังนี้ ‘password’ คือใช้ ‘ ‘

คร่อม password เลยครับ

แจ่มไหมล่ะครับบบบบบบบ

เนื่องจากลูกค้าที่ใช้งาน webhosting เค้าต้องการให้คนเข้าเว็บไซต์แล้ว URL เป็นแบบที่ขึ้นต้น

ด้วย www. อย่างเดียวไม่ว่าจะเข้าเป็นแบบ มี www. หรือไม่มี www. ก็ต้องให้โชว์ url เป็น

แบบมี www. ตลอดเลยต้องจัดให้ลูกค้าหน่อยครับ

ไม่ยากเลยครับ พอลูกค้าใช้งานบน Apache เลยทำให้สมใจอยากด้วยการใช้ .htaccess

ใส่โค้ดลงไปใน .htaccess ดังนี้ครับ

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.engiblog\.com [NC]
RewriteRule ^(.*)$ http://www.engiblog.com/$1 [L,R=301]
</IfModule>

และแล้วลูกค้าก็ได้ดั่งใจที่ต้องการครับ

เนื่องจากหลังจากติดตั้ง MySQL ลงบน server เรียบร้อยแล้วก็เลยใช้อยากจะเปลี่ยน password ซักหน่อย

คำสั่งที่ใช้ในการเปลี่ยนไม่ยากเลยครับ มีดังนี้
mysqladmin -u root -p’oldpassword’ password newpass
แค่นี้เองครับ อยากได้ password อะไรก็จัดไปกันตามสะดวกครับ
แจ่มไหมครับ

ปล. Username และ Password default ของ MySQL หลังติดตั้งคือ
Username: root
Password: password

เนื่องจากคำสั่ง locate เป็นคำสั่งอีกอันที่ผมใช้งานบ่อยมากๆ เนื่องจากจำไม่ค่อยได้ว่า

ไฟล์ต่างๆ อยู่ที่ไหนในเครื่อง จึงเรียกใช้บ่อยๆ แต่เมื่อใช้งานแล้วเกิด

locate: can not open `/var/lib/mlocate/mlocate.db’: No such file or directory

เนื่องจากเพิ่งติดตั้ง OS ลงไปใหม่เลยยังใช้งานไม่ได้

วิธีแก้ไขปัญหา locate: can not open `/var/lib/mlocate/mlocate.db’: No such file or directory

ง่ายเลยครับพิมพ์คำสั่งนี้ลงไปได้เลยครับ updatedb ทีเดียวจบเลย

เป็นคำสั่งที่ให้ทำการ update database ของคำสั่ง locate ครับ

ปล. ผมใช้งาน CentOS 5.4 นะครับ

วิธีการเพิ่ม max execution time(max_execution_time) โดยใช้ .htaccess นั้นง่ายมากๆ

แค่สร้างไฟล์ .htaccess ใน root directory และก็ใส่โค้ดลงไปดังนี้ครับ

php_value max_execution_time (เวลาที่ต้องการ หน่วยเป็น วินาที)

เช่น

php_value max_execution_time 90

จะได้เวลา max_execution_time นาน 90 วินาที นั่นเองงงงงงง

สงวนลิขสิทธิ์

สงวนลิขสิทธิ์ข้อความทั้งหมดบนเว็บไซต์ หากต้องการนำไปใช้งาน หรือเผยแพร่ต่อ กรุณาขออนุญาติกับทางผู้เขียน มิฉะนั้น "หากผู้ใดละเมิด ไม่ว่าการลอกเลียน หรือนำส่วนหนึ่งส่วนใดของที่นี่ไปใช้ โดยไม่ได้รับอนุญาติเป็นลายลักษณ์อักษร จะถูกดำเนินคดี ตามที่กฏหมายบัญญัติไว้สูงสุด"