اذهب إلى المحتوى

يُعَد ملف wp-config.php أحد أهم ملفات إعدادات ووردبريس، وهو متواجد في مسار الجذر الرئيسي لملفات ووردبريس، كما يتضمن المعلومات الأساسية لتشغيل موقعك مثل معلومات الاتصال بقاعدة البيانات.

لن تجد ملف wp-config.php عند تنزيل ملف ووردبريس المضغوط لأول مرة، ولكنه سيُنشأ فور تثبيت ووردبريس بالاعتماد على المعلومات التي تُقدمها في خطوات التثبيت (اسم قاعدة البيانات واسم مستخدم قاعدة البيانات وكلمة المرور الخاصة به).

تستطيع إنشاء ملف wp-config.php يدويًا باستخدام الملف wp-config-sample.php، والذي تجده ضمن ملفات تثبيت ووردبريس عند فك ضغطه (ضمن المسار الرئيسي لملفات ووردبريس)، وبعد الانتهاء من تعديل محتوى الملف، عليك حفظه باسم wp-config.php.

اقتباس

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

تحتاج إلى المعلومات التالية لتعديل ملف wp-config.php أثناء التثبيت:

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

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

ضبط إعدادات قاعدة البيانات

اقتباس

ملاحظة هامة: امتنع عن استخدام معالج نصوص مثل مايكروسوفت وورد لتعديل ملفات ووردبريس.

حدد موقع ملف wp-config-sample.php ضمن مسار تثبيت ووردبريس الرئيسي وافتحه ضمن محرر نصوص.

ملف wp-config-sample.php الافتراضي

فيما يلي مثال عن ملف wp-config-sample.php الافتراضي، حيث أن القيم المستخدمة هي مجرد أمثلة لتعريفك ما يجب فعله.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );
/** MySQL database username */
define( 'DB_USER', 'username_here' );
/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
اقتباس

ملاحظة: يُعَد النص داخل /**/ تعليقات لتقديم معلومات لا غير.

ضبط اسم قاعدة البيانات

استبدل عبارة database_name_here باسم قاعدة البيانات الخاصة بك، مثل MyDatabaseName.

define( 'DB_NAME', 'MyDatabaseName' ); // Example MySQL database name

ضبط مستخدم قاعدة البيانات

استبدل عبارة username_here باسم مستخدم قاعدة البيانات الخاصة بك، على سبيل المثال MyUserName.

define( 'DB_USER', 'MyUserName' ); // Example MySQL username

ضبط كلمة مرور قاعدة البيانات

استبدل عبارة "password_here" بكلمة مرور قاعدة البيانات لديك، مثال MyPassword.

define( 'DB_PASSWORD', 'MyPassWord' ); // Example MySQL password

ضبط مضيف قاعدة البيانات

استبدل localhost باسم مضيف قاعدة البيانات، مثال MyDatabaseHost إضافةً إلى رقم منفذ الاتصال والذي من الممكن أن تحتاج معه إلى مسار ملف مقبس يونكس Unix socket.

define( 'DB_HOST', 'MyDatabaseHost' ); // Example MySQL Database host

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

المنفذ البديل لقاعدة بيانات MYSQL

ستضطر لتغيير قيمة DB_HOST ضمن ملف wp-config.php في حال استخدم المضيف رقم منفذ بديل لقاعدة بياناتك.

من أجل المُضيف المحلي localhost:

define( 'DB_HOST', '127.0.0.1:3307' );

أو في بعض الحالات:

define( 'DB_HOST', 'localhost:3307' );

أما لخادم محدد:

define( 'DB_HOST', 'mysql.example.com:3307' );

طبعًا رقم المنفذ المُستخدم 3307 ليس إلزاميًا فهو يختلف تبعًا لما يمنحه لك مضيفك.

مقابس MYSQL أو Pipe

يجب عليك الانتباه أنه في حال استخدام مضيفك لمقابس يونكس أو Pipe، عليك تعديل قيمة DB_HOST ضمن ملف wp-config.php حسب المُستخدم.

define( 'DB_HOST', '127.0.0.1:/var/run/mysqld/mysqld.sock' );
// or define( 'DB_HOST', 'localhost:/var/run/mysqld/mysqld.sock' );
// or define( 'DB_HOST', 'example.tld:/var/run/mysqld/mysqld.sock' );

استبدل/var/run/mysqld/mysqld.sock بمعلومات المقبس أو Pipe المُقدّمة من قبل مضيفك.

الاحتمالات الممكنة لقيمة DB_HOST

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

مزود الاستضافة قيمة DB_HOST المتوقعة
1and1 db12345678
استضافة A2 localhost
استضافة AN localhost
Aruba.it localhost أو عنوان IP حقيقي يُرسل مع رسالة تفعيل البريد الالكتروني
A Small Orange localhost
AT&T xxxxxxxx.carrierzone.com تجد الاسم الكامل للخادم ضمن PHPMyAdmin
BlueHost localhost
DreamHost mysql.example.com
GoDaddy - الاستضافات المُشتركة واستضافات 4GH توجه ضمن قائمة قواعد البيانات إلىMySQL، واضغط على Actions and Details الموجودة إلى يمين اسم قاعدة البيانات. ستجد اسم المُضيف في أسفل النافذة.
GoDaddy - استضافة مع لوحة تحكم cPanel localhost
GoDaddy - استضافة مع لوحة تحكم Plesk استخدم عنوان IP الموجود ضمن قسم قواعد البيانات في لوحة تحكم Plesk ولا تشمل :3306
HostGator localhost
ICDSoft localhost:/tmp/mysql5.sock
Infomaniak Network mysql.yourdomain
InMotion localhost
iPage username.ipagemysql.com
IPower username.ipowermysql.com
Laughing Squid localhost
MediaTemple Grid internal-db.s00000.gridserver.com (استبدل 00000 برقم الموقع الحقيقي)
MediaTemple DV localhost
MegaHost localhost
NearlyFreeSpeech.Net username.db
NetworkSolutions mysqlv5
One.com example.com.mysql
Pair Networks dbnnnx.pair.com
QTH.com localhost
Rackspace Cloud استخدم localhost للخوادم غير المُدارة، أما بالنسبة للمواقع السحابية فعليك استخدام متغيرات مثل mysqlXY-AB.wcN.dfQ.stabletransit.com حيث X وY وA وB وN وQ متغيرات
SysFix.eu Power datapower.sysfix.eu
Site5 localhost
Yahoo Mysql
الاستضافات التي تستخدم لوحة تحكم cPanel localhost
الاستضافات التي تستخدم لوحة تحكم Plesk localhost
الاستضافات التي تستخدم لوحة تحكم DirectAdmin localhost
Tophost.it sql.your-domain-name.it

