صلاحيات الملفات والمجلدات
الصلاحيات التي تستخدمها لملفات الويب، وتلك التي تسبّب أخطاء 500، ولماذا 777 ليست الجواب أبدًا.
اضبط الصلاحيات الصحيحة على ملفات موقعك. ينطبق على الاستضافة المشتركة والموزِّعة والمميّزة.
الافتراضيات
| النوع | الصلاحية |
|---|---|
| المجلدات | 755 |
| الملفات | 644 |
| ملفات الإعدادات التي فيها بيانات اعتماد | 600 |
| السكربتات المشغَّلة من cron أو الصدفة | 700 |
.htaccess | 644، أو 444 لجعله للقراءة فقط |
والملفات المرفوعة تصل بهذه أصلًا عادةً. فأنت تحتاج هذا في الغالب حين يتعطّل شيء.
لماذا تهمّ الاستثناءات
wp-config.php وأمثاله — 600. فهذه تحمل اسم مستخدم قاعدة بياناتك وكلمة
مرورها. و644 تعني أن أي مستخدم آخر على الخادم يستطيع قراءتها. وPHP لا يحتاج
الملف قابلًا للقراءة من الجميع لتضمينه، فلا تكلفة في تقييده.
السكربتات المشغَّلة من cron — 700. فهي تُنفَّذ مباشرة بواسطة حسابك لا
يفسّرها خادم الويب، فتحتاج بت التنفيذ. أما سكربتات الويب فلا.
.htaccess — تستحق 444 النظر. فجعله للقراءة فقط يحجب صنفًا من الهجمات
يُلحق فيه سكربت مخترَق قواعد إعادة توجيه به. وعليك إعادته لتحريره، وهي مقايضة
عادلة لملف نادر التغيّر.
لا تستخدم 777 أبدًا. فهي تسمح لأي أحد على الخادم بالكتابة في الملف أو
المجلد، وهي السبب الأشيع على الإطلاق لاختراق موقع وإعادة إصابته مرارًا.
والأدلة التي توصي بها تلتفّ على مشكلة أخرى — وعادةً الملكية لا الصلاحيات. فإن
احتاج شيء 777 ليعمل، فالسبب في مكان آخر.
إصلاح الصلاحيات جملةً
من SSH، في جذرك المستنَدي:
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod 600 wp-config.phpوفي cPanel ← File Manager، حدّد مجلدًا، واختر Permissions، وعلّم Recurse into subdirectories، مطبّقًا على الملفات والمجلدات منفصلين.
ماذا يتعطّل ولماذا
500 Internal Server Error — وعادةً ملف أو مجلد قابل للكتابة من المجموعة أو
من الجميع. فـ Apache مع suEXEC يرفض تشغيل السكربتات في تلك الحالة. وضبط 755 و
644 يعالجه.
403 Forbidden — مجلد غير قابل للقراءة، أو ينقصه بت التنفيذ. فالمجلدات تحتاج
755؛ و644 على مجلد تجعل محتوياته غير قابلة للوصول.
ووردبريس لا يستطيع التحديث أو الرفع — وهي فعلًا مشكلة صلاحيات، لكن الجواب
755/644 مع ملكية صحيحة، لا 777. راجع
معالجة خطأ «Unable to Create Directory».