الدرس (3): سكربت PHP لفحص تصاريح المجلدات والملفات (Permissions Check) في XenForo
السلام عليكم ورحمة الله وبركاته،
أهلاً بكم أخواني وأعضائنا الكرام في منتدى كود نت.
مستمرون معكم في سلسلة الفحوصات والسكربتات السريعة الخاصة بمنتديات XenForo، ونصل اليوم إلى الدرس الثالث والمخصصة لفحص تصاريح المجلدات والملفات الحساسة (File & Directory Permissions).
تعتمد بيئة عمل XenForo بشكل أساسي على مجلدات معينة يلزم أن تكون قابلة للكتابة (Writable) بواسطة السيرفر، مثل مجلد المرفقات والرموز data/ ومجلد الكاش والملفات المؤقتة internal_data/. عدم وجود التصاريح الصحيحة قد يؤدي إلى مشاكل مثل فشل رفع الصور، أو ظهور أخطاء عند تثبيت الإضافات، أو توقف الكاش عن العمل.
هذا السكربت يفحص المجلدات الرئيسية بشكل آلي ويتأكد من قابليتها للكتابة والقراءة دون الحاجة للدخول إلى cPanel أو الاتصال عبر FTP.

الكود البرمجي:
كيف يعمل السكربت؟
* تحديد المسارات الحرجة: يحدد مجلدات data و internal_data والمسارات الفرعية المسؤولة عن الكاش والمرفقات والإضافات.
* فحص القراءة والكتابة: يستخدم الدوال is_readable() و is_writable() للتحقق من صلاحيات السيرفر الحالية على المجلد.
* عرض التصريح النمطي (Octal Permissions): يستخرج تصريح المجلد الحالي (مثل 0755 أو 0777) لتعرف القيمة الدقيقة المسجلة في السيرفر.
طريقة الاستخدام:
1. قم بإنشاء ملف باسم check_permissions.php في الجذر الرئيسي للمنتدى.
2. ضع الكود أعلاه داخل الملف واحفظه.
3. افتح الرابط عبر المتصفح: https://your-domain.com/check_permissions.php
4. في حال ظهور أي مجلد باللون الأحمر في خانة الكتابة، يرجى تعديل تصريحه من cPanel إلى 0755 أو 0777.
5. لا تنسَ حذف الملف بعد الانتهاء من الفحص للحفاظ على أمان السيرفر.
انتظرونا في **الدرس الرابع** من سلسلة الفحوصات! إذا كانت لديك أي ملاحظات أو استفسارات، يسعدني مشاركتك في الردود.
السلام عليكم ورحمة الله وبركاته،
أهلاً بكم أخواني وأعضائنا الكرام في منتدى كود نت.
مستمرون معكم في سلسلة الفحوصات والسكربتات السريعة الخاصة بمنتديات XenForo، ونصل اليوم إلى الدرس الثالث والمخصصة لفحص تصاريح المجلدات والملفات الحساسة (File & Directory Permissions).
تعتمد بيئة عمل XenForo بشكل أساسي على مجلدات معينة يلزم أن تكون قابلة للكتابة (Writable) بواسطة السيرفر، مثل مجلد المرفقات والرموز data/ ومجلد الكاش والملفات المؤقتة internal_data/. عدم وجود التصاريح الصحيحة قد يؤدي إلى مشاكل مثل فشل رفع الصور، أو ظهور أخطاء عند تثبيت الإضافات، أو توقف الكاش عن العمل.
هذا السكربت يفحص المجلدات الرئيسية بشكل آلي ويتأكد من قابليتها للكتابة والقراءة دون الحاجة للدخول إلى cPanel أو الاتصال عبر FTP.

الكود البرمجي:
<?php
// تحديد المسارات المطلوبة للفحص
$pathsToCheck = [
'data' => __DIR__ . '/data',
'internal_data' => __DIR__ . '/internal_data',
'internal_data/code_cache' => __DIR__ . '/internal_data/code_cache',
'internal_data/temp' => __DIR__ . '/internal_data/temp',
'src/addons' => __DIR__ . '/src/addons'
];
echo '<h2>فحص تصاريح المجلدات والملفات (Permissions Check)</h2>';
echo '<table border="1" cellpadding="8" cellspacing="0" style="border-collapse:collapse; width:100%;">';
echo '<tr style="background:#f2f2f2;"><th>المجلد / المسار</th><th>حالة القراءة</th><th>حالة الكتابة</th><th>التصريح الحالي</th></tr>';
foreach ($pathsToCheck as $label => $path)
{
echo '<tr>';
echo '<td>' . htmlspecialchars($label) . '</td>';
if (!file_exists($path))
{
echo '<td colspan="3" style="color:red;">المجلد غير موجود!</td>';
}
else
{
$isReadable = is_readable($path) ? '<strong style="color:green">نعم</strong>' : '<strong style="color:red">لا</strong>';
$isWritable = is_writable($path) ? '<strong style="color:green">نعم (صحيح)</strong>' : '<strong style="color:red">لا (يحتاج تصريح)</strong>';
$perms = substr(sprintf('%o', fileperms($path)), -4);
echo '<td>' . $isReadable . '</td>';
echo '<td>' . $isWritable . '</td>';
echo '<td>' . $perms . '</td>';
}
echo '</tr>';
}
echo '</table>';
كيف يعمل السكربت؟
* تحديد المسارات الحرجة: يحدد مجلدات data و internal_data والمسارات الفرعية المسؤولة عن الكاش والمرفقات والإضافات.
* فحص القراءة والكتابة: يستخدم الدوال is_readable() و is_writable() للتحقق من صلاحيات السيرفر الحالية على المجلد.
* عرض التصريح النمطي (Octal Permissions): يستخرج تصريح المجلد الحالي (مثل 0755 أو 0777) لتعرف القيمة الدقيقة المسجلة في السيرفر.
طريقة الاستخدام:
1. قم بإنشاء ملف باسم check_permissions.php في الجذر الرئيسي للمنتدى.
2. ضع الكود أعلاه داخل الملف واحفظه.
3. افتح الرابط عبر المتصفح: https://your-domain.com/check_permissions.php
4. في حال ظهور أي مجلد باللون الأحمر في خانة الكتابة، يرجى تعديل تصريحه من cPanel إلى 0755 أو 0777.
5. لا تنسَ حذف الملف بعد الانتهاء من الفحص للحفاظ على أمان السيرفر.
انتظرونا في **الدرس الرابع** من سلسلة الفحوصات! إذا كانت لديك أي ملاحظات أو استفسارات، يسعدني مشاركتك في الردود.