دليل المطور المتقدم لملف wp-config.php

نشرت: 2022-09-28

إلى أي مدى تعرف حقًا wp-config ؟ هناك قدر مذهل من القوة في تلك الأسطر القليلة من PHP! هذه المقالة عبارة عن جولة في بعض أجزاء wp-config التي ربما لم تكن على دراية بها ، ولكن يجب عليك فعلاً.

هل تعرف كل ما يمكن معرفته عن wp-config.php ؟ هل قرأت صفحة توثيق WordPress بالكامل حول هذا الموضوع؟ الحق حتى النهاية؟

إذا كنت على دراية بأساسيات wp-config ، فمن المحتمل أن تكون قراءة وثائق WordPress الرسمية مناسبة للغفوة.

إذا كنت تريد أن يعامل المطور الحقيقي ، ويتم تجميعه بشكل جيد حسب الموضوع ، ويتم تقديمه مع ما يمكن تسميته فقط "الحماس غير الضروري تمامًا على عدد قليل من ثوابت PHP" ، إذن استمر: أنا على وشك جعل wp-config.php رائعًا مرة أخرى.

Milhouse من عائلة Simpsons ، مع "wp-config" على وجهه ، والتعليق "أمي تقول أنني رائع."

جدول المحتويات

  1. من يجب أن يقرأ هذا؟
  2. لماذا يجب أن تقرأ هذا؟
  3. أساسيات
  4. عرض ثوابت wp-config
  5. تفكيك عملية تحميل wp-config.php
    1. يمكن تحريك ملف wp-config
    2. يتم تحميل شاشة الإعداد إذا لم يكن هناك ملف wp-config.php
    3. يتم تحميل wp-config.php مبكرًا جدًا
    4. لا تعبث مع ملف wp-config.php!
  6. فحص / فحص ملف wp-config.php الخاص بك
  7. تأمين WordPress باستخدام ملف wp-config.php
    1. حماية ملف wp-config.php من زوار الموقع
    2. مفاتيح / أملاح دوارة
    3. تحريك وإخفاء الأشياء
    4. تعطيل محرري الملفات
    5. تعطيل التحديثات التلقائية
    6. منع طلبات HTTP الخارجية
  8. نقل الأشياء حولها
    1. نقل جداول المستخدم و Usermeta
    2. نقل المحتويات والتحميلات والدلائل الإضافية
  9. الإعدادات المتعلقة بالمحتوى
    1. قم بتغيير عناوين URL الخاصة بالموقع ولوحة المعلومات
    2. إعدادات النشر
    3. المراجعات اللاحقة
    4. تغيير الفاصل الزمني للحفظ التلقائي
  10. تغليف

من يجب أن يقرأ هذا؟

هذه المقالة موجهة للمطورين والمستخدمين المتقدمين الذين يعرفون بالفعل كيفية تحرير wp-config.php وهم على دراية ببعض إعدادات التكوين التي يمكنك وضعها فيه.

لن أخبرك بكيفية تحرير الملف باستخدام FTP أو cPanel ، أو لماذا لا يجب عليك استخدام MS Word لتحريره.

لن أخبرك بكيفية تكوين قاعدة البيانات الخاصة بك أو تجاوز الإعدادات القديمة التي كنت تستخدمها في 2013 ولكن في الحقيقة لن تحتاج إلى المزيد. وسيهتم معظم المضيفين بالأساسيات على أي حال.

إذا كنت مستخدمًا جديدًا wp-config.php ، فلا يوجد نقص في الأدلة التي ستمنحك الأساسيات ، أو يمكنك دائمًا البحث في الوثائق الرسمية.

لماذا يجب أن تقرأ هذا؟

أجل ، أجل ، أنا أسمعك. إذا تمت تغطية جميع التفاصيل الأساسية لما يمكنك وضعه في هذه المقالة في مكان آخر ، وإذا كان مضيفك يهتم بمعظم الأساسيات على أي حال ، فلماذا تقرأ هذا؟ وبالفعل ، لماذا أقضي وقتي في كتابتها؟

حسنًا ، إذا كنت سعيدًا بتحرير wp-config.php ، وكنت تعرف أساسيات ما يفعله ، فأنت على الأرجح مطور WordPress متوسط ​​المستوى على الأقل.

من المحتمل أنك مسؤول جزئيًا على الأقل عن استضافة مواقع كبيرة ، ربما للعملاء. لذلك عليك أن تعرف كيف يمكنك استخدام هذا الملف في حالات الطوارئ. وللحصول على ما يكفي من الفهم لهذا الملف ، إذا قمت بتحريره ، فلن تفعل شيئًا خاطئًا.

بالإضافة إلى ذلك ، من شبه المؤكد أنك سترغب في قفل بعض ميزات WordPress بخلاف ما سيسمح لك مضيفك بتكوينه تلقائيًا.

من المحتمل أن هناك أشياء لا تعرفها حتى يمكنك فعلها باستخدام wp-config.php ! بعض "آها!" لحظات.

هذه المقالة هي نقطة مرجعية مفيدة لتكوين بعض عناصر WordPress الداخلية. لذا اقرأ ، ضع إشارة مرجعية ، وشارك مع أصدقائك وزملائك.

أساسيات

لقد قلت أن هذا لم يكن مقالًا للمبتدئين ، ولكن يجب أن نؤسس الحقائق الأساسية للتأكد من أننا في نفس نقطة البداية.