مجموعة محارف قاعدة البيانات Database character set

تسمح DB_CHARSET بتعيين مجموعة محارف قاعدة البيانات حتى تُستخدم عند تعريف جداول قاعدة البيانات. حيث تكون القيمة الافتراضية لها هي utf8 (مجموعة محارف Unicode UTF-8)، وهي الخيار الأفضل في أغلب الأحيان، حيث تدعم UTF-8 جميع اللغات وبالتالي من المُستحسن الإبقاء على قيمة utf8 لـ DB_CHARSET واستخدام ترتيب قاعدة البيانات DB_COLLATE للغة المُراد دعمها بدلًا من ضبط قيمة DB_CHARSET.

يُظهر المثال التالي استخدام utf8 وهي قيمة ووردبريس الافتراضية:

define( 'DB_CHARSET', 'utf8' );

لا توجد حاجة غالبًا لتغيير قيمة DB_HOST الافتراضية ولكن إن احتاجت مدونتك لمجموعة محارف مختلفة، فعليك قراءة مجموعات المحارف والترتيبات التي تدعمهاMySQL للحرص على استخدام قيم صحيحة لقيمة DB_HOST.

اقتباس

تحذير: تتطلب بعض القيم عمل ترقية لقاعدة البيانات.

لا تضف تعريفًا لمجموعة قاعدة البيانات DB_CHARSET  أو ترتيبها DB_COLLATE في حال عدم وجودها في ملف wp-config.php، إلا إن كنت قد قرأت عن وفهمت جيدًا آلية تحويل مجموعة محارف قاعدة البيانات، وذلك لأن إضافة DB_CHARSET  أو DB_COLLATE لمدونةٍ قيد التشغيل غالبًا سوف يُسبب مشاكل خطيرة.

ترتيب مجموعة محارف قاعدة البيانات Database Collation

يسمح DB_COLLATE بتعيين ترتيب مجموعة محارف قاعدة البيانات (مثال على ذلك كيفية ترتيب مجموعة المحارف)، ويجب الإبقاء على قيمة هذا المتغير في معظم الحالات فراغًا لتعيين ترتيب قاعدة البيانات افتراضيًا من قبل MySQL بالاعتماد على مجموعة محارف قاعدة البيانات المُحددة بقيمة DB_CHARSET. يُمكنك استخدام DB_COLLATE وإعطائها أحد قيم UTF-8 المُعرّفة في مجموعات محارف UTF-8 للغات أوروبا الغربية عند استخدامك لغة مختلفة تظهر محارفها مختلفة عما هو مُدخل. (ألقِ نظرةً على مجموعات محارف Unicode ضمن كتيب إرشادات SQL).

القيمة الافتراضية لـ DB_COLLATE في ووردبريس:

define( 'DB_COLLATE', '' );

ترتيب UTF-8 Unicode العام:

define( 'DB_COLLATE', 'utf8_general_ci' );

ترتيب UTF-8 Unicode التركي:

define( 'DB_COLLATE', 'utf8_turkish_ci' );

للأسف لا يوجد ترتيب خاص باللغة العربية، ولكن يُستخدم عادةً utf8mb4_unicode_ci مع مواقع ووردبريس العربية دون أي مشاكل في إظهار الحروف العربية.

لا يوجد عادًة أي داعي لتغيير قيمة DB_COLLATE الافتراضية، حيث يضمن إبقاء القيمة فارغة التعيين التلقائي لها من قِبل MySQL عند إنشاء جداول قاعدة البيانات.

المفاتيح الأمنية Security Keys

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

مثال (لا تستخدم البيانات التالية):

define( 'AUTH_KEY',         't`DK%X:>xy|e-Z(BXb/f(Ur`8#~UzUQG-^_Cs_GHs5U-&Wb?pgn^p8(2@}IcnCa|' );
define( 'SECURE_AUTH_KEY',  'D&ovlU#|CvJ##uNq}bel+^MFtT&.b9{UvR]g%ixsXhGlRJ7q!h}XWdEC[BOKXssj' );
define( 'LOGGED_IN_KEY',    'MGKi8Br(&{H*~&0s;{k0<S(O:+f#WM+q|npJ-+P;RDKT:~jrmgj#/-,[hOBk!ry^' );
define( 'NONCE_KEY',        'FIsAsXJKL5ZlQo)iD-pt??eUbdc{_Cn<4!d~yqz))&B D?AwK%)+)F2aNwI|siOe' );
define( 'AUTH_SALT',        '7T-!^i!0,w)L#JK@pc2{8XE[DenYI^BVf{L:jvF,hf}zBf883td6D;Vcy8,S)-&G' );
define( 'SECURE_AUTH_SALT', 'I6`V|mDZq21-J|ihb u^q0F }F_NUcy`l,=obGtq*p#Ybe4a31R,r=|n#=]@]c #' );
define( 'LOGGED_IN_SALT',   'w<$4c$Hmd%/*]`Oom>(hdXW|0M=X={we6;Mpvtg+V.o<$|#_}qG(GaVDEsn,~*4i' );
define( 'NONCE_SALT',       'a|#h{c5|P &xWs4IZ20c2&%4!c(/uG}W:mAvy<I44`jAbup]t=]V<`}.py(wTP%%' );

يحمي المفتاح الأمني موقعك تجاه الهجمات من خلال إضافة عناصر عشوائية لكلمة المرور، وبعبارة أبسط فإن المفتاح الأمني عبارة عن كلمة مرور مكونة من عناصر تجعل من الصعب توليد مفاتيح محتملة كافية لكسر أمن موقعك. من الناحية الأخرى فإن استخدام كلمات مرور، مثل: "password"، أو "test"، يُسهل جدًا اختراق موقعك لأنها كلمات سهلة التوليد ومُتوقعة؛ بينما استخدام كلمة مرور طويلة وعشوائية وخالية من كلمات ذات معنى مثل "88a7da62429ba6ad3cb3c76a09641fc"، يتطلب ملايين الساعات لكسرها باستخدام هجوم القوة الغاشمة Brute Force. تُضاف مفاتيح salt وهي بيانات عشوائية تُستخدم مثل إضافي للدوال أحادية الاتجاه لحماية كلمات المرور المخزنة في الذاكرة) لزيادة أمان كلمة المرور المُولدة أيضًا.

تزيد المفاتيح الأربعة من أمان موقعك ولكنك غير مُلزم بإضافتها، حيث يُولد ووردبريس مفاتيح salt لك في حال عدم توفرها. وتستطيع إيجادها ضمن ملف wp-config.php بالحالة العادية بعد التثبيت.

ألق نظرةً على المراجع التالية للحصول على فكرة تقنية أوسع ومزيد من المعلومات التفصيلية عن المفاتيح الأمنية وكلمات المرور الآمنة:

