วิธีแก้ปัญหา Internal Server Error ตอนรัน PHP กับ Apache Server MSQL | |
Internal Server ErrorThe server encountered an internal error or misconfiguration and was unable to complete your request.Please contact the server administrator, localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. สาเหตุของปัญหานี้มันก็เป็นเพราะ การทำ หรือ การตั้งค่า mod_rewrite ครับ ไฟล์ที่ใช้ทำเจ้า mod_rewrite ก็คือ .htaccess ครับ ใครที่ไม่ได้เปิดใช้ หรือยังไม่เคยแตะมัน ก็จะไม่มีปัญหาอะไร แต่ถ้าใครเคยเปิดใช้งาน หรือ ไปโหลดตัวอย่างที่เขามีไฟล์ .htaccess ติดมาด้วย ก็จะเจอปัญหานี้อย่างเลียกเลี่ยงไม่ได้อย่างแน่นอน วิธีแก้ไข ก็ไม่ยากครับ 1. เปิดไฟล์ httpd.conf (Start>Programs>Appserv>Configuration Server>Apache Edit the httpd.conf Configuration File) 2.ค้นหา #LoadModule rewrite_module modules/mod_rewrite.so (ก๊อปปี้ไปเลยนะครับ) 3.ให้เอา # ที่อยู่ด้านหน้าออก 4.จะได้ LoadModule rewrite_module modules/mod_rewrite.so 5.Save file 6.Restart Apache ที่มา : http://www.code-father.com/%E0%B8%A7%E0%B8%B4%E0%B8%98%E0%B8%B5%E0%B9%81%E0%B8%81%E0%B9%89%E0%B8%9B%E0%B8%B1%E0%B8%8D%E0%B8%AB%E0%B8%B2-Internal-Server-Error-%E0%B8%95%E0%B8%AD%E0%B8%99%E0%B8%A3%E0%B8%B1%E0%B8%99-PHP-%E0%B8%81%E0%B8%B1%E0%B8%9A-Apache-Server-MSQL_00035.html |
YELLOWM?RK
ABOUT PROGRAM AND PRODUCTS
แก้ปัญหา Warning: Cannot modify header information – headers already sent by
Warning: Cannot modify header information – headers already sent by คืออะไร?
สาเหตุที่ 1
- มีการใช้คำสั่ง Output (เช่น echo , print , ... คำสั่งที่มีผลต่อการแสดงผลออกมาทางหน้าจอ) ออกมาก่อนบรรทัดที่เป็นคำสั่งเซ็ต Header
ตัวอย่าง Code ที่อาจทำให้เกิด Error
<?
echo "Hello World !!";
header("content-type: text/html; charset=utf-8");
?>
ตัวอย่าง Code ที่ถูกต้อง
<?
header("content-type: text/html; charset=utf-8");
echo "Hello World !!";
?>
สาเหตุที่ 2
- ถ้ามีคำสั่ง session_start() จะต้องอยู่บรรทัดบนสุดของไฟล์ เท่านั้น !!
ตัวอย่าง Code ที่อาจทำให้เกิด Error
<?
$x = "Hello";
session_start();
?>
ตัวอย่าง Code ที่ถูกต้อง
<?
session_start();
$x = "Hello";
?>
สาเหตุที่ 3
- ถ้าแน่ใจว่าไม่ได้มีสาเหตุจาก 2 ข้อข้างบน และ หน้าเว็บของคุณมีการ Encoding เป็น UTF-8 แล้ว ก็มีอีกสาเหตุหนึ่ง คือ
Editor(เช่น Dreamweaver , Notepad) ที่เราใช้เขียน Script นั้น ทำการเซฟไฟล์โดยรวม BOM (Byte Order Mark)
เข้าไปด้วย แต่ว่าเรามองด้วยตาไม่เห็นไง แต่ว่าตัว Server ดันมองเห็น ทำให้มันนึกว่าเป็นคำสั่ง Output ตัวหนึ่ง
วิธีการแก้ไข
1. ให้ Download โปรแกรม Notepad++ มาก่อนครับ เป็นฟรีแวร์ (หรือจะใช้โปรแกรมอื่น เช่น Editplus ก็ได้) แล้วเปิดหน้าที่จะแก้ไขขึ้นมา
2. เลือก รูปแบบ -> ข้อมูลเป็น UTF-8 without BOM (เพื่อทำการ แปลงเป็น UTF-8 แบบที่ไม่ให้มีการเกิด BOM ขึ้นมาด้วย)
กรณีใครใช้โปรแกรมอื่นๆก็หลักการเหมือนกันครับ เลือก Save เป็น UTF-8 ที่ไม่มี BOM
3. เสร็จแล้วก็ Save ครับ
4. เท่านี้ก็พอจะแก้ปัญหาได้แล้วครับผม
- มีการใช้คำสั่ง Output (เช่น echo , print , ... คำสั่งที่มีผลต่อการแสดงผลออกมาทางหน้าจอ) ออกมาก่อนบรรทัดที่เป็นคำสั่งเซ็ต Header
ตัวอย่าง Code ที่อาจทำให้เกิด Error
<?
echo "Hello World !!";
header("content-type: text/html; charset=utf-8");
?>
ตัวอย่าง Code ที่ถูกต้อง
<?
header("content-type: text/html; charset=utf-8");
echo "Hello World !!";
?>
สาเหตุที่ 2
- ถ้ามีคำสั่ง session_start() จะต้องอยู่บรรทัดบนสุดของไฟล์ เท่านั้น !!
ตัวอย่าง Code ที่อาจทำให้เกิด Error
<?
$x = "Hello";
session_start();
?>
ตัวอย่าง Code ที่ถูกต้อง
<?
session_start();
$x = "Hello";
?>
สาเหตุที่ 3
- ถ้าแน่ใจว่าไม่ได้มีสาเหตุจาก 2 ข้อข้างบน และ หน้าเว็บของคุณมีการ Encoding เป็น UTF-8 แล้ว ก็มีอีกสาเหตุหนึ่ง คือ
Editor(เช่น Dreamweaver , Notepad) ที่เราใช้เขียน Script นั้น ทำการเซฟไฟล์โดยรวม BOM (Byte Order Mark)
เข้าไปด้วย แต่ว่าเรามองด้วยตาไม่เห็นไง แต่ว่าตัว Server ดันมองเห็น ทำให้มันนึกว่าเป็นคำสั่ง Output ตัวหนึ่ง
วิธีการแก้ไข
1. ให้ Download โปรแกรม Notepad++ มาก่อนครับ เป็นฟรีแวร์ (หรือจะใช้โปรแกรมอื่น เช่น Editplus ก็ได้) แล้วเปิดหน้าที่จะแก้ไขขึ้นมา
2. เลือก รูปแบบ -> ข้อมูลเป็น UTF-8 without BOM (เพื่อทำการ แปลงเป็น UTF-8 แบบที่ไม่ให้มีการเกิด BOM ขึ้นมาด้วย)
กรณีใครใช้โปรแกรมอื่นๆก็หลักการเหมือนกันครับ เลือก Save เป็น UTF-8 ที่ไม่มี BOM
3. เสร็จแล้วก็ Save ครับ
4. เท่านี้ก็พอจะแก้ปัญหาได้แล้วครับผม
ยังไงลองนำวิธีแก้ข้างต้นไปแก้กันดูนะครับ
แก้ปัญหา SMTP Error: Could not connect to SMTP host
สำหรับใครที่เจอปัญหา SMTP Error: Could not connect to SMTP host ลองแก้แบบนี้ดูนะครับ
วิธีแก้
สมัครสมาชิก:
บทความ
(
Atom
)