كثيرا من أصحاب السيرفرات ما يعاني من المشكله المزمنه
Internal Server Error 500
هذه المشكله كثيرا ما تواجه اصحاب المواقع والسيرفرات وبالاخص
السيرفرات القائمه علي الموديل suphp او التي تعمل في بيئه cgi
هذا الخطأ قد يكون ناتج عن مشكلة ما داخل السيرفر او ناتجه من
عن مشكله ما داخل احد اليوزرات الموجوده بالسيرفر
بكل تأكيد يمكن حل المشكله بمجرد الرجوع الي ملف اللوج الخاص بالـ Apache
نقوم بتنفيذ الامر التالي لرؤيه الايرور لوج الخاص بالاباتشي والموجوده به سبب المشكله
tail -f /usr/local/apache/logs/error_log
بعض الاسباب التي من الممكن ان تظهر لك والتي تسبب المشكله
1- أخطاء التصريحات
SoftException in Application.cpp:357: UID of script "/home/user/public_html/file.php" is smaller than min_uid
SoftException in Application.cpp:422: Mismatch between target UID (511) and UID (510) of file "/home/user/public_html/file.php"
SoftException in Application.cpp:264: File "/home/user/public_html/file.php" is writeable by others
جميع هذه الاخطاء تأتي او تنتج عن مشكله في التصريحات او الصلاحيات الخاصه بالملفات
الموجود داخل الموقع او اليوزر وتنتج عن اما ان يكون الملف ممتلك لمستخدم اخر او له صلاحيات
لا تتيح للمستخدم بتشغيله وغير مسموح له بتنفيذه كما هو موجود بملف اعداد suphp.conf
حل هذه المشكله كالتالي
نقوم بتنفيذ الاوامر التاليه
مع مراعاة تغيير USER بـ اليوزر الخاص بالموقع الموجود به المشكله
find /home/USER/public_html/* -type d -exec chmod 755 {} \;
find /home/USER/public_html/* -type f -exec chmod 644 {} \;
في حال لم يتم اصلاح المشكله بالاوامر السابقه يمكنك تنفيذ الاوامر التاليه في الشل
cd /root
wget http://egprovider.com/Bash/fixpermissions.sh
./fixpermissions.sh USER
مع مراعاة تغيير USER بـ اليوزر الخاص بالموقع الموجود به المشكله
2- أخطاء ملف .htaccess
أذا كان السيرفر يعمل في بيئه CGI/suPHP فأنه لن يسمح بتفعيل او عدم تفعيل القيم والمتغيرات
الخاصه بأعدادات php في ملف .htaccess
لذا ستحتاج الي htscanner لكي تسمح للأباتشي بتحليل تلك المتغيرات وتغيرها مع ما يتوافق
مع اعدادات php.ini داخل مسار المستخدم نفسه
او انك تقوم بألغاء تلك المتغيرات نهائيا وحذفها من ملف .htaccess
بعض اخطاء ملف .htaccess
/home/user/public_html/.htaccess: Invalid command 'php_flag', perhaps misspelled or defined by a module not included in the server configuration
3- أخطاء الصلاحيات
أفتراضيا ملفات php و المجلدات الرئيسيه لليوزر لا يمكن ان تملك المجموعه او مستخدم اخر
تصريح الكتابه ولا يمكن ان تكون مملوكه ليوزر اخر علي نفس النظام غير اليوزر الذي يملك
المجلد الرئيسي الموجود به الملفات او المجلدات
بالاضافه الي ان suphp لا يسمح بتشغيل الملفات المطلوبه من خلال المتصفح من المواقع التي ليست داخل المجلد الرئيسي لليوزر
لذا لابد من التاكد من ان الاسكربتات او الملفات غير مملوكه لجروب او ليوزر اخر غير الاساسي
ويمكنك ان تعرف الخطأ من متابعه اللوج الخاص بـ suphp
/usr/local/apache/logs/suexec_log
لذا ننصح بتعديل تلك الاعدادات داخل ملف suphp.conf
pico /home/cpeasyapache/src/suphp.conf
ثم تقوم بتعديل تلك القيم بالشكل التالي
; Security options
allow_file_group_writeable=true
allow_file_others_writeable=false
allow_directory_group_writeable=true
allow_directory_others_writeable=false
اتمني ان اكون قد وفقت في الشرح
وتمنياتي بالتوفيق للجميع