خيارات متقدمة

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

بادئة جداول قاعدة البيانات table_prefix

يحتوي المُتغير ‎$table_prefixعلى قيمة البادئة التي تُحشر ببداية اسم كل جدول ضمن قاعدة البيانات المُستخدمة مع ووردبريس والقيمة الافتراضية لها هي ‎wp_"‎"، وتتغير قيمة هذا المتغير طالما باستطاعتك تغيير البادئة. تُستخدم بادئات مختلفة عند تثبيت عدة مدونات ووردبريس باستخدام نفس قاعدة البيانات، كما هو الحال عند إنشاء مواقع متعددة multisite ضمن ووردبريس.

بالتالي من الممكن استخدام نفس قاعدة البيانات لعدة مواقع ووردبريس بشرط استخدام بادئة مختلفة أثناء عملية تثبيت ووردبريس لكل موقع، ولكن عليك الانتباه لموضوع الأمان عند المُضي في هذا الخيار.

$table_prefix = 'r235_'; // من فضلك يجب أن تتضمن أرقام أو محارف أو إشارة _ فقط!

رابط عنوان ووردبريس WP_SITEURL

يسمح لك WP_SITEURL بتعريف رابط عنوان ووردبريس، ويجب أن تدل القيمة المُعرفة ضمنه على موقع ملفات ووردبريس الأساسية؛ كما يجب أن يتضمن الرابط الجزئية "‎"‎ http://‎ التي تدل على البروتوكول المستخدم لتصفح مواقع الويب، لكن عليك عدم إضافة "/" لنهاية الرابط.

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

اقتباس

ملاحظة: لايُغيّر هذا من القيمة المحفوظة ضمن قاعدة البيانات.

ستُستخدم القيمة المحفوظة في قاعدة البيانات عند حذف السطر الذي يغير هذه القيمة من ملف wp-config.php، أما لتغيير قيمة siteurl ضمن قاعدة البيانات عليك، فاستخدم الثابت RELOCATE.

لنقترض أن ووردبريس مُثبت ضمن مسار يُدعى "wordpress" للنطاق example.com، عندها عليك تعريف WP_SITEURL كالتالي:

define( 'WP_SITEURL', 'http://example.com/wordpress' );

يُمكن ضبط قيمة WP_SITEURL ديناميكيًا بالاعتماد على المتغير ‎$_SERVER['HTTP_HOST']‎:

define( 'WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/path/to/wordpress' );
اقتباس

ملاحظة: يُنشَأ HTTP_HOST ديناميكيًا من خلال بي اتش بي بالاعتماد على قيمة ترويسة HTTP_HOST ضمن الطلب، وهذا قد يسمح بثغرات تضمين الملف File Inclusion Vulnerabilities. ومن الممكن أيضًا إنشاء SERVER_NAME ديناميكيًا ولكن عند إعداد خادم Apache ليستخدم UseCanonicalName، وتُضبط قيمة SERVER_NAME من خلال إعدادات الخادم وهذه الحالة أكثر أمانًا للمستخدِم من HTTP_HOST.

تُضبط قيمة WP_SITEURL اعتمادًا على ‎$_SERVER['SERVER_NAME']‎:

define( 'WP_SITEURL', 'http://' . $_SERVER['SERVER_NAME'] . '/path/to/wordpress' );

عنوان رابط المدونة URL

يسمح استخدام هذا المتغير WP_HOME بتجاهل قيمة home ضمن جدول ‎_wp_options دون تغييره ضمن قاعدة البيانات، وهذه القيمة هي العنوان الذي تريد لزوارك كتابته ضمن متصفحاتهم للوصول لمدونتك على ووردبريس. يجب أن يتضمن الرابط بروتوكول http://"‎" دون الانتهاء بـ "/" في نهاية الرابط. انتبه أن استخدام هذا المتغير يُقلل من عدد الطلبات لقاعدة البيانات عند تحميل الموقع.

define( 'WP_HOME', 'http://example.com' ); 

يجب عليك اتباع المثال التالي في حال كنت تستخدم التقنية المشروحة ضمن تعيين المسار الخاص بووردبريس، ولا تنسى إضافة index.php ضمن المسار الخاص بموقعك إن كنت تستخدم هذه الإعدادات. اضبط WP_HOME ديناميكيًا بالاعتماد على قيمة ‎‎$_SERVER['HTTP_HOST']‎‎:

define( 'WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/path/to/wordpress' );

نقل مجلد wp-content

تستطيع نقل مسار المجلد wp-content المُتضمن القوالب والإضافات والملفات المرفوعة للموقع إلى مسار خارج مسار ووردبريس.

اضبط قيمة WP_CONTENT_DIR للمسار المحلي الكامل الذي تريد النقل له بدون إضافة "/" لنهاية المسار.

define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/blog/wp-content' );

اضبط قيمة WP_CONTENT_URL بالرابط الكامل للمسار السابق دون إضافة "/" لنهاية الرابط.

define( 'WP_CONTENT_URL', 'http://example/blog/wp-content' );

نقل المجلد الخاص بالإضافات

اضبط قيمة WP_PLUGIN_DIR للمسار المحلي الكامل الذي تريد النقل له دون إضافة "/" لنهاية المسار.

define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/blog/wp-content/plugins' );

اضبط قيمة WP_PLUGIN_URL بالرابط الكامل للمسار السابق دون إضافة "/" لنهاية الرابط.

define( 'WP_PLUGIN_URL', 'http://example/blog/wp-content/plugins' );

قد تواجهك مشاكل بالتوافق مع بعض الإضافات، حاول معالجة ذلك بضبط قيمة PLUGINDIR للمسار المحلي الكامل السابق دون إضافة "/" لنهاية المسار، على سبيل المثال.

define( 'PLUGINDIR', dirname(__FILE__) . '/blog/wp-content/plugins' );

نقل مجلد القوالب

من غير الممكن نقل مجلد القوالب، لأن مساره منسوب ضمن الكود البرمجي إلى مجلد wp-content:

$theme_root = WP_CONTENT_DIR . '/themes';

بينما تستطيع تسجيل مسارات إضافية للقالب من خلال تسجيل مسار القالب.

ألقِ نظرةً على كيفية نقل مجلد wp-content. ولمزيدٍ من التفاصيل حول موقع مجلد القوالب وكيفية تصميمه، ألقِ نظرةً على ملف wp-includes/theme.php.

نقل مجلد المرفوعات

اضبط قيمة UPLOADS إلى:

define( 'UPLOADS', 'blog/wp-content/uploads' );

