วิธีแก้ปัญหา Internal Server Error ตอนรัน PHP กับ Apache Server MSQL

Internal Server Error

The 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

แก้ปัญหา Warning: Cannot modify header information – headers already sent by

Warning: Cannot modify header information – headers already sent by คืออะไร?

 สาเหตุที่

-
มีการใช้คำสั่ง 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 !!";
?> 


สาเหตุที่

-
ถ้ามีคำสั่ง session_start() จะต้องอยู่บรรทัดบนสุดของไฟล์ เท่านั้น !!

 
ตัวอย่าง Code ที่อาจทำให้เกิด Error 

<?
$x = "Hello";
session_start();
?> 
ตัวอย่าง Code ที่ถูกต้อง 

<?
session_start();
$x = "Hello";
?> 


สาเหตุที่

-
ถ้าแน่ใจว่าไม่ได้มีสาเหตุจาก 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  ลองแก้แบบนี้ดูนะครับ

วิธีแก้


1. ไปที่ Start > Run
2. พิมพ์ php.ini แล้วกด Enter เพื่อเปิดไฟล์คอนฟิก php ขึ้นมา
3. หา ;extension=php_openssl.dll แล้วเอาเครื่องหมาย ; ออกซะเหลือเป็น extension=php_openssl.dll เพื่อใช้งาน ssl ตามรูปเลยครับ
4. บันทึกแล้วรีสตาร์ท Apache อีกครั้งครับ