כפי שאתם יודעים, הקובץ wp-config.php
משמש אותנו בכדי להגדיר את שם מסד הנתונים של וורדפרס, את שם המשתמש, הסיסמה והמיקום שלו (כמו גם את קידומת הטבלאות, מפתחות אבטחה והשפה).
אך משתמשים רבים אינם יודעים כי ניתן להשתמש בקובץ wp-config.php
על מנת לקבוע מגוון רחב של הגדרות המאפשרות לכם לשפר את הפונקציונליות, את הביצועים ואת אבטחת אתר הוורדפרס שלכם.
במדריך זה אחלוק לא מעט טריקים של קונפיגורציה שנתקלתי בהם במהלך השנים. המדריך יכסה אפשרויות המפורטות ב WordPress Codex כמו גם אפשרויות שיכול להיות ואינכם מכירים….
הנה תמונה של קובץ wp-config.php
טיפוסי הנקרא במילים אחרות WordPress Configuration File:
בואו נראה מספר הגדרות או ״אופטימיזציות״ שניתן לבצע דרך קובץ זה:
1. הגדרות מסד נתונים
ארבעת הגדרות אלו נחוצות על מנת שוורדפרס תוכל להתחבר למסד הנתונים:
define('DB_NAME', 'database-name');
define('DB_USER', 'database-username');
define('DB_PASSWORD', 'database-password');
define('DB_HOST', 'localhost');
שם מסד הנתונים, שם המשתמש והסיסמא הן ההגדרות אשר קבעתם היצירה של מסד הנתונים, אך ההגדרה DB_HOST
קצת יותר קשה לפיצוח. ברוב המקרים הערך שלה צריך להיות localhost
אך ישנן חברות אחסון הדורשות ערך אחר.
ניתן אף לקבוע פורט אחר לשרת של מסד הנתונים, הנה שתי דוגמאות:
define('DB_HOST', 'localhost:1234');
define('DB_HOST', 'mysql.domain.tld:1234');
עוד טריק נחמד הוא לזהות את שרת מסד הנתונים בצורה אוטומטית:
define('DB_HOST', $_ENV{DATABASE_SERVER});
אם עדיין אתם מתקשים למצוא את הערך הנכון במקרה זה דברו עם חברת האחסון שלכם ובקשו את המידע.
2. מסד הנתונים – Collation & Character Set
מגירסת וורדפרס 2.2, יש באפשרותכם לקבוע את ה Character Set
של טבלאות ה MySQL
. בגדול אין צורך לגעת בהגדרה זה מכיוון וברירת המחדל היא UTF-8
וזו הגדרה אשר תומכת בכל השפות. הנה ההגדרה המומלצת (הגדרת ברירת המחדל):
define('DB_CHARSET', 'utf8');
וורדפרס בגירסה 2.2 ומעלה מאפשרת לכם גם לקבוע את ה Collation, הגדרה זו אחראית על הסדר (sort order) של ה character set במסד הנתונים. הגדרה זו בדרך כלל מתבצעת אוטומטית על ידי MySQL
בהתאם ל character set
ומתאפשרת על ידי השארת ערך ריק בהגדרה זו. הנה ערך ברירת המחדל המומלץ:
define('DB_COLLATE', '');
הערה: השתמשו/שנו בשתי הגדרות אלו אך ורק במידה והם כבר קיימות בקובץ wp-config.php.
3. מפתחות אבטחה
מגירסת וורדפרס 2.7, ישנן ארבעה מפתחות אבטחה שנועדו להצפנה טובה יותר של עוגיות (cookies). מפתחות אלו עובדות בשקט מאחורי הקלעים ואמורות להיות כמה שיותר רנדומליות ומסובכות. הדרך הפשוטה ביותר ליצור מפתחות אלו בצורה אוטומטית היא על ידי השירות WordPress.org secret-key service.
פשוט בקרו בקישור, והעתיקו את התוצאה לקובץ wp-config.php
בהתקנת הוורדפרס שלכם. ניתן לשנות מפתחות אלו בכל עת, שינוי מפתחות אלו יגרום ל cookies של כל המשתמשים שמחוברים לאתר שלכם להיות לא רלוונטים כך שהם יאלצו להתחבר מחדש ללוח הבקרה של וורדפרס.
define('AUTH_KEY', '_;*Yfw@]Qr#[|YDl-v$pXkPZ^;Ac&YC:|s]-pw`qJYDM<[Z7!%V66bWLu_Qr]MKF');
define('SECURE_AUTH_KEY', 'FF@{y)vPLNmMiIWW~7+fN7Zf7e9Jw37HyGRf9=$`0kg%cKrG33kkJ5 jpE6Ox)8*');
define('LOGGED_IN_KEY', 'q!0/8%dcC6Ey<t)[*r+/W/3R2L&V:=BM<zuAC!#bt&![hIu0@TgF+nqGp)aBLl-2');
define('NONCE_KEY', 'kIHaSGF92lbRElp/UZ4<)@?xoIDaxlve|]oY+53UG.v=g/[.3wz,/|yP-yhc2-aD');
4. קידומת הטבלאות במסד הנתונים
קידומת הטבלאות שימושית במיוחד בכדי לחזק את אבטחת אתר הוורדפרס שלכם או להחזיק מספר התקנות וורדפרס על מסד נתונים אחד.
באמצעות שינוי של ערך ברירת המחדל wp_
למשהו יותר ייחודי, תוכלו להקשות על ניסיונות פריצה למסד הנתונים באתר שלכם ולחזק את אבטחת האתר. הנה הגדרת ברירת המחדל:
table_prefix = 'wp_';
ישנם הרבה האקרים המנסים לפרוץ לאתר שלכם כשאר הנתון הזה כבר בידיהם (מכיוון והוא ברירת המחדל), שינוי הקידומת למשהו כמו sVVV_
הוא דרך טובה על מנת למנוע התקפות מטורגטות אלו.
ניתן אף להשתמש בהגדרה זו בכדי לבצע מספר התקנות וורדפרס על מסד נתונים אחד. פשוט הגדירו את קידומת הטבלה הייחודית בכל אחת מההתקנות:
$table_prefix = 'wp1_'; // first blog
$table_prefix = 'wp2_'; // second blog
$table_prefix = 'wp3_'; // third blog
5. הגדרות שפה
וורדפרס מאפשרת לכם להגדיר את קובץ התרגום של השפה בה אתם משתמשים באתר הוורדפרס שלכם ואת מיקומו. קובץ התרגום הוא קובץ .mo
ומיקום ברירת המחדל שלו (אם לא ציינתם אחרת) הוא ב wp-content/languages
כמקור הראשון ו wp-includes/languages
כמקור שני. הנה הגדרות ברירת המחדל:
define('WPLANG', '');
define('LANGDIR', '');
6. הגדרות הספרייה
זו אינה הגדרה שאתם צריכים לגעת בה. קוד זה מגיע עם הקובץ wp-config.php
ומכיל מספר שורות המגדירות את הנתיב האבסולוטי (absolute path) ואת קובץ ההגדרות wp-settings.php
.
/** WordPress absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');
7. כתובת הבלוג וכתובת האתר
זהו החלק היותר מעניין… 🙂 שתי ההגדרות הבאות אינן מופיעות ב wp-config.php
כברירת מחדל, אך יש להוסיף אותן על מנת לשפר את הביצועים של אתר הוורדפרס שלכם – בצורה מזערית יש לציין. הגדרות אלו נוספו בוורדפרס 2.2 ודורסות את ההגדרות הנמצאות במסד הנתונים (בלי לשנות אותם בפועל).
הוספה של הגדרות אלו לקובץ wp-config.php
תקטין את מספר הקריאות למסד הנתונים. על הגדרות אלו להיות זהות להגדרה בלוח הבקרה של וורדפרס. הנה דוגמא (שימו לב כי אין להוסיף "/" בסוף הכתובות):
define('WP_HOME', 'https://savvy.co.il');
define('WP_SITEURL', 'https://savvy.co.il');
טריק נחמד הוא לקבוע הגדרות אלו אוטמוטית על שימוש במשתנה server
הגלובלי:
define('WP_HOME', 'http://'.$_SERVER['HTTP_HOST'].'/path/to/wordpress');
define('WP_SITEURL', 'http://'.$_SERVER['HTTP_HOST'].'/path/to/wordpress');
8. נתיב ה template ונתיב ה stylesheet
בדיוק מאותה סיבה בחלק הקודם, ניתן לשפר את הביצועים של אתר הוורדפרס שלכם על ידי ביטול הקריאה למסד הנתונים בכדי לקבל את ה template path
ואת ה stylesheet path
באתר שלכם. הנה הגדרות ברירת המחדל של וורדפרס:
define('TEMPLATEPATH', get_template_directory());
define('STYLESHEETPATH', get_stylesheet_directory());
כמו שהן, הו עדיין מבצעות קריאה למסד הנתונים, אך ניתן לוותר על קריאות מיותרות אלו באמצעות כתיבת הנתיבים בקוד:
define('TEMPLATEPATH', '/absolute/path/to/wp-content/themes/active-theme');
define('STYLESHEETPATH', '/absolute/path/to/wp-content/themes/active-theme');
9. הגדרת דומיין לעוגיות (Cookies)
הגדרה זו מיועדת לאלו עם הגדרת דומיין לא סטנדרטית. לדוגמא, אם אתם משתמשים בסאבדומיין על מנת להגיש תכנים סטטים (כגון תמונות, קבצי CSS וקבצי Javascript) תוכלו להגדיר כי Cookies יישלחו רק בדומיין הראשי כך שבסאבדומיין בעל התכנים הסטטים לא יישלחו Cookies אלו בכל בקשה לשרת.
יש לכך השפעה לא מבוטלת על הביצועים של אתר הוורדפרס שלכם.
define( 'COOKIE_DOMAIN', 'www.example.com' );
10 .דריסת הרשאות של קבצים ותיקיות
אם הגדרת ההרשאות של חברת האחסון שלכם מחמירה מדי, הוספת שורות אלו לקונפיגורציה של וורדפרס יכולה לעזור. שימו לב שאין צורך במרכאות סביב הערך של ההרשאה:
define('FS_CHMOD_FILE', 0755);
define('FS_CHMOD_DIR', 0755);
11. טבלאות user & usermeta מותאמות
מה לגבי שינוי הטבלאות האחראיות על המשתמשים במסד הנתונים? ניתן לשנות אלו על ידי שימוש בקוד הבא:
define('CUSTOM_USER_TABLE', $table_prefix.'my_users');
define('CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta');
12. שינוי המיקום של התיקייה wp-content
מגירסת וורדפרס 2.6 ומעלה, ניתן לשנות את מיקום ברירת המחדל של התיקייה wp-content
. ישנן מספר סיבות לעשות כגון אבטחת אתר הוורדפרס שלכם, ועדכוני FTP. הנה דוגמאות:
// full local path of current directory (no trailing slash)
define('WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'].'/path/wp-content');
// full URI of current directory (no trailing slash)
define('WP_CONTENT_URL', 'http://domain.tld/path/wp-content');
יש ברשותכם גם דרך להגדיר נתיב אחר לתיקיית התוספים שלכם. אפשרות זו יכולה לעזור לפתור ענייני תאימות של תוספים מסויימים:
// full local path of current directory (no trailing slash)
define('WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'].'/path/wp-content/plugins');
// full URI of current directory (no trailing slash)
define('WP_PLUGIN_URL', 'http://domain.tld/path/wp-content/plugins');
13. גרסאות פוסטים
בוורדפרס ישנה מערכת לשמירת גרסאות פוסטים המאפשרת לכם לשמור פוסטים שכתבתם בגרסאות שונות ולחזור לגרסאות ישנות יותר אם צריך. בין אם אתם אוהבים אפשרות זו או לא, ישנן מספר קונפיגורציות שבאפשרותכם לעשות במערכת זו:
להגביל את מספר הגירסאות שנשמרות
define('WP_POST_REVISIONS', 3); // integer
לבטל את הפונקציונליות של גירסאות פוסטים
define('WP_POST_REVISIONS', false);
14. קביעת הזמן בין שמירה אוטומטית של פוסטים
באותו נושא, כברירת מחדל וורדפרס שומרת גירסה של פוסט כל 60 שניות, אך ניתן לקסוע מרווחים שונים בין שמירה לשמירה כבדוגמא הבאה:
define('AUTOSAVE_INTERVAL', 160); // in seconds
15. לאפשר העלאה של כל סוגי הקבצים למנהלי מערכת
וורדפרס מגבילה אתכם בסוגי הקבצים אותם ניתן להעלות לספריית המדיה. אינכם יכולים להעלות שום דבר מעבר לקבצי תמונות, מסמכים, קבצי אודיו וקבצי וידאו. אך מה אם אתם מעוניינים להעלות סוגי קובצים נוספים? האם עליכם להעלות אותם דרך FTP? ממש לא, כל שעליכם לעשות הוא להוסיף את השורה הבאה ל wp-config.php
כמובן:
define( 'ALLOW_UNFILTERED_UPLOADS', true );
יש לציין כי קוד זה יאפשר אך ורק למנהלי מערכת להעלות את כל סוגי הקבצים. אם אתם מעוניינים לאפשר העלאה של סוגי קבצים ספציפיים למשתמשים שאינם מנהלי מערכת, תנו מבט בפוסט איך לאפשר העלאת סוגי קבצים נוספים בוורדפרס.
16. הוספת ״פח אשפה״ (Trash) לספריית המדיה
יצא לכם פעם למחוק תמונה בספריית המדיה ולקלל את עצמכם (ואת וורדפרס) שאינה מאפשרת לשחזר תמונה זו? לי יצא, בכל אופן עד שהכרתי את ההגדרה הבאה:
define( 'MEDIA_TRASH', true );
הוסיפו אותה בקובץ wp-config.php
ולעולם לא תאלצו לדאוג ממחיקה של תמונה בטעות…
17. מעקב אחר שגיאות – Debugging
מגירסת וורדפרס 2.3.1, ישנה אפשרות להציג הודעות שגיאה מסויימות באתר בעזרת Debugging. מגירסת וורדפרס 2.5 ומעלה המערכת מציגה רמה גבוהה יותר של שגיאות ומציגה שגיאות לגבי פונקציות שכבר נזנחו (Deprecated Fuctions). כברירת מחדל בוורדפרס, הצגת שגיאות אינה אפשרות פעילה.
define('WP_DEBUG', true); // enable debugging mode
define('WP_DEBUG', false); // disable debugging mode (default)
אני ממליץ לכם לתת מבט המאמר הבא המסביר על דרך נכונה יותר לבצע debug לוורדפרס באמצעות WP_DEBUG_LOG.
18. הגדלת זיכרון – Increase PHP Memory
אם אתם מקבלים הודעת שגיאה בסגנון “Allowed memory size of xxx bytes exhausted״, הגדרה זו יכולה לפתור את הבעיה. ההגדרה WP_MEMORY_LIMIT
מאפשרת לכם לקבוע את כמות הזיכרון הזמין לשימוש לטובת PHP. כברירת מחדל, וורדפרס מנסה לקבוע הגדרה זו כ 32MB, כך שהגדרה זו נחוצה אך ורק לערך גבוה מכך.
ישנם חברות אחסון המונעים מכם להעלות את זיכרון ה PHP
ותאלצו להתחנן בפניהם לעשות זאת. הנה מספר דוגמאות:
define('WP_MEMORY_LIMIT', '64M');
define('WP_MEMORY_LIMIT', '96M');
define('WP_MEMORY_LIMIT', '128M');
19. שמירה והצגה של הקריאות למסד הנתונים לצורך ניתוח
טכניקה זו מאד שימושית לשמירה של הקריאות (queries) למסד הנתונים לצורך ניתוח ואנליזות. תהליך זה שומר כל קריאה למסד הנתונים יחד עם הפונקציה שביצעה אותו והזמן הכולל שלקח לבצע קריאה זו. מידע זה נשמא במערך ובאפשרותכם להציג מערך זה בתבנית שלכם. בכדי לעשות זאת הוסיפו את הקוד הבא לקובץ wp-config.php
:
define('SAVEQUERIES', true);
לאחר מכן, בפוטר של התבנית הנוכחית שלכם הוסיפו את הקוד הבא:
// display the query array for admin only
if (current_user_can('level_10')) {
global $wpdb;
echo "<pre>";
print_r($wpdb->queries);
echo "</pre>";
}
20. ביטול האפשרות לערוך קבצים בלוח הבקרה של וורדפרס
בהקשר של אבטחת אתרי וורדפרס – ישנה אפשרות לערוך את קבצי התוספים וקבצי התבנית דרך לוח הבקרה של וורדפרס (לוח הבקרה > עיצווב > ערוך). ניתן לבטל אפשרות זו ואולי אף עדיף לעשות זאת ולמנוע סיטואציה בה הלקוח משחק עם קבצים אלו (בטעות או במכוון):
define(‘DISALLOW_FILE_EDIT’,true);
21. איחוד קבצים בממשק הניהול
בכדי שממשק הניהול ייטען מהר, וורדפרס מאחדת קבצי Javascript לכתובת אחת. במידה וישנן שגיאות Javascript בממשק הניהול, אתם יכולים לנסות להשתמש בקוד זה בכדי לבטל את אותו איחוד קבצים (concatanation)..
define( 'CONCATENATE_SCRIPTS', false );
22. תכלס – אין לי מה לכתוב…
סעיף 21 יכול להגיע מהתגובות שלכם – אם יש לכם טריקים מגניבים שקשור ל wp-config.php
, שתפו בתגובות ואוסיף אותם לפוסט…. 🙂
מאמר מדהים כמו תמיד.
שאלה לגבי הקידומת של הטבלה, אני תמיד משנה את זה למשהו של 4 אותיות, השם הזה יכול לקבל גם ספרות? מה לגבי תווים מיוחדים?
לא ניתן להשתמש בתווים מיוחדים. אותיות, מספרים וקווים תחתונים בלבד..