درس حلول اخطاء ومشاكل Internal Server Error 500







السلام عليكم ورحمة الله كثيرا من أصحاب السيرفرات ما يعاني من المشكله المزمنه Internal Server Error 500 هذه المشكله كثيرا ما تواجه اصحاب المواقع والسيرفرات وبالاخص السيرفرات القائمه علي الموديل suphp او التي تعمل في بيئه cgi هذا الخطأ قد يكون ناتج عن مشكلة ما داخل السيرفر او ناتجه من عن مشكله ما داخل احد اليوزرات الموجوده بالسيرفر بكل تأكيد يمكن حل المشكله بمجرد الرجوع الي ملف اللوج الخاص بالـ Apache نقوم بتنفيذ الامر التالي لرؤيه الايرور لوج الخاص بالاباتشي والموجوده به سبب المشكله

هيا بنا تابع الشرح

 

رمز PHP:
tail -/usr/local/apache/logs/error_log 

بعض الاسباب التي من الممكن ان تظهر لك والتي تسبب المشكله 1- أخطاء التصريحات


 

رمز PHP:
SoftException in Application.cpp:357UID of script "/home/user/public_html/file.php" is smaller than min_uid

 

رمز PHP:
SoftException in Application.cpp:422Mismatch between target UID (511) and UID (510of file "/home/user/public_html/file.php"

 

رمز PHP:
SoftException in Application.cpp:264File "/home/user/public_html/file.php" is writeable by others 

ميع هذه الاخطاء تأتي او تنتج عن مشكله في التصريحات او الصلاحيات الخاصه بالملفات الموجود داخل الموقع او اليوزر وتنتج عن اما ان يكون الملف ممتلك لمستخدم اخر او له صلاحيات لا تتيح للمستخدم بتشغيله وغير مسموح له بتنفيذه كما هو موجود بملف اعداد suphp.conf حل هذه المشكله كالتالي نقوم بتنفيذ الاوامر التاليه مع مراعاة تغيير USER بـ اليوزر الخاص بالموقع الموجود به المشكله

رمز PHP:
find /home/USER/public_html/* -type d -exec chmod 755 {} \;

find /home/USER/public_html/* -type f -exec chmod 644 {} \;

في حال لم يتم اصلاح المشكله بالاوامر السابقه يمكنك تنفيذ الاوامر التاليه في الشل

رمز PHP:
cd /root
wget http
://egprovider.com/Bash/fixpermissions.sh
./fixpermissions.sh USER 

مع مراعاة تغيير USER بـ اليوزر الخاص بالموقع الموجود به المشكله 2- أخطاء ملف .htaccess أذا كان السيرفر يعمل في بيئه CGI/suPHP فأنه لن يسمح بتفعيل او عدم تفعيل القيم والمتغيرات الخاصه بأعدادات php في ملف .htaccess لذا ستحتاج الي htscanner لكي تسمح للأباتشي بتحليل تلك المتغيرات وتغيرها مع ما يتوافق مع اعدادات php.ini داخل مسار المستخدم نفسه او انك تقوم بألغاء تلك المتغيرات نهائيا وحذفها من ملف .htaccess بعض اخطاء ملف .htaccess

رمز PHP:
/home/user/public_html/.htaccessInvalid command 'php_flag'perhaps misspelled or defined by a module not included in the server configuration 

3- أخطاء الصلاحيات أفتراضيا ملفات php و المجلدات الرئيسيه لليوزر لا يمكن ان تملك المجموعه او مستخدم اخر تصريح الكتابه ولا يمكن ان تكون مملوكه ليوزر اخر علي نفس النظام غير اليوزر الذي يملك المجلد الرئيسي الموجود به الملفات او المجلدات بالاضافه الي ان suphp لا يسمح بتشغيل الملفات المطلوبه من خلال المتصفح من المواقع التي ليست داخل المجلد الرئيسي لليوزر لذا لابد من التاكد من ان الاسكربتات او الملفات غير مملوكه لجروب او ليوزر اخر غير الاساسي ويمكنك ان تعرف الخطأ من متابعه اللوج الخاص بـ suphp

رمز PHP:
/usr/local/apache/logs/suexec_log 

لذا ننصح بتعديل تلك الاعدادات داخل ملف suphp.conf

رمز PHP:
pico /home/cpeasyapache/src/suphp.conf 

ثم تقوم بتعديل تلك القيم بالشكل التالي

رمز PHP:
Security options
 allow_file_group_writeable
=true
 allow_file_others_writeable
=false
 allow_directory_group_writeable
=true
 allow_directory_others_writeable
=false 
اتمني ان اكون قد وفقت في الشرح وتمنياتي بالتوفيق للجميع

http://www.traidnt.net/vb/showthread.php?t=1638216