מדריך מלא לפתרון בעיות עבור חוסר היכולת של WordPress Wordfence ליצור wordfence-waf.php

מישהו הזכיר שאחרי שהתקין את Wordfence באתר שלו, הוא המשיך לקבל שגיאות שאומרות שהוא לא מצליח ליצור את קובץ wordfence-waf.php בתיקיית השורש. ביקשתי ממנו לשלוח לי צילום מסך; הודעת השגיאה הייתה רק שורה אחת, שאמרה שמדובר בבעיית הרשאות קובץ.

חשבתי על זה לרגע, והבנתי שכבר נתקלתי בזה בעבר. ביליתי המון זמן בניסיון להבין את זה, כמעט חשבתי שספק האירוח זומם משהו. התברר שזו בעיית הרשאות ובעלות, אבל ההיגיון של לוח הבקרה של האירוח יכול להיות ממש מבלבל.

מדריך מלא לפתרון בעיות עבור חוסר היכולת של WordPress Wordfence ליצור wordfence-waf.php

ראשית, הרשו לי להבהיר מה זה wordfence-waf.php.

זהו למעשה קובץ ההגנה של חומת האש של Wordfence, אשר חייב להיכתב בספריית השורש של האתר, באותה רמה כמו wp-config.php.

בלי קובץ זה, חומת האש לא יכולה לפעול; זה כאילו התקנת מנעול אבל לא ניתן להכניס את המפתח.

אפשרות 1: שינוי הרשאות בלחיצה אחת דרך לוח הבקרה (BT Panel/)HestiaCP/cPanel)

אם אתם משתמשים ב-BT Panel, זה למעשה הכי פשוט. גשו לאתר האינטרנט שלכם, מצאו את האתר המתאים, לחצו על הגדרות, לאחר מכן גשו ל"הרשאות ספרייה". שנו את הרשאת ספריית השורש של האתר ל-755 ואת הרשאת כל הקבצים ל-644. לאחר מכן בדקו אם המשתמש הפועל הוא "www"; אם לא, החליפו אותה. לחצו על כפתור "תיקון הרשאות", חכו לסיום, רעננו את Wordfence ונסו שוב.

עבור HestiaCP, גשו לדף עריכת האתר והפעילו את האפשרות "אפשר גישת כתיבה לשורש האתר". לאחר מכן, הפעילו מספר פקודות SSH כדי לאחד את הבעלים וההרשאות של ספריית האתר.

chown -R admin:www-data /home/admin/web/你的域名/public_html
chmod -R 755 /home/admin/web/你的域名/public_html
find /home/admin/web/你的域名/public_html -type f -print0 | xargs -0 chmod 644

cPanel אינטואיטיבי יותר. פתחו את מנהל הקבצים, הפעילו את "הצג קבצים מוסתרים" בפינה הימנית העליונה, לחצו לחיצה ימנית על הספרייה ושנו את ההרשאות ל-755, שנו את הרשאות הקובץ ל-644, ויש גם פונקציה לתיקון בעל הקובץ באפשרויות המתקדמות.

אפשרות 2: שינוי הרשאות ידנית דרך SSH (כללי)לינוקס)

אם לוח הבקרה אינו יכול להתמודד עם זה, השתמש ב-SSH באופן ידני. לאחר החיבור לשרת, יש לאחד תחילה את הבעלות. בסביבת LNMP/LEMP, קבוצת זמן הריצה של האינטרנט היא בדרך כלל www-data או www.

chown -R 你的面板用户:www-data /网站根目录完全路径

לאחר מכן, הגדר את הרשאות התיקייה ל-755 ואת הרשאות הקובץ ל-644.

find /网站根目录 -type d -print0 | xargs -0 chmod 755
find /网站根目录 -type f -print0 | xargs -0 chmod 644

לאחר השלמת התהליך, חזור לשרת האחורי של WP והפעל מחדש את חומת האש; סביר להניח שזה יפתור את הבעיה.

אפשרות 3: יצירה ידנית של wordfence-waf.php (פתרון מעולה כאשר ההרשאות נעולות)

אם אינך יכול לשנות דבר דרך לוח ה-SSH, עשו זאת ידנית. צור קובץ בשם wordfence-waf.php בתיקיית השורש והדבק לתוכו את הקוד הבא.

<?php
if (!defined('WFWAF_VERSION')) {
    define('WFWAF_VERSION', '7.11.0');
}
$wafConfig = array(
    'wafAutoPrepend' => true,
    'wafFile' => __FILE__,
    'wpContentDir' => dirname(__FILE__) . '/wp-content',
    'wpPluginsDir' => dirname(__FILE__) . '/wp-content/plugins',
    'wafLogDir' => dirname(__FILE__) . '/wp-content/wflogs',
);
require_once $wafConfig['wpPluginsDir'] . '/wordfence/lib/waf/waf.php';

זכרו להחליף את גרסה 7.11.0 בגרסת Wordfence הנוכחית שלכם. הגדירו את הרשאות הקובץ ל-644, והבעלים אמור להתאים לאתר. לאחר מכן ערכו את wp-config.php והוסיפו את השורה הבאה בראש הקובץ.

require_once 'wordfence-waf.php';

שמור ורענן את Wordfence. חומת האש תזהה אותו אוטומטית ולא ידווח עוד על שגיאות.

אפשרות 4: בדוק את הכללים המגבילים גישת כתיבה.

לפעמים זו לא בעיית הרשאות, אלא קובץ התצורה שחוסם אותו. פתחו את קובץ ה-.htaccess שלכם ומחקו את כל הכללים שמגבילים גישת כתיבה לקבצים או מונעים יצירת קבצי PHP. עבור Nginx, בדקו את תצורת האתר שלכם עבור הגבלות כמו root path read only או create_file off, והסירו אותן.

תרחיש נוסף הוא שהמארח הווירטואלי או אירוח ענן קל משקל עצמו מגביל את יצירת קבצי PHP בספריית השורש. במקרה זה, עליך ליצור קשר עם ספק האירוח שלך כדי להסיר את ההגבלה, או לשנות את מצב ההגנה של Wordfence. עבור לתפריט Wordfence, כל האפשרויות, WAF, ושנה את מצב מנוע ההגנה להגנה מורחבת כדי לעקוף את יצירת קבצי השורש.

פתרון 5: התנגשויות תוספים גורמות לחסימה

חלק מתוספי המטמון או האבטחה עשויים לחסום פעולה זו. השבת זמנית תוספי המטמון כמו WP Rocket, W3 Total Cache ו-LiteSpeed ​​​​Cache, כמו גם תוספי אבטחה כמו Sucuri ו-iThemes Security. לאחר מכן נקה את המטמון וה-opcache של השרת, והפעל מחדש את שירות ה-PHP.

systemctl restart php8.3-fpm

רצף פתרון בעיות מהיר (מומלץ לבצע את השלבים לפי הסדר)

אני מציע שתפעל לפי הסדר הזה כדי להימנע מבלגן. ראשית, איחוד הרשאות ובעלות; זה מה שיש לו את הסיכוי הגבוה ביותר לפתרון הבעיה. אם זה לא עובד, הפעל מחדש את PHP-FPM ורענן את ה-backend. אם זה עדיין לא עובד, צור ידנית קובץ חדש ושנה את wp-config. לאחר מכן בדוק אם תצורת Nginx או Apache שלך ​​חוסמת את יצירת קבצי PHP חדשים בספריית השורש. לבסוף, שקול להחליף מצבי חומת אש.

דבר אחד שאני חייב להזכיר לכם הוא שלעולם אסור להגדיר הרשאות ל-777. הרשאות תיקיות צריכות להיות 755 והרשאות קבצים 644; זה הסטנדרט. הגדרת הרשאות ל-777 תחשוף ישירות את האתר שלכם, ותהווה סיכון אבטחה גבוה ביותר. אם יפרצו לכם, יהיה מאוחר מדי להתחרט על כך.

למען האמת, אני לא בטוח אם הפתרונות האלה יעבדו עבורך, אבל שיתפתי את המכשולים שנתקלתי בהם ואת השיטות שגיליתי. אם אתה מקבל הודעות שגיאה נוספות, צלם צילום מסך ושלח אותו אליי, ואני אבדוק שוב.

מאחר שקראתם עד כאן, אם מצאתם את זה מועיל, אנא עשו לייק ושתפו. אם אתם רוצים לקבל עדכונים ראשונים, אתם יכולים גם לעקוב אחריי!

תודה שקראתם את המאמר שלי. נתראה בפעם הבאה.

Hope Chen Weiliang בלוג ( https://www.chenweiliang.com/ המדריך "פתרון מלא לחוסר היכולת של וורדפרס ליצור קובץ wordfence-waf.php" המשותף כאן עשוי להיות מועיל עבורך.

מוזמנים לשתף את הקישור של מאמר זה:https://www.chenweiliang.com/cwl-34337.html

כדי לפתוח עוד טריקים נסתרים🔑, מוזמנים להצטרף לערוץ הטלגרם שלנו!

שתפו ותעשו לייק אם אהבתם! השיתופים והלייקים שלך הם המניע המתמשך שלנו!

 

发表 评论

כתובת האימייל שלך לא תפורסם. 必填 项 已 用 * תווית

גלול למעלה