لا يمكن أبدًا لهذا المسار أن يكون ثابتًا مطلقًا، بل يكون منسوبًا إلى ABSPATH؛ لذلك لا يتطلب استخدام "/" في البداية.

تعديل فواصل الحفظ التلقائي الزمنية

يَستخدم ووردبريس Ajax لتنفيذ عملية الحفظ التلقائي للمقال خلال تعديلك له وحفظ نسخ عنه. ومن المُحتمل أن ترغب في زيادة هذه القيمة لتصبح الفواصل الزمنية بين عمليات الحفظ أطول، أو ربما العكس لضمان عدم خسارة أي تعديلات. بحيث القيمة الافتراضية هي 60 ثانية.

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

تنقيحات المنشور

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

تعطيل تنقيحات المنشور

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

define( 'WP_POST_REVISIONS', false );
اقتباس

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

تحديد عدد نسخ تنقيحات المنشور

لتحديد عددٍ أعظمي من التنقيحات المحفوظة تلقائيًا عن المنشور، يجب تغيير قيمة WP_POST_REVISIONS لعدد صحيح بدلًا من قيمة منطقية (على سبيل المثال، 3 أو 12).

define( 'WP_POST_REVISIONS', 3 );

 

اقتباس

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

ضبط نطاق ملفات الارتباط

يمكن تحديد النطاق ضمن ملفات ارتباط ووردبريس لمن يمتلك إعدادات نطاق غير عادية. فمثلًا إذا كانت النطاقات الفرعية مُستخدمة لتخديم محتوى ثابت، تستطيع ضبط نطاق ملف الارتباط فقط لنطاقك الذي يقدم محتوى ديناميكي لمنع إرسال ملفات ارتباط ووردبريس مع كل طلب للمحتوى الثابت ضمن النطاق الفرعي.

define( 'COOKIE_DOMAIN', 'www.example.com' );

تفعيل ميزة المواقع المتعددة/ الشبكة Multisite/ Network

يسمح ضبط قيمة WP_ALLOW_MULTISITE بتفعيل أو تعطيل ميزة المواقع المتعددة، وفي حال عدم وجود هذا الخيار ضمن ملف wp-config.php، فإن الحالة الافتراضية هي عدم تفعيل الميزة والقيمة الافتراضية للمتغير هي false.

define( 'WP_ALLOW_MULTISITE', true );

إعادة التوجيه للمدونات غير الموجودة

يُمكن استخدام NOBLOGREDIRECT لإعادة توجيه الزوار الذين يحاولون الوصول لِنطاق فرعي أو مجلد فرعي غير موجود.

define( 'NOBLOGREDIRECT', 'http://example.com' ); 

إظهار رسالة خطأ WP_DISABLE_FATAL_ERROR_HANDLER

قدّم إصدار 5.2 من ووردبريس نمط الاستعادة Recovery Mode الذي يُظهر رسالة خطأ بدلًا من شاشة بيضاء عندما تتسبب الإضافات بخطأ برمجي، إذ تُعرض رسالة تشبه الرسالة التالية:

اقتباس

The site is experiencing technical difficulties. Please check your site admin email inbox for instructions.

والتي تعني: يعاني الموقع من صعوبات تقنية. يرجى التحقق من البريد الوارد البريد الإلكتروني المسؤول الموقع للحصول على تعليمات

لن تظهر شاشة بيضاء أو رسالة خطأ ضمن كود البي اتش بي للمستخدِمين بعد الآن. ولكن ضمن بيئة التطوير فقط، فإن كنت ترغب بتفعيل WP_DEBUG_DISPLAY، فيجب عليك تعطيل نمط الاستعادة من خلال ضبط قيمة WP_DISABLE_FATAL_ERROR_HANDLER للقيمة true.

define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );   // 5.2 and later define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', true );

تنقيح الأخطاء WP_DEBUG

يتحكم خيار WP_DEBUG بعرض بعض الأخطاء والتحذيرات، وتفعيله يسمح باستخدام إعدادات WP_DEBUG_DISPLAY وWP_DEBUG_LOG. الحالة الافتراضية لهذه المتغيرات هي false.

define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );   // 5.2 and later
define( 'WP_DEBUG', true );

تظهر أخطاء قاعدة البيانات ضمن المتصفح فقط عند ضبط قيمة WP_DEBUG إلى القيمة true، ويتعامل الصنف wpdb مع أخطاء قاعدة البيانات التي لا تتأثر بإعدادات أخطاء بي اتش بي، كما ويرفع ضبط قيمة WP_DEBUG إلى true من مستوى التبليغ عن الخطأ إلى E_ALL، ويُفعل التحذيرات عند استخدام ملفات أو دوال قديمة لا يجب استخدامها؛ أما في الحالة الافتراضية، يكون مستوى التبليغ عن الخطأ مضبوطًا إلىM

 E_ALL ^ E_NOTICE ^ E_USER_NOTICE

نمط البيئة WP_ENVIRONMENT_TYPE

يتحكم خيار WP_ENVIRONMENT_TYPE بنمط البيئة لموقعك الالكتروني، سواءً محلية local، أو تطوير development، أو مرحلية staging، أو إنتاج production. وتُعالج قيم أنماط البيئة بالترتيب التالي، بحيث تُلغي كل طريقة تسلسلية القيم السابقة: متغير بيئة بي اتش بي WP_ENVIRONMENT وثابت WP_ENVIRONMENT.

ستُعاد القيمة الافتراضية production في حال كانت قيمة نمط البيئة المُوفرة من قِبل أي من الطريقتين السابقتين غير موجودة ضمن أنماط البيئة المُسموح بها.

وأبسط طريقة لضبط القيمة هي من خلال تعريف الثابت:

define( 'WP_ENVIRONMENT_TYPE', 'staging' );
اقتباس

ملاحظة: عند إعادة development من قبل الدالة wp_get_environment_type()‎، فستُضبَط قيمة WP_DEBUG إلى true في حال كانت غير معرّفة ضمن ملف wp-config.php للموقع.

تنقيح السكربت SCRIPT_DEBUG

يجبر الثابت SCRIPT_DEBUG ووردبريس على استخدام إصدارات "dev" للسكربت، وأوراق الأنماط stylesheet من ملفات الجافاسكربت، وCSS الموجودة ضمن: wp-includes/js، وwp-include/css، وwp-admin/js، وwp-admin/css لتُحمَّل بدلًا من النسخ min.js وmin.css.

لذلك يجب عليك إضافة الكود التالي إن كنت تريد التعديل على كود جافاسكربت أو CSS موجود ضمن ملفات ووردبريس:

define( 'SCRIPT_DEBUG', true );

تعطيل ضم ملفات الجافاسكربت

تُضم ملفات الجافاسكربت برابط واحد لتحقيق تحميلٍ أسرع للوحة تحكم المدير. في حال وجود أخطاء أو فشل في عمل ملفات الجافاسكربت ضمن لوحة تحكم المدير، يمكنك تعطيل هذه الميزة إن كانت تحل المشكلة:

define( 'CONCATENATE_SCRIPTS', false );

إعداد تسجيل الخطأ

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

عينة عن الإعدادات التي يُوصى بها لملف php.ini:

error_reporting = 4339
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /home/example.com/logs/php_error.log
log_errors_max_len = 1024
ignore_repeated_errors = On
ignore_repeated_source = Off
html_errors = Off

إن error_reporting 4339 هي قيمة مخصصة تسمح بتسجيل المشاكل التي تؤثر على عمل موقعك الإلكتروني وتتجاهل أشياء أخرى مثل الملاحظات التي قد لا تكون أخطاء. ألقِ نظرةً على ثوابت أخطاء بي اتش بي لتفهم معنى موقع كل بت من "1000011110011" وهو العدد الثنائي الموافق للعدد العشري 4339. حيث يعني البت الأول من جهة اليسار والذي أخذ قيمة 1، وجوب عرض تقرير عن أي E_RECOVERABLE_ERROR؛ أما البت التالي وهو بقيمة 0، فيعني عدم الإبلاغ عن E_STRICT (يُرفع هذا الخطأ عندما يُستخدم ترميز غير متقن ولكنه فعّال). تستطيع استخدام الرقم الذي تريد بدلًا من 4339.

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

@ini_set( 'log_errors', 'Off' );
@ini_set( 'display_errors', 'On' );
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );   // 5.2 and later
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', false );
define( 'WP_DEBUG_DISPLAY', true );

ملف wp-config.php هو مكان مثالي لتعيين إعدادات ملف php.ini المتحكّمة بتثبيت بي اتش بي الخاص بك، نظرًا لتحميل هذا الملف في كل مرة تزور الصفحة فيها ولا يُحمَّل أبدًا من ذاكرة التخزين المؤقتة cache. هذا الإعداد مفيد جدًا إن كنت لا تمتلك صلاحية الوصول لملف php.ini أو في حال أردت تغيير بعض الإعدادات سريعًا.

يوجد استثناء وحيد مرتبط بإعداد error_reporting، حيث يأخذ القيمة E_ALL من قِبل ووردبريس في حال عُيّنت قيمة WP_DEBUG إلى true بغض النظر عن الإعدادات التي تحاول تغييرها ضمن ملف wp-config.php. عند اضطرارك لضبط قيمة error_reporting لشيء آخر، يجب ضبط ذلك بعد تحميل ملف wp-settings.php، مثلًا في ملف إضافة.

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

يُفعّل المثال التالي سجل أخطاء بي اتش بي ويُسجلهم ضمن ملف محدد وفي حال كان قيمة WP_DEBUG هي true سيحفظ الأخطاء ضمن هذا الملف. عليك تضمين هذا الكود قبل أوامر require_once أو includes.

@ini_set( 'log_errors', 'On' );
@ini_set( 'display_errors', 'Off' );
@ini_set( 'error_log', '/home/example.com/logs/php_error.log' );
/* That's all, stop editing! Happy blogging. */

نعرض مثالًا آخر لتسجيل الأخطاء، مقترح من قبل مايك ليتل Mike Little ضمن قائمة البريد الالكتروني لـِ wp-hackers:

/**
* This will log all errors notices and warnings to a file called debug.log in
* wp-content (if Apache does not have write permission, you may need to create
* the file first and set the appropriate permissions (i.e. use 666) )
*/
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

توجد نسخة أخرى مُحسنة من مايكل ليتل ضمن مجموعة مانشستر لمستخدم ووردبريس:

/**
* This will log all errors notices and warnings to a file called debug.log in
* wp-content only when WP_DEBUG is true. if Apache does not have write permission,
* you may need to create the file first and set the appropriate permissions (i.e. use 666).
*/
define( 'WP_DEBUG', true ); // Or false
if ( WP_DEBUG ) {
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', false );
    @ini_set( 'display_errors', 0 );
}

يمتلك ووردبريس ثلاثة ثوابت يبدو أن لها نفس الوظيفة ظاهريًا وهذا يُسبب إشكالية. تذكر أولًا أن WP_DEBUG لا يفعل أي شيء مع ثابتي التنقيح الآخرين عند احتوائه على قيمة false. طبعًا أيًا كانت إعدادات بي اتش بي، فستكون هي السائدة إلا error_reporting حيث يعطيها ووردبريس القيمة 4983 في حال كان WP_DEBUG مُعرف بقيمة false. ثانيًا، حتى عند امتلاك WP_DEBUG على قيمة true، لا يعمل الثابتين الآخرين أي شيء إلا عند إسناد قيمة true لهما؛ أما في حال ضُبطا على قيمة false، فلن تتغير إعدادات بي اتش بي.

على سبيل المثال، إذا احتوى ملف php.ini على التوجيه 'display_errors'='On' ولكن لديك ضمن ملف wp-config.php التعريف التالي:

define( WP_DEBUG_DISPLAY’, false )

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

تستطيع استخدام الكود البرمجي التالي لمنصة ووردبريس لديك في مرحلة التثبيت ضمن ملف wp-config.php بالرغم أن جزء منه يبدو زائدًا عن الحاجة:

@ini_set( 'log_errors', 'On' );
@ini_set( 'display_errors', 'Off' );
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', false );   // 5.2 and later
define( 'WP_DEBUG', false );
define( 'WP_DEBUG_LOG', false );
define( 'WP_DEBUG_DISPLAY', false );

الملف الافتراضي لسجل التنقيحات هو ‎/wp-content/debug.log"‎". إن وضع سجلات الأخطاء في مسار يُمكن الوصول له، هو خطأٌ أمني، لذلك من الأفضل أن تُوضع سجلاتك في مسار أعلى من جذر الموقع، ولكن إن كنت لا تستطيع فعل ذلك، غيّر صلاحيات ملف السجل إلى 600 مع إضافة ما يلي إلى ملف "htaccess." الموجود في مسار تثبيت ووردبريس الرئيسي:

<Files debug.log>
    Order allow,deny
    Deny from all
</Files>

يمنع هذا أي شخص من دخول الملف من خلال بروتوكول HTTP، أما بالنسبة لك فتستطيع الاطلاع على ملف السجل من خلال تنزيله باستخدام اتصال FTP مع خادمك.

زيادة الذاكرة المخصصة من أجل بي اتش بي

يسمح لك WP_MEMORY_LIMIT بتحديد قيمة الذاكرة التي يستطيع بي اتش بي استهلاكها، وهي ضرورية جدًا في حال كنت تتلقى رسالة مثل "Allowed memory size of xxxxxx bytes exhausted".

يستطيع هذا الثابت رفع ذاكرة بي اتش بي من أجل ووردبريس فقط، ويحاول ووردبريس افتراضيًا رفع الذاكرة المحجوزة من أجل بي اتش بي إلى 40 ميجا بايت (انظر الكود في بداية ملف ‎/wp-includes/default-constants.php"‎") للموقع الواحد، و64 ميجا بايت للمواقع المتعددة. لذلك يجب استخدام قيمة أعلى من 40 أو 64 ميجا بايت عند استخدام هذا الثابت ضمن ملف wp-config.php.

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

اقتباس

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

لرفع ذاكرة بي اتش بي إلى 64 ميجا بايت:

define( 'WP_MEMORY_LIMIT', '64M' );

لرفع ذاكرة بي اتش بي إلى 96 ميجا بايت:

define( 'WP_MEMORY_LIMIT', '96M' );

وتتطلب المهام الإدارية كمية ذاكرة أكبر من المهام العادية. يمكن زيادة الذاكرة أو إنقاصها عند استخدام لوحة تحكم المدير باستخدام WP_MEMORY_LIMIT عبر تعريف WP_MAX_MEMORY_LIMIT.

define( 'WP_MAX_MEMORY_LIMIT', '256M' );
اقتباس

ملاحظة: يجب وضع العبارة السابقة قبل تضمين ملف wp-settings.php.

ملفات التخزين المؤقت Cache

يُستخدم سكربت wp-content/advanced-cache.php عند إعطاء قيمة true لِـ WP_CACHE عند تنفيذ الملف wp-settings.php.

define( 'WP_CACHE', true );

جدولي المستخدم العادي والمستخدم المخصص

تُشير CUSTOM_USER_TABLE وCUSTOM_USER_META_TABLE إلى عدم استخدام جداول المستخدم المخصص وجداول usermeta العادية من قِبل ووردبريس، إنّما تُستخدم هذه القيم أو الجداول لتخزين معلومات المستخدم.

define( 'CUSTOM_USER_TABLE', $table_prefix.'my_users' );
define( 'CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta' );
اقتباس

ملاحظة: يُنشَأ جدول usermata لكل قاعدة بيانات مع الصلاحيات المرتبطة بكلٍ منها حتى عند ضبط CUSTOM_USER_META_TABLE يدويًا. حيث يُضيف مُثبِّت ووردبريس افتراضيًا الصلاحيات لأول مستخدم (ID #1)، وعليك إدارة الصلاحيات لكل واحد ضمن الموقع من خلال إضافة plugin أو دالة مخصصة، وفي حال عدم إعداد هذا، فستواجه أخطاءً في الصلاحيات ومشاكل في تسجيل الدخول.

من السهل اعتماد CUSTOM_USER_TABLE عند إعداد أول نسخة من موقع ووردبريس، حيث تشير العبارات المُعرفة في ملف wp-config.php للنسخة الأولى إلى مكان تخزين بيانات wp-users افتراضيًا، وبعد الانتهاء من إعداد أول نسخة ووردبريس ستحتاج لنسخ ملف wp-config.php للنسخة الثانية مع تعديل في المتغير ‎$table_prefix"‎"، وانتبه لعدم استخدام عنوان بريدٍ إلكتروني موجود سلفًا في النسخة الأولى. حالما تنتهي من عملية التثبيت تستطيع تسجيل الدخول باستخدام حساب المدير المُولّد تلقائيًا وكلمة المرور، وعليك ترقية حسابك العادي بعد ذلك إلى مدير، ثم تسجيل خروج من حساب المدير وإعادة تسجيل الدخول بحسابك وحذف حساب المدير، وعندئذٍ تستطيع ترقية بقية الحسابات كما تريد.

اللغة ومسار اللغة

تسمح نسخة ووردبريس 4.0 بتغيير اللغة ضمن لوحة تحكم ووردبريس، من خلال التوجّه إلى الإعدادات ثم عام، واختر لغة الموقع.

نسخة ووردبريس 3.9.6 وما قبل

يُعرِّف WPLANG اسم لغة ملف الترجمة ‎.mo"‎"، بينما يُعرف WP_LANG_DIR مسار تواجد ملف ‎.mo"‎". يبحث ووردبريس أولًا في المسار wp-content/languages في حال لم يكن WP_LANG_DIR مُعرفًا، ثم يبحث في includes/languages عن ملف ‎.mo"‎" المُعرف من قِبل ملف WPLANG.

define( 'WPLANG', 'de_DE' );
define( 'WP_LANG_DIR', dirname(__FILE__) . 'wordpress/languages' );

لمعرفة كود اللغة WPLANG، انظر إلى الكود الموجود ضمن عمود WP local فهو ما تحتاجه.

حفظ الاستعلامات لتحليلها

يُمكّنك SAVEQUERIES من حفظ استعلامات قاعدة البيانات ضمن مصفوفة يمكن عرضها لمساعدتك في تحليل هذه الاستعلامات. حيث يُحفظ كل استعلام والوقت الذي احتاجه للتنفيذ والدالة التي استدعاها.

اقتباس

ملاحظة: سيؤثر هذا على أداء موقعك لذا لابد من تعطيل هذه الميزة بعد الانتهاء من البحث عن المشاكل.

أولًا، عليك إضافة السطر التالي لِملف wp-config.php:

define( 'SAVEQUERIES', true );

ثم أضف التالي للتذييل ضمن القالب الخاص بموقعك:

<?php
if ( current_user_can( 'administrator' ) ) {
    global $wpdb;
    echo "<pre>";
    print_r( $wpdb->queries );
    echo "</pre>";
}
?>

تجاوز صلاحيات الملف الافتراضية

يسمح FS_CHMOD_DIR وFS_CHNOD_FILE بتجاوز صلاحيات الملف الافتراضية، حيث طُوّر هذين المتغيرين استجابةً لمشكلة فشل وظيفة تحديث ووردبريس مع استضافات تعمل ضمن suexec. ويمكن لهذين المتغيرين حل مشكلة الصلاحيات المقيّدة (مثال 400) في حال استخدامها من قِبل مضيف أو عند عدم السماح لمضيف بالوصول للملفات التي تمتلك صلاحيات مجموعة أو صلاحيات عامة.

define( 'FS_CHMOD_DIR', ( 0755 & ~ umask() ) );
define( 'FS_CHMOD_FILE', ( 0644 & ~ umask() ) );

مثال لتأمين setgid:

define( 'FS_CHMOD_DIR', ( 02755 & ~umask() ) );
اقتباس

ملاحظة: القيم ‘0755’ و’02755’ هي قيم بترميز ثماني، فيجب أن تبدأ بصفر ولا تُحاط بإشارة اقتباس مفردة. ألقِ نظرةً على تغيير صلاحيات الملف.

ثوابت ترقية ووردبريس

اقتباس

ملاحظة: استخدم أقل عدد ممكن من الثوابت التالية لإصلاح مشاكل التحديث.

إن أكثر المشاكل التي تتطلب منك تعريف بعض من هذه الثوابت هي:

  • تشغيل المضيف مع إعداد تثبيت خاص يتضمن ارتباطات رمزية symlinks، عندها ستضطر لتعريف ثوابت مرتبطة بالمسارات FTP_BASE وFTP_CONTENT_DIR وFTP_PLUGIN_DIR، ويكفي عادةً تعريف FTP_BASE.

  • تتضمن بعض عمليات تثبيت بي اتش بي وجود إضافة PHP FTP غير المتوافقة مع بعض خوادم FTP وفي ظل هذه الظروف النادرة قد تُضطر لتعريف FS_METHOD وإسناد قيمة ftpsockets له.

    الثوابت التالية هي ثوابت فعلية لتحديثات ووردبريس:

  • تفرض FS_METHOD طريقة ملفات النظام، حيث يجب أن تكون إما direct، أو ssh2، أو ftpext، أو ftpsockets. ويجب عليك تغيير قيمة هذا الثابت فقط عند مواجهتك لمشاكل أثناء التحديث، وفي حال استمرار المشكلة، فعليك إعادته لقيمته السابقة أو إزالته، وستُحل المشكلة غالبًا عند استخدام ftpsockets في حال فشلت الطريقة المختارة تلقائيًا.

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

  • * الخيار الثاني ssh2 لإجبار النظام على استخدام إضافة SSH PHP إن كانت مُثبتة.

  • * الخيار الثالث ftpext لإجبار النظام على استخدام إضافة FTP PHP للدخول باستخدام بروتوكول FTP.

  • * الخيار الرابع ftpsockets والذي يَستخدم صف مقابس بي اتش بي للدخول باستخدام بروتوكول FTP.

  • FTP_BASE: وهو المسار الكامل لمجلد تثبيت ووردبريس الرئيسي.

  • FTP_CONTENT_DIR: وهو المسار الكامل للمجلد wp-content لتثبيت ووردبريس.

  • FTP_PLUGIN_DIR: وهو المسار الكامل لمجلد الإضافات plugins لتثبيت ووردبريس.

  • FTP_PUBKEY: وهو المسار الكامل للمفتاح العام SSH الخاص بك.

  • FTP_PRIKEY: وهو المسار الكامل للمفتاح الخاص SSH الخاص بك.

  • FTP_USER: إما اسم مستخدم FTP أو اسم مستخدم SSH ولا فرق في استخدام أيٍ منهما غالبًا، لذا استخدم الأنسب لنوع التحديث الذي ترغب بالقيام به.

  • FTP_PASS: كلمة المرور لاسم المستخدم الموجود في FTP_USER. إن كنت تستخدم مفتاح SSH عام يُمكن حذف هذا الثابت.

  • FTP_HOST: وهو دمج اسم المُتضيف مع رقم المنفذ hostname:port لِخادم SSH/FTP. حيث أن المنفذ الافتراضي من أجل FTP هو 21، أما الافتراضي من أجل SSH هو 22.

  • FTP_SSL: يكون true للاتصالات ذات شهادة SSL في حال كانت مدعومة (غير متوفرة في كل الخوادم). وهو من أجل Secure FTP وليس SSH SFTP.

define( 'FS_METHOD', 'ftpext' );
define( 'FTP_BASE', '/path/to/wordpress/' );
define( 'FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/' );
define( 'FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/' );
define( 'FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub' );
define( 'FTP_PRIKEY', '/home/username/.ssh/id_rsa' );
define( 'FTP_USER', 'username' );
define( 'FTP_PASS', 'password' );
define( 'FTP_HOST', 'ftp.example.org' );
define( 'FTP_SSL', false );

يجب ضبط FTP_HOST في بعض التشكيلات بقيمة localhost لتجنب أخطاء 503 عند محاولة تحديث الإضافات أو ووردبريس نفسه.

تفعيل الدخول والترقية من خلال SSH

توجد طريقتان للترقية باستخدام SSH2، هما:

  • الطريقة الأولى: باستخدام إضافة دعم لمُحدِّث SSH SFTP.
  • الطريقة الثانية: من خلال استخدام مطوّر SSH2 مبني داخليًا والذي يتطلب تثبيت إضافة pecl SSh2.

ستحتاج لاستخدام أمر مشابه للأمر التالي لتثبيت إضافة pecl SSH2، أو يمكنك تثبيتها من خلال التواصل مع فريق دعم الاستضافة ليهتموا بذلك بدلًا عنك:

pecl install ssh2

ستحتاج لتعديل إعدادات بي اتش بي الخاصة بعد تثبيت pecl ssh2 لتحميل هذه الإضافة تلقائيًا.

تُوفَّر pecl ضمن حزمة pear في معظم توزيعات لينكس، ومن أجل تثبيت pecl ضمن ريدهات Redhat/فيدورا Fedora/ سينتوس CentOS:

yum -y install php-pear

لتثبيت pecl ضمن نظام ديبيان Debian/ اوبنتو Ubuntu:

apt-get install php-pear

يُفضّل استخدام مفتاح خاص غير محمي بكلمة مرور، فهناك عدة تقارير تشير بأن المفاتيح الخاصة المحمية بكلمة مرور لا تعمل جيدًا، ولكن إن قررت اعتماد مفتاح خاص محمي بكلمة مرور، فسيتوجب عليك إدخال كلمة المرور للمفتاح الخاص مثل FTP_PASS، أو إدخالها ضمن حقل كلمة المرور في الحقل الظاهر عند تثبيت التحديثات.

استخدام Cron بديل

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

تتضمن هذه الطريقة بعض المخاطر لأنها تعتمد على خدمة غير أساسية ضمن ووردبريس.

define( 'ALTERNATE_WP_CRON', true );

تعطيل Cron وزمن انتهائه

تستطيع تعطيل عمليات Cron نهائيًا من خلال إسناد قيمة true للثابت DISABLE_WP<_CRON.

define( 'DISABLE_WP_CRON', true );

للتأكد من عدم تشغيل عمليات cron إلا مرةً كل WP_CRON_LOCK_TIMEOUT ثانية.

define( 'WP_CRON_LOCK_TIMEOUT', 60 );

ثوابت إضافية معرفة

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

define( 'COOKIEPATH', preg_replace( '|https?://[^/]+|i', '', get_option( 'home' ) . '/' ) );
define( 'SITECOOKIEPATH', preg_replace( '|https?://[^/]+|i', '', get_option( 'siteurl' ) . '/' ) );
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );
define( 'PLUGINS_COOKIE_PATH', preg_replace( '|https?://[^/]+|i', '', WP_PLUGIN_URL ) );
define( 'TEMPLATEPATH', get_template_directory() );
define( 'STYLESHEETPATH', get_stylesheet_directory() );

تفريغ سلة المهملات

يتحكم هذا الثابت بعدد الأيام التي يحافظ فيها ووردبريس على المنشورات والصفحات والمرفقات والتعليقات المحذوفة ضمن سلة المهملات قبل حذفها نهائيًا. عدد الأيام الافتراضي هو 30 يوم:

define( 'EMPTY_TRASH_DAYS', 30 ); // 30 days

يجب ضبط عدد الأيام إلى الصفر من أجل تعطيل سلة المهملات.

define( 'EMPTY_TRASH_DAYS', 0 ); // Zero days
اقتباس

ملاحظة: لا يسأل ووردبريس عن تأكيد عملية الحذف النهائي عند استخدام هذه الإعدادات.

التحسين التلقائي لقاعدة البيانات

هناك دعم لعملية إصلاح تلقائي لقاعدة البيانات، والتي تستطيع تفعيلها من خلال إضافة التعريف التالي ضمن ملف Wp-config.php.

اقتباس

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

define( 'WP_ALLOW_REPAIR', true );

يمكنك ايجاد السكربت ضمن

{$your_site}/wp-admin/maint/repair.php

عدم ترقية الجداول العامة DO_NOT_UPGRADE_GLOBAL_TABLES

يمنع تعريف DO_NOT_UPGRADES_GLOBAL_TABLES دوال الترقية و"‎"dbDelta()‎ من إجراء استعلامات ضخمة للجداول المعّرفة على أنها عامة global.

يمكن للمواقع التي تمتلك جداول عامة (بالأخص جداول users وusermeta)، والمواقع التي تشارك جداول المستخدم مع bbpress، ومواقع ووردبريس أخرى، عدم السماح بتغيير هذه الجداول أثناء الترقية من خلال إسناد قيمة true للثابت DO_NOT_UPGRADES_GLOBAL_TABLES. وتستغرق تعليمات ALTER، وDELETE، وUPDATE وقتًا طويلًا، لذلك تتفادى المواقع الضخمة هذه التعليمات مثل جزء من عملية الترقية وتُعالج لوحدها.

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

  define( 'DO_NOT_UPGRADE_GLOBAL_TABLES', true );

عرض كل الثوابت المعرفة

تمتلك لغة بي اتش بي دالةَ تُعيد مصفوفةً لكل الثوابت المُعرّفة حاليا مع قيمها.

print_r( @get_defined_constants() );

تعطيل محرر القالب والإضافة

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

define( 'DISALLOW_FILE_EDIT', true );
اقتباس

ملاحظة: من الممكن أن تتأثر وظيفة بعض الإضافات باستخدام"‎"current_user_can('edit_plugins')‎ ضمن أكوادها. يجب على مطوّر الإضافة تجنُّب التحقق من هذه الصلاحية أو على الأقل التحقق من كون هذا الثابت مضبوطًا وعرض رسالة خطأ مناسبة.

انتبه في حال لم تعمل الإضافة فقد يكون هذا هو السبب.

تعطيل تحديث وتثبيت الإضافات والقوالب

يمنع هذا التعطيل المستخدِم من الاستفادة من وظائف تحديث وتثبيت الإضافة والقالب ضمن لوحة تحكم ووردبريس، كما أن ضبط هذا الثابت يُعطل محرر الإضافة ومحرر القالب (ليس عليك تفعيل DISALLOW_FILE_MODES وDISALLOW_FILE_EDIT، حيث تُقدم DISALLOW_FILE_MODES نفس التأثير).

define( 'DISALLOW_FILE_MODS', true );

طلب SSL للوحة تحكم المدير وتسجيل الدخول

اقتباس

ملاحظة: توقف ووردبريس 4.0 عن استخدام FORCE_SSL_LOGIN لذلك من فضلك استخدم FORCE_SSL_ADMIN.

يُستخدم FORCE_SSL_ADMIN لتأمين صفحة تسجيل الدخول ولوحة التحكم، بحيث تُرسل كلمات المرور وملفات الارتباط بصورة آمنة. ألقِ نظرةً على الإدارة من خلال SSL لمزيدٍ من التفاصيل.

define( 'FORCE_SSL_ADMIN', true );

حجب طلبات URL خارجية

تستطيع حجب طلبات URL خارجية من خلال إسناد قيمة true إلى WP_HTTP_BLOCK_EXTERNAL، وعندها يُسمح فقط لمدونتك وlocalhost بإجراء طلبات؛ في حين يسمح الثابت WP_ACCESSABLE_HOSTS لمضيفين آخرين بإجراء طلبات.

تُعتمد قائمة بأسماء الاستضافات المسموح لها، بحيث يكون مفصولًا بينها بفاصلة تمامًا مثل صيغة مُستخدمة مع الثابت WP_ACCESSABLE_HOSTS.

يمكن استخدام wildcard للنطاقات مثل ‎*.wordpress.org"‎" حيث يسمح هذا لجميع النطاقات الفرعية بإجراء طلبات.

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

تعطيل تحديثات ووردبريس التلقائية

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

define( 'AUTOMATIC_UPDATER_DISABLED', true );

تعطيل تحديثات ووردبريس

أسهل طريقة للتلاعب بتحديثات ووردبريس هي باستخدام الثابت WP_AUTO_UPDATE_CORE:

# 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' );

المرجع: تعطيل التحديثات التلقائية في ووردبريس 3.7

التخلص من تعديلات الصورة

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

define( 'IMAGE_EDIT_OVERWRITE', true );

تحقق بدقة قبل حفظ أي تغيير

تحقق دائمًا من وجود فراغات تسبق أو تلي القيم السابقة التي تُدخلها ولا تحذف إشارة الاقتباس المُفردة.

اقرأ الملف الذي عدلت عليه مرتين قبل حفظه، وتحقق من عدم حذف إشارة تعليق مُفردة محيطة بقيمة المتغير عن طريق الخطأ.

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

تستطيع حفظ الملف من خلال اختيار ملف ثم حفظ باسم، ثم كتابة الاسم wp-config.php واختيار المسار الرئيسي لتثبيت ووردبريس موقعًا لحفظ الملف، بعدها ارفع الملف لخادمك لتصبح جاهزًا لتثبيت ووردبريس.

ترجمة -وبتصرف- للمقال Editing wp-config.php من موقع wordpress.org.

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...