يوجد wp-config.php في جذر تثبيت WordPress الخاص بك (يمكن أن يعيش في أماكن أخرى ، لكننا سنصل إلى ذلك) ، ويتم تحميله كجزء من تهيئة WordPress ، ويسمح لك بتكوين نواة WordPress.

من الضروري تشغيل WordPress. يخزن مجموعة من الثوابت التي تتيح لك تحديد:

  • اتصال قاعدة البيانات وبادئة الجدول التي يستخدمها WordPress.
  • معلومات الأمان مثل الأملاح ومفاتيح المصادقة.
  • الإعدادات الخاصة بالميزات الأخرى لنواة WordPress مثل WP_CACHE و WP_DEBUG .
  • إعدادات المكونات الإضافية التي قد تضيف خياراتها الخاصة إلى الملف.
  • خيارات التكوين الخاصة بك.

من الأهمية بمكان أن wp-config.php هو ملف خاص بالبيئة. يمكن (ويجب!) أن تكون محتوياتها مختلفة باختلاف المواقع. حتى النسخ المحلية ، المرحلية ، والمباشرة لنفس الموقع سيكون لها قيم مختلفة في الملف.

يأتي WordPress مع ملف wp-config-sample.php يحتوي على الحد الأدنى من التفاصيل التي يحتاجها WordPress للعمل. يمكنك نسخ هذا إلى wp-config.php الخاص بك كجزء من التثبيت ، ولكن في هذه الأيام يتم ذلك عادةً نيابةً عنك.

أخيرًا ، لاحظ فقط أنه من الممكن أنه عند فتح ملف wp-config.php من موقع موجود ، قد ترى بعض ثوابت PHP القديمة للميزات القديمة مثل أذونات الملفات الافتراضية وبيانات اعتماد FTP لتشغيل الترقيات. لن نغطي هؤلاء هنا لأنه من غير المحتمل أنك ستحتاج إلى استخدامها.

عرض ثوابت wp-config

هناك عدة طرق للتحقق بسرعة من قيم ثوابت WordPress بدون SSHing إلى خادم بعيد وفتح الملف.

تتيح لك ميزة صحة الموقع في نواة WordPress عرض بعض القيم الأساسية من خلال الانتقال إلى أدوات -> صحة الموقع -> معلومات -> ثوابت WordPress. يمكن أيضًا رؤية ثوابت قاعدة البيانات في قسم "قاعدة البيانات" في نفس الصفحة.

ثوابت قاعدة البيانات ، الموضحة هنا في قسم قاعدة البيانات بصفحة صحة موقع WordPress.

يحتوي المكون الإضافي Query Monitor على لوحة "Environment" حيث يمكنك رؤية بعض ثوابت wp-config شائعة الاستخدام.

لوحة "بيئة" للمكون الإضافي مراقب الاستعلام ، تعرض بعض ثوابت wp-config شائعة الاستخدام.

تحتوي واجهة WP-CLI ، وهي واجهة سطر أوامر WordPress ، على أمر wp config الذي يمكن استخدامه للحصول على الثوابت وتعيينها في wp-config.php . قد يتطلب ذلك عادةً استخدام SSH أولاً ، ولكن إذا قمت بإعداد أسماء مستعارة في تكوين WP-CLI الخاص بك ، فيمكنك إنشاء اختصار سريع لعرض وتعديل الثوابت في ملفات wp-config عن بُعد.

تفكيك عملية تحميل wp-config.php

من المفيد معرفة متى يتم تحميل ملف wp-config.php ، لأن هذا يحدد بعض الأشياء التي يمكنك القيام بها والتي لا يمكنك القيام بها. يعد تتبع عملية التحميل تمرينًا جيدًا:

  • يبدأ WordPress في التحميل بملف index.php . يتطلب هذا ملف wp-blog-header.php .

  • إلى حد كبير ، فإن أول شيء يفعله wp-blog-header.php هو تحميل wp-load.php .

  • بعد ذلك ، يعيّن wp-load.php ثابت ABSPATH (الدليل الأساسي لـ WordPress الأساسي) ويهيئ error_reporting error_reporting() قبل تحميل wp-config.php .

يمكن أن تعلمنا عملية التحميل هذه ، والكود في wp-load.php وجه الخصوص ، بعض الأشياء المثيرة للاهتمام. هذا هو الرمز:

 /* * If wp-config.php exists in the WordPress root, or if it exists in the root and wp-settings.php * doesn't, load wp-config.php. The secondary check for wp-settings.php has the added benefit * of avoiding cases where the current directory is a nested installation, eg / is WordPress(a) * and /blog/ is WordPress(b). * * If neither set of conditions is true, initiate loading the setup process. */ if ( file_exists( ABSPATH . 'wp-config.php' ) ) { /** The config file resides in ABSPATH */ require_once ABSPATH . 'wp-config.php'; } elseif ( @file_exists( dirname( ABSPATH ) . '/wp-config.php' ) && ! @file_exists( dirname( ABSPATH ) . '/wp-settings.php' ) ) { /** The config file resides one level above ABSPATH but is not part of another installation */ require_once dirname( ABSPATH ) . '/wp-config.php'; } else { // A config file doesn't exist. // [Code here to load the setup screen for in-browser configuration] }

ما الذي نراه هنا؟

يمكن تحريك ملف wp-config.php لأعلى

أولاً ، يخبرنا التعليق أنه يمكننا وضع wp-config.php في "جذر WordPress". ما فشل في ذكره هو أن "الجذر" يمكن أن يكون في الواقع دليلًا أعلى ABSPATH حيث يعيش wp-load.php .

يمكننا رؤية هذا الاختيار الإضافي في elseif حيث يبحث عن dirname( ABSPATH ) . '/wp-config.php' dirname( ABSPATH ) . '/wp-config.php' . الشرط الإضافي في " elseif " موضح في التعليق.

يتم تحميل شاشة الإعداد إذا لم يكن هناك ملف wp-config.php

ثانيًا ، يمكننا أن نرى أنه في حالة عدم وجود ملف التكوين ، فسيتم تحميل شاشة الإعداد.

من المحتمل تمامًا أنك لم تشاهد هذه الشاشة من قبل. يتيح لك إدخال معلومات التكوين الأولية ، مثل بيانات اعتماد قاعدة البيانات ، في واجهة مستخدم قائمة على الويب:

شاشة إعداد WordPress التي نادرًا ما يتم رؤيتها. يقوم WordPress بتحميل هذا إذا لم يعثر على ملف تهيئة ، مما يسمح لك بتعيين خيارات التكوين يدويًا.

هذه ميزة في WordPress تستحق المعرفة عنها. إذا قمت بوضع ملفات WordPress الأساسية على خادم ويب متاح للجمهور ، ولكن لم تقم بإنشاء ملف wp-config.php ، فيمكن أن يأتي شخص آخر (أو على الأرجح روبوت) ويقوم بإعداد WordPress بطريقته الخاصة وربما تعرض استضافتك للخطر.

يتم تحميل wp-config.php مبكرًا جدًا

الشيء الثالث الذي يجب ملاحظته هو أن wp-config.php يتم تحميله مبكرًا في تسلسل بدء تشغيل WordPress. هذا يعني ذاك:

  1. هناك الكثير مما لا يمكننا فعله في wp-config.php . على سبيل المثال ، لا يمكننا إضافة خطافات (إجراءات أو عوامل تصفية) هنا لأن الوظائف وهياكل البيانات للقيام بذلك لم يتم تحميلها بعد. وليس لدينا إمكانية الوصول إلى أي من الوظائف الداخلية ، والكائنات ، وواجهات برمجة التطبيقات في WordPress.

  2. لدينا قدر كبير من السيطرة على ما سيحدث بعد ذلك. نظرًا لأن الملف يتم تحميله مبكرًا جدًا ، فإن له تأثيرًا كبيرًا على WordPress. هذا جيد ومتعب. يمكننا بسهولة جعل WordPress يموت تمامًا. ولكن يمكننا أيضًا الوصول إلى أي شيء تم تعريفه في wp-config.php من أي مكان آخر في WordPress.

لا تعبث مع ملف wp-config.php!

آخر شيء نتعلمه من هذه العملية هو أنه مع هذه القوة العظيمة تأتي مسؤولية كبيرة.

توجد هذه الأسطر أسفل wp-config.php :

 /* Add any custom values between this line and the "stop editing" line. */ /* That's all, stop editing! Happy publishing. */ /** Absolute path to the WordPress directory. */ if ( ! defined( 'ABSPATH' ) ) { define( 'ABSPATH', __DIR__ . '/' ); } /** Sets up WordPress vars and included files. */ require_once ABSPATH . 'wp-settings.php';

توجد بعض الإرشادات هنا ، ولكن سطر "إيقاف التحرير" مهم. بعد هذا السطر هو استمرار لتسلسل تهيئة WordPress. من المحتمل أن تؤدي إضافة رمز جديد في المكان الخطأ إلى عدم تأثير الرمز الجديد على الإطلاق. ولكن لكي تكون آمنًا ، أوصي باتباع هذه التعليمات. إنهم هناك لسبب وجيه.

فحص / فحص ملف wp-config.php الخاص بك

إذا كنت تعمل في مجال الإنتاج ، فأنت حقًا لا تريد وضع أي أخطاء في wp-config.php . يمكن أن تؤدي الأخطاء هنا إلى تعطيل موقع الويب الخاص بك ، وقد لا تظهر لك رسالة خطأ مفيدة عندما يحدث ذلك.

يمكنك تشغيل php على سطر الأوامر باستخدام الخيار -l ("lint") لفحص wp-config.php الخاص بك بحثًا عن أخطاء بناء جملة PHP الفادحة.

$ php -l wp-config.php

خطأ في التحليل: خطأ في بناء الجملة ، رمز غير متوقع "يتطلب_once" في wp-config.php في السطر 9

أخطاء في تحليل ملف wp-config.php

يمكنك حتى كتابة نص شل ل ...

  1. انسخ wp-config.php إلى ملف مؤقت ،
  2. تحرير الملف المؤقت ،
  3. لينت الملف المؤقت ، و
  4. انسخه مرة أخرى فقط إذا لم يكن به أخطاء في بناء الجملة.

إذا كنت راضيًا عن سطر الأوامر ، فمن الأكثر أمانًا استخدام أوامر WP-CLI مثل wp config set <name> <value> لتعيين القيم بأمان بدلاً من القيام بذلك يدويًا.

يمكنك سرد قيم التكوين الخاصة بك مع WP-CLI أيضًا (هذه عينة مع إزالة بعض الإدخالات - تحصل على الفكرة!):

قائمة التكوين $ wp
+ --------------------- + --------------------------- -------------------- + ---------- +
| الاسم | قيمة | اكتب |
+ --------------------- + --------------------------- -------------------- + ---------- +
| root_dir | / المستخدمون / حدادون / مواقع / snpp | متغير |
| webroot_dir | / المستخدمون / الحدادون / sites / snpp / public | متغير |
| table_prefix | wp_ | متغير |
| WP_HOME | https: //snpp.test | ثابت |
| WP_SITEURL | https: //snpp.test/ | ثابت |
| DB_NAME | snpp | ثابت |
| DB_USER | الجذر | ثابت |
| DB_PASSWORD | مونتغمري | ثابت |
| DB_HOST | 127.0.0.1 | ثابت |
| DB_CHARSET | utf8mb4 | ثابت |
| DB_COLLATE | | ثابت |
| DB_PREFIX | wp_ | ثابت |
| WP_DEBUG | 1 | ثابت |
| WP_DEBUG_LOG | 1 | ثابت |
| WP_DEBUG_DISPLAY | | ثابت |
| WP_ENVIRONMENT_TYPE | التطوير | ثابت |
| DISABLE_WP_CRON | | ثابت |
| DISALLOW_FILE_EDIT | 1 | ثابت |
+ --------------------- + --------------------------- -------------------- + ---------- +

يمكن أن توفر لك هاتان الطريقتان بالفعل بعض المتاعب وتمنعك من القلق بشأن وضع فاصلة منقوطة بطريق الخطأ في المكان الخطأ في مثل هذا الملف الهام.

تأمين WordPress باستخدام ملف wp-config.php

يعد الأمان موضوعًا ساخنًا دائمًا في WordPress. بعض الإعدادات التي يمكننا تغييرها في ملف wp-config تضع المزيد من الأدوات في صندوق أدوات الأمان الخاص بنا.

هذه الأجزاء من ملف wp-config هي بالتأكيد ليست الأشياء الوحيدة التي يجب عليك استخدامها لتحقيق أمان WordPress جيد. تأكد من أنك تفهم أمان موقع الويب تمامًا بالإضافة إلى المعلومات الواردة في القسم التالي.

حماية ملف wp-config.php من زوار الموقع

يعيش ملف wp-config في الدليل الجذر لموقع الويب الخاص بك افتراضيًا ، ويصادف أنه يحتوي على معلومات مهمة مثل تفاصيل تسجيل الدخول إلى قاعدة البيانات وأملاح كلمة المرور. أنت لا تريد أن تكون هذه المعلومات متاحة للجمهور ، لذلك يجب عليك التأكد من أن ملف wp-config محمي من زوار الموقع.

غالبًا ما تقوم شركة الاستضافة الخاصة بك بذلك نيابة عنك. يمكنك التحقق من خلال محاولة الوصول إلى الملف من متصفحك عن طريق إضافة /wp-config.php مباشرة بعد المجال الخاص بك. قد يكون عنوان URL هذا مختلفًا إذا قمت بنقل الملف.

إذا كنت قد وضعت ملف wp-config في الدليل أعلى الدليل الجذر لموقع الويب الخاص بك ، فلن تتمكن من رؤيته. في معظم الحالات الأخرى ، ستصلك رسالة خطأ PHP عند محاولة زيارة الملف على أي حال ، لذلك لا يوجد عادة ما تفعله هنا. ولكن إذا كنت ترغب في تأمينه بشكل صحيح ، فيمكنك القيام بذلك عن طريق تعديل تكوين خادم الويب (Apache أو nginx) لمنع الوصول إليه.

أخيرًا ، إذا كنت تقوم بتخزين ملف موقع الويب الخاص بك في Git ، فمن المهم عدم تخزين ملف wp-config في مستودع Git الخاص بك. قد يؤدي القيام بذلك إلى تسريب معلومات مهمة حول موقعك ، ولكن بالإضافة إلى ذلك ، ربما تريد إصدارًا مختلفًا من هذا الملف في كل بيئة على أي حال. لذلك من الأفضل إضافته إلى .gitignore وإدارة الملفات يدويًا في كل بيئة.

مفاتيح / أملاح دوارة

ما هي المفاتيح / الأملاح؟

يعد قسم المفاتيح والأملاح أحد الأجزاء الأكثر غموضًا في ملف wp-config . تساعد هذه المجموعة من الثوابت ذات المظهر الغريب في تشفير أشياء مثل ملفات تعريف الارتباط و nonces. دون الخوض في التفاصيل - كما فعل WP Engine - يضيفون طبقة إضافية من العشوائية التي تجعل فك تشفير الأشياء أكثر صعوبة إذا كنت لا تعرف الأملاح والمفاتيح.

لماذا "استدارة" المفاتيح / الأملاح؟

أولاً ، "استدارة" هي مجرد كلمة منمقة لكلمة "تغيير". لا أعرف لماذا نستخدم "التدوير". ليس الأمر كما لو أننا عدنا إلى نفس مجموعة المفاتيح!

ربما يجب عليك تغيير المفاتيح والأملاح إذا تم اختراق الموقع ، حيث لا يمكنك ضمان أن المفاتيح والأملاح لا تزال سرية. ولكن قد ترغب في تدويرها بشكل منتظم على أي حال ، كما هو الحال مع كلمات المرور ، فقط للتأكد من عدم معرفة أي شخص لها.

مشكلة تدوير المفاتيح / الأملاح

تغيير المفاتيح والأملاح لا يخلو من الألم. أي شخص لديه مجموعة ملفات تعريف الارتباط سيفقدها. لذلك سيتم إخراج أي شخص قام بتسجيل الدخول ، وأي شخص لديه عربة WooCommerce سيتم إفراغها.

كيفية تدوير المفاتيح / الأملاح

أعني ، يمكنك تحرير ملف wp-config بعض الأحرف العشوائية الجديدة على الأحرف القديمة. لكن هذا سيكون مملاً والبشر ليسوا جيدين جدًا في العشوائية.

لذا دعني أخبرك ببعض الطرق لتعيين مفاتيح / أملاح جديدة في ملف wp-config .

  1. إضافة مفاتيح من المولد يدويًا: يمكنك استخدام منشئ wordpress.org للحصول على الكود الذي تحتاجه. ما عليك سوى نسخه ولصقه في ملف wp-config بدلاً من القيم القديمة.
  2. استخدم مكونًا إضافيًا: تحتوي العديد من المكونات الإضافية للأمان مثل Sucuri Security و iThemes Security و Malcare على هذه الميزة. و Salt Shaker هو مكون إضافي مخصص لأتمتة هذه العملية وفقًا لجدول زمني لك.
  3. استخدم WP-CLI. هل قلنا مدى روعة WP-CLI حتى الآن؟ نحن فعلنا؟ نعم. حسنًا ، نحن نقولها مرة أخرى! ويمكنك استخدام الأمر wp config shuffle-salts للقيام بهذه المهمة في ثوانٍ.

تحريك وإخفاء الأشياء

سيخبرك موظفو الأمن أن "الأمان من خلال التعتيم" ليس أمانًا على الإطلاق ، ولكن لا يزال بعض الأشخاص يرغبون في إخفاء عناصر WordPress الخاصة بهم لوضع بعض الحواجز الإضافية أمام المتسللين.

يمنحك ملف wp-config عددًا من الخيارات للقيام بذلك ، وسوف نغطيها في أقسام لاحقة حول نقل الأشياء وإيقاف تحرير الملف.

تعطيل محرري الملفات

يحتوي WordPress على ميزة مفيدة تتيح لك تحرير الملفات في السمات والإضافات من داخل لوحة تحكم المسؤول. يتيح لك تحرير wp-config.php إيقاف تشغيل برامج تحرير الملفات هذه! يحب بعض الناس تعطيلها لراحة البال.

أعلم الآن أن هناك حجة أمنية مفادها أنه إذا كان لدى شخص ما حق وصول المسؤول إلى موقعك - ​​وهو أمر ضروري لاستخدام هؤلاء المحررين - فيمكنهم تحميل مكون إضافي والقيام بما يحلو لهم على أي حال. لا يؤدي تمكين هؤلاء المحررين إلى تزويد المتسللين بأي قوة أكثر مما لديهم بالفعل.

ومع ذلك ، على الرغم من أنه قد لا يتم تحسين الأمان فعليًا عن طريق إيقاف تشغيلها ، فإن السبب الحقيقي للقيام بذلك هو منع الأشخاص المصرح لهم بالفعل كمسؤولين من استخدامها. إذا كنت تمثل وكالة ، فربما لا تريد أن يكتشف عملاؤك أنه يمكنهم تعديل جميع ملفات السمات الخاصة بهم ، أليس كذلك؟

سيعطل العديد من المضيفين هذه الميزة افتراضيًا. ولكن إذا كنت تريد جعلها تختفي ، فالأمر بسيط مثل إضافة:

 define( 'DISALLOW_FILE_EDIT', true );

أو إذا كنت تريد حقًا قفل نظام الملفات لديك ، فهناك DISALLOW_FILE_MODS ، والتي سنتناولها في القسم التالي.

تعطيل التحديثات التلقائية

سواء كنت تحبهم أو تكرههم ، كان للتحديثات التلقائية لـ WordPress تأثير إيجابي على نظام WordPress ومن الصعب تجاهلها. لكن لا يريد الجميع أن يعتني برمجياتهم بنفسها!

لذلك يمنحك wp-config التحكم في عملية التحديثات التلقائية بمجموعة بسيطة من الثوابت التي لا تحتاج إلى شرح والتي يمكنك تعيينها:

 # Disable all core updates: define( 'WP_AUTO_UPDATE_CORE', false ); # Enable all core updates, including minor and major: define( 'WP_AUTO_UPDATE_CORE', true ); # Enable core updates for minor releases (default): define( 'WP_AUTO_UPDATE_CORE', 'minor' );

إذا كنت تريد شيئًا أكثر تطرفًا ، فيمكنك DISALLOW_FILE_MODS :

 define( 'DISALLOW_FILE_MODS', true );

لكن هذا يمنع WordPress من كتابة أي شيء على القرص يتعلق بالنواة أو السمات أو المكونات الإضافية أو الترجمات ، ويعطل إشعارات البريد الإلكتروني حول التحديثات البسيطة. وقد وصفه أحد المساهمين الأساسيين بأنه "غبي مجنون للاستخدام إلا إذا كنت تعرف بالضبط ما تفعله".

أقل تطرفًا قليلاً هو AUTOMATIC_UPDATER_DISABLED . يتيح لك هذا تثبيت المكونات الإضافية والسمات ، ولكن لن يتم تحديثها أو تحديث البرنامج الأساسي. كما أنه يعطل تحديثات الترجمة بالرغم من ذلك.

 define( 'AUTOMATIC_UPDATER_DISABLED', true );

يوجد دليل مفصل حول كل هذا على موقع wordpress.org ، بما في ذلك بعض الخيارات الأخرى مثل استخدام المرشحات لمزيد من التحكم الدقيق.

أخيرًا ، ألاحظ أنه إذا كان موقعك خاضعًا للتحكم في الإصدار ، فمن المحتمل أن WordPress قام بتعطيل التحديثات لك على أي حال. على سبيل المثال ، سيؤدي وجود دليل .git في جذر الموقع (أو ملفات أخرى مختلفة في أماكن مختلفة مختلفة) إلى تعطيل التحديثات التلقائية دون الحاجة إلى إضافة أي شيء إلى wp-config .

تكوين HTTPS

غالبًا ما كان تكوين HTTPS يمثل تحديًا. مع ظهور شهادات أمان مجانية وموثوقة من أماكن مثل LetsEncrypt و Cloudflare ، سيقوم العديد من المضيفين بإعداد هذا لك ببضع نقرات. ربما يجب اعتبار هذا الإعداد إرثًا ، ولكن ربما لا تزال بحاجة إليه لشيء ما.

يخبر ثابت FORCE_SSL_ADMIN WordPress أن يستخدم SSL دائمًا لصفحات تسجيل الدخول ولوحة معلومات WordPress. وهذا يضمن عدم إمكانية إرسال بيانات الاعتماد وملفات تعريف الارتباط الآمنة بدون تشفير.

ولكن ، كما قلت ، ستجعل شركة الاستضافة الجيدة إعداد HTTPS على موقعك أمرًا بسيطًا على أي حال ، لذا قم بذلك فقط.

منع طلبات HTTP الخارجية

أخيرًا في مجال الأمان ، يمكنك حظر طلبات HTTP الخارجية. هذا يعني أن WordPress لا يمكنه الاتصال بأماكن أخرى على الإنترنت للقيام بأشياء مثل إجراء مكالمات API أو تنزيل التحديثات.

يُعد السماح لـ WordPress بالاتصال بالخدمات الخارجية عبر HTTP بشكل عام فكرة جيدة لأنه يتيح لك الحصول على التحديثات وتثبيت المكونات الإضافية والسمات ، وستتعطل العديد من المكونات الإضافية إذا قمت بإيقاف تشغيل طلبات HTTP.

لكن جوهر WordPress والعديد من المكونات الإضافية والسمات ترسل "بيانات الاستخدام" أو "بيانات الاستخدام" إلى الخوادم المركزية. يمكن أن يكون هذا جيدًا - فهو يساعد مطوري المكونات الإضافية والقوالب على معرفة من يستخدم برامجهم وكيف. ولكن إذا كان لديك موقع يحتوي على بيانات حساسة بشكل خاص ، فقد ترغب في تعطيل هذا. ويمكنك فعل ذلك باستخدام:

 define( 'WP_HTTP_BLOCK_EXTERNAL', true );

إذا كنت ترغب في الحصول على قائمة السماح بالمضيفين الذين يمكن الاتصال بهم ، فيمكنك القيام بذلك أيضًا:

 define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.github.com' );

لاحظ أن قائمة المضيفين الذين يمكن الوصول إليهم عبارة عن قائمة مفصولة بفواصل وأن نطاقات أحرف البدل الفرعية مسموح بها. ويمكنك مراقبة المضيفين الذين يتم الاتصال بهم باستخدام المكون الإضافي لطلبات تسجيل HTTP.

نقل الأشياء حولها

ليس كل تثبيت WordPress هو نفسه. يحب بعض المضيفين أو الأطر نقل الدلائل لأسباب أمنية أو للحفاظ على الشفرة والأصول الخاصة بالموقع منفصلة عن نواة WordPress. تغطي مقالتي حول استخدام Git and Composer لإدارة WordPress بعض فوائد هذا الأسلوب.

إذن ما هي الخيارات التي يوفرها لك WordPress - لعدم وجود مصطلح أفضل - "نقل الأشياء"؟

تغيير بادئة قاعدة البيانات

يستخدم WordPress بادئة اسم جدول قاعدة البيانات wp_ افتراضيًا. تُضاف هذه البادئة إلى جميع أسماء جداول قاعدة البيانات وتُستخدم في بعض الأماكن الأخرى أيضًا ، على سبيل المثال خيار <prefix>user_roles في جدول الخيارات ، و <prefix>capabilities المستخدم.

قد يستخدم المتسللون أو المهاجمون البادئة الافتراضية في هجوم ، في محاولة لاكتشاف أو تعديل جداول قاعدة البيانات الخاصة بك. لذلك يوصي بعض الناس بتغييره من الافتراضي.

يتيح لك الخيار wp_config $table_prefix القيام بذلك ، وربما يجب عليك تعيينه على سلسلة قصيرة ولكن عشوائية ، مُلحقة بشرطة سفلية:

 $table_prefix = 'b4F8az_';

سيؤدي هذا إلى إخبار WordPress باستخدام أسماء الجداول مثل b4F8az_posts بدلاً من wp_posts .

لا يجب عليك تحديث أي رمز لتلبية هذا التغيير (ما لم يكن هذا الرمز مكتوبًا بشكل سيئ للغاية ) ، ولكن إذا كنت تقوم بتغيير هذا في موقع موجود ، فسيتعين عليك إجراء بعض التحديثات لقاعدة البيانات الخاصة بك - وليس فقط إعادة التسمية الطاولات!

ستفعل بعض المكونات الإضافية للأمان ذلك نيابةً عنك وهناك مكون إضافي يمكنه القيام بذلك أيضًا. نوصي بشدة بعمل نسخة احتياطية من قاعدة البيانات الخاصة بك قبل القيام بذلك ، ولاحظ أن اختيار بادئة جدول غير افتراضية هو الأفضل عند تثبيت WordPress ، وليس عند تغييره أثناء طيران موقعك.

ملاحظة مثيرة للاهتمام حول هذا الأمر هي أن $table_prefix متغير وليس ثابتًا. إنه المتغير الوحيد المحدد في نموذج ملف التكوين الذي يمنحك إياه WordPress! وإذا كنت لا تزال فضوليًا: نعم ، تعتني أوامر wp config WP-CLI بهذا الأمر من أجلك دون الحاجة إلى معرفة ذلك!

نقل جداول المستخدم و Usermeta

لم أر هذا من قبل ، وتعلمت فقط أنه يمكن القيام به عند كتابة هذا المقال ، ولكن يمكنك أيضًا تغيير أسماء المستخدمين وجداول المستخدمين بالكامل.

أعتقد أن هذا يساعد في منع هجوم حقن SQL الذي يحاول "SELECT * FROM wp_usermeta؛" ، لكنني سعيد لسماع أسباب أخرى للقيام بذلك.

على أي حال ، فإن CUSTOM_USER_TABLE و CUSTOM_USER_META_TABLE هي ما تحتاجه:

 define( 'CUSTOM_USER_TABLE', $table_prefix.'my_users' ); define( 'CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta' );

هناك بعض المحاذير التي تستحق المعرفة قبل استخدام هذه الثوابت. تحقق من المستندات الرسمية قبل استخدام هذه الميزة. ومثل استخدام بادئة جدول مخصصة ، فمن الأفضل فعل ذلك بالتأكيد عند تثبيت موقع جديد ، بدلاً من تعديله لاحقًا.

نقل المحتويات والتحميلات والدلائل الإضافية

من الممكن أيضًا نقل دليل wp-content بالكامل ودليل uploads وأدلة themes plugins . أشياء يجب ملاحظتها:

  • في بعض هذه الحالات ، تحتاج إلى تعيين عنوان URL بالإضافة إلى الدليل.
  • يجب أن تكون حريصًا على استخدام المسارات الكاملة أو المسارات النسبية حسب الاقتضاء.
  • يجب ألا تحتوي أي من هذه الإعدادات على شرطة مائلة.

راجع الوثائق الرسمية للحصول على التفاصيل - لن أكرر كل ذلك هنا.

أخيرًا ، لاحظ أن مكونًا إضافيًا أو سمة سيئة التشفير يمكن أن تتعطل إذا قمت بتغييرها. لا ينبغي أن يحدث هذا أبدًا ، لكن الأمر يستحق المعرفة.

إذا كنت مطورًا إضافيًا أو موضوعًا ، فمن المهم أن تتذكر أن هذه المسارات يمكن أن تتغير. لذا تأكد من عدم تثبيت مسارات التعليمات البرمجية إلى الدلائل أو عناوين URL. الوظائف المفيدة لك هنا هي:

wp_upload_dir
plugins_url
plugin_dir_url
plugin_dir_path
get_stylesheet_directory
get_stylesheet_directory_uri
get_template_directory - لاحظ أنه بالنسبة للقالب الفرعي ، يؤدي هذا إلى إرجاع موقع القالب الأصلي
get_template_directory_uri

توجد قائمة أكثر شمولاً للوظائف مثل هذه في دليل مطور WordPress.

أخيرًا ، بالإضافة إلى نقل الملفات داخل تثبيت WordPress الخاص بك ، قد ترغب أيضًا في نقل موقع wp-admin الخاص بك ، أو تغيير موقع موقعك. ويمكن أن يساعد wp-config.php ذلك أيضًا.

الإعدادات المتعلقة بالمحتوى

يعد WordPress ، بعد كل شيء ، نظام إدارة محتوى. لذلك تتوقع بعض الثوابت التي يمكنك استخدامها في wp-config.php للتحكم في خيارات المحتوى. دعونا نلقي نظرة ونرى ما يمكننا القيام به.

قم بتغيير عناوين URL الخاصة بالموقع ولوحة المعلومات

لطالما أربكتني هذه

لتعيين عنوان URL لموقعك ، تحتاج إلى استخدام ثابت WP_HOME ، وليس ثابت WP_SITEURL .

لا يغير ثابت WP_SITEURL عنوان URL الخاص بموقعك.

خجول؟

الوصف الرسمي لما يفعله WP_SITEURL هو "العنوان الذي توجد به ملفات WordPress الأساسية الخاصة بك." هذا أيضًا محير لأنه عنوان URL وليس دليلاً.

لا تلومني على هذا ، أنا مجرد مرشدك السياحي لهذا اليوم!

يؤدي إعداد WP_HOME و WP_SITEURL إلى تجاوز إدخالات home و siteurl في جدول قاعدة بيانات wp_options . لذلك ، على الأقل ، يكون منطقيًا.

 // NOTE: These must not have trailing slashes define( 'WP_HOME', 'https://helfish.media' ); define( 'WP_SITEURL', 'https://hellfish.media/wordpress` );

يمكنك استخدام هذه الثوابت بعد نقل موقع إلى عنوان URL جديد ، لتنشيط الموقع وتشغيله أثناء إصلاح قاعدة البيانات بشكل صحيح. يمكنك حتى أن تختار تركها في مكانها بعد ذلك.

يمكن أيضًا استخدام إعداد WP_SITEURL عند نقل ملفات WordPress الأساسية إلى دليل مختلف.

يؤدي استخدام هذه أيضًا إلى منع تشغيل استعلام قاعدة بيانات أو استعلامين للحصول على القيم من جدول الخيارات ، لذلك قد يكون له مكاسب هامشية في الأداء. على الرغم من أنك إذا كنت تقوم بالتخزين المؤقت للكائنات ، فمن المحتمل أن يكون هذا المكسب ضئيلًا.

هناك المزيد من التفاصيل في المستندات الرسمية ، وحتى مقالة دعم كاملة حول تغيير عنوان URL للموقع. بالإضافة إلى ذلك ، تتضمن هذه المقالة ثابت RELOCATE الغامض لـ wp-config.php الذي لم أسمع به من قبل قبل البحث في هذه المقالة.

أخيرًا ، عند نقل المواقع ، لاحظ أن هذا ليس الشيء الوحيد الذي يجب عليك تغييره. يوصى بإجراء بحث كامل عن قاعدة البيانات واستبدالها لسلاسل URL.

إعدادات النشر

هناك عدد قليل من الإعدادات المختلفة التي يمكنك تعديلها عندما يتعلق الأمر بالمشاركات. يهتم معظم هؤلاء إما بتنقيحات النشر أو ميزة الحفظ التلقائي.

المراجعات اللاحقة

السلوك الافتراضي لـ WordPress هو حفظ جميع المراجعات التي تم إجراؤها على المنشورات والصفحات. ميزة هذا هو أنه من السهل العودة إلى الإصدارات السابقة. تتمثل العيوب في أن جميع هذه المراجعات تشغل مساحة في قاعدة البيانات ويمكن أن تؤثر على أداء الموقع عن طريق إبطاء استعلامات قاعدة البيانات.

من الممكن تعطيل مراجعات المنشور تمامًا عن طريق تعديل قيمة WP_POST_REVISIONS في wp-config.php الخاص بك. هو افتراضيات إلى صحيح. لإيقاف تشغيل المراجعات ، يمكنك تعيينها على "خطأ" بدلاً من ذلك:

 define( 'WP_POST_REVISIONS', false );:

يقوم بعض المضيفين ، بما في ذلك WP Engine ، بتعطيل مراجعات النشر افتراضيًا. أوصي بالتحقق من مزود الاستضافة قبل إجراء أي تغييرات. يختلف هذا من مضيف لآخر ، ولكن إذا كنت تستخدم WP Engine ، فلا يمكنك تمكين المراجعات من خلال wp-config ، حيث سيتم الكتابة فوقها على مستوى الخادم.

إذا كان مضيفك يتحكم في هذا وحاولت تغييره ، فلن تكسر شيئًا بالضرورة ، لكنك قد تضيع وقتك.

إذا كنت قلقًا بشأن تنقيحات النشر التي تبطئ استعلامات قاعدة البيانات ، فقد يكون الخيار الأفضل هو الحد من عدد المراجعات التي يخزنها WordPress. يتم التحكم في ذلك من خلال ثابت WP_POST_REVISIONS ، والذي يمكنك تعيينه على الحد الأقصى لعدد المراجعات التي تريد الاحتفاظ بها:

 define( 'WP_POST_REVISIONS', 5 );

تغيير الفاصل الزمني للحفظ التلقائي

يمكنك أيضًا تقليل عدد مرات إطلاق الحفظ التلقائي. يتم تعيين هذا الإعداد افتراضيًا على كل 60 ثانية ، ولكن يمكنك تغييره إلى ما تريد. إذا كنت مصابًا بجنون العظمة ، فقد ترغب في تعيين هذا على 20 أو 30 ثانية بدلاً من ذلك.

من المهم أن تضع في اعتبارك المدة التي يستغرقها الحفظ التلقائي. أنت لا تريد أن تتداخل من خلال جعلها تحدث بشكل متكرر ، لذلك لا تقم بتعيين هذه القيمة ، على سبيل المثال ، ثانية واحدة. ليس من المحتمل جدًا أن تستغرق عمليات الحفظ التلقائي أكثر من الإعداد الافتراضي وهو 60 ثانية ، ولكن يمكنك زيادة الفاصل الزمني إذا كنت ترغب في حفظ الطلبات:

 define( 'AUTOSAVE_INTERVAL', 120 ); // Seconds

تغليف

هناك الكثير من الإمكانات في wp-config التي تنتظر فقط فتحها. آمل أن تكون هذه الجولة قد ساعدت في إبراز بعض ما هو ممكن. في مقال مستقبلي ، سأبحث في المزيد من الإمكانات المتقدمة المتأصلة في wp-config ، بما في ذلك التثبيتات متعددة المواقع ، وتصحيح الأخطاء. سأبحث أيضًا في الأداء ، بما في ذلك كيفية ضبط حدود الذاكرة ، ومشكلات CRON ، وأنواع البيئة.

ليس هناك شك في كنوز أخرى كامنة في الوثائق الرسمية ، تنتظر من يكتشفها. ما هي النصائح التي وجدتها لاستخدام wp-config ؟ اسمحوا لي أن نعرف في التعليقات.