לחצתם "עדכן" על תוסף, ושנייה אחר כך האתר הראה מסך לבן, הודעת שגיאה קריטית, או שפשוט הפסיק להיטען. זה אחד התרחישים הנפוצים ביותר בוורדפרס, והחדשות הטובות הן שכמעט תמיד מדובר בנזק הפיך. התוכן שלכם לא נמחק, והאתר חוזר לאוויר ברגע שמנטרלים את הרכיב שגרם לתקלה. המאמר הזה עובר על השחזור הבטוח, ואז על איך לעדכן בעתיד בלי להפיל שום דבר.
למה עדכון מפיל אתר
עדכון של תוסף אמור להיות פעולה שגרתית, אבל יש כמה סיבות שבגללן הוא נשבר:
- התנגשות עם תוסף או תבנית אחרים - הגרסה החדשה משתמשת בפונקציה שתוסף אחר כבר תפס, או שינתה התנהגות שרכיב אחר הסתמך עליה.
- גרסת PHP לא תואמת - התוסף החדש דורש PHP חדש יותר ממה שמותקן על השרת, או להפך.
- עדכון שנקטע באמצע - חיבור שנפל או timeout השאירו קבצים חלקיים, והתוסף נטען שבור.
- באג בגרסה עצמה - גם מפתחים גדולים משחררים לפעמים גרסה עם תקלה, ומתקנים אותה כעבור יום-יומיים.
- דרישת עדכון נלווה - לעיתים תוסף דורש שגם הליבה או תוסף-אם יעודכנו, ועדכון חלקי שובר את התלות.
ברוב המקרים הסימן יהיה ברור: האתר עבד דקה לפני, ונפל מיד אחרי לחיצת העדכון. זה בדיוק מה שהופך את האבחון לפשוט יחסית.
צעד 1: אל תיבהלו ואל תעדכנו שוב
הטעות הנפוצה היא לנסות "לתקן" בעוד לחיצות: לעדכן עוד תוספים, להתקין מחדש, או להריץ שחזור חפוז בלי לבדוק. כל פעולה נוספת מסבכת את האבחון. עצרו, וזהו בדיוק מה השתנה: איזה תוסף עדכנתם, ומתי בדיוק נפל האתר.
אם יש לכם גיבוי טרי מלפני העדכון, יש לכם רשת ביטחון. אם אין, אל דאגה, השבתת התוסף לבדה כמעט תמיד מספיקה.
צעד 2: השביתו את התוסף האשם
הדרך לחזור לאוויר היא לנטרל את התוסף שעדכנתם. יש שלוש דרכים, לפי רמת הגישה שיש לכם.
אם הניהול (wp-admin) עדיין נגיש: היכנסו למסך התוספים, ולחצו "השבת" (Deactivate) על התוסף שעדכנתם. האתר אמור לחזור מיד.
אם קיבלתם מייל מוורדפרס: מאז גרסה 5.2, כשמתרחשת שגיאה קריטית, וורדפרס שולח אוטומטית מייל לכתובת המנהל. המייל מציין את שם התוסף האשם, ומכיל קישור ל"מצב התאוששות" (recovery mode) שמאפשר להיכנס לניהול ולהשבית אותו בסביבה מבודדת. בדקו גם את תיקיית הספאם.
אם אין גישה לניהול בכלל: משביתים דרך השרת. התחברו ב-FTP או דרך מנהל הקבצים של חברת האחסון, נווטו ל-wp-content/plugins/, ושנו את שם התיקייה של התוסף הבעייתי (למשל מ-contact-form ל-contact-form-off). וורדפרס יזהה שהתוסף "נעלם" וינטרל אותו אוטומטית. טענו מחדש את האתר, והוא אמור לחזור.
אם אינכם בטוחים איזה תוסף אשם, שנו את שם כל התיקייה plugins ל-plugins-off. זה מנתק את כל התוספים בבת אחת. אם האתר חזר, מחזירים את השם, ומשביתים תוסף-תוסף עד שמאתרים את האחד שמפיל.
לפירוט מלא של קריאת לוג השגיאות והכניסה ל-recovery mode, ראו There has been a critical error / שגיאת 500 - מה עושים. אם מה שאתם רואים הוא דף לבן ריק לגמרי, מסך לבן בוורדפרס (WSOD) - אבחון ותיקון שלב אחר שלב מתאר בדיוק את התרחיש הזה.
צעד 3: שחזרו לגרסה הקודמת של התוסף
אחרי שהאתר חזר לאוויר עם התוסף מושבת, נשארת השאלה מה לעשות עם התוסף עצמו, במיוחד אם הוא חיוני (טופס יצירת קשר, חנות, מערכת תשלומים).
הפתרון הבטוח הוא לחזור לגרסה הקודמת שעבדה:
- משחזור מגיבוי: אם יש גיבוי מלפני העדכון, שחזרו ממנו את תיקיית התוסף בלבד, או את האתר כולו.
- גרסה קודמת מהמאגר: לתוספים מ-WordPress.org אפשר להוריד גרסאות ישנות מלשונית "Advanced" בדף התוסף, או להשתמש בתוסף ניהול גרסאות שמחזיר בלחיצה.
- המתנה לתיקון: אם מדובר בבאג בגרסה, לרוב המפתח משחרר תיקון תוך ימים. עד אז, השאירו את התוסף בגרסה הקודמת.
המטרה היא שהאתר יעבוד, לא שירוץ דווקא על הגרסה האחרונה ברגע זה.
איך מעדכנים בלי להפיל את האתר
כל התרחיש הזה נמנע כמעט לחלוטין עם שני הרגלים. ההבדל בין אתר שנופל כל כמה חודשים לבין אתר יציב הוא לא מזל, אלא שיטה.
1. גיבוי אוטומטי לפני כל עדכון. אם משהו נשבר, משחזרים בלחיצה במקום לחקור שעה. גיבוי שיושב על אותו שרת אינו מספיק, הוא צריך להיות חיצוני ואוטומטי. ראו גיבוי אוטומטי לוורדפרס - איך מגדירים שלא תיפול שוב.
2. סביבת בדיקה (staging). staging הוא עותק זהה של האתר, שיושב בכתובת נפרדת ולא נראה למבקרים. מריצים עליו את העדכון, בודקים שהכל תקין (טפסים, תשלומים, עיצוב), ורק אז מעבירים לאתר החי. ככה עדכון בעייתי נשבר על העותק, לא על העסק שלכם.
כמה כללי אצבע נוספים:
- לא לעדכן עשרה תוספים בבת אחת. עדכון אחד בכל פעם מאפשר לדעת מי אשם אם משהו נשבר.
- לא לעדכן רגע לפני אירוע חשוב (קמפיין, השקה, סוף חודש בחנות).
- לשמור על גרסת PHP מעודכנת ונתמכת, כדי שתוספים חדשים לא יתנגשו בה.
איפה OCW נכנסת
אם האתר ממשיך ליפול אחרי שניסיתם, אין לכם גישת FTP בטוחה, או שאתם פשוט לא רוצים לגעת בקבצי השרת, אנחנו מחלצים אתרים שנפלו אחרי עדכון ומחזירים אותם לאוויר בלי לאבד תוכן.
מעבר לחילוץ החד-פעמי, חבילת אחריות 360 של OCW מנהלת את העדכונים בשבילכם: גיבוי אוטומטי לפני כל שינוי, סביבת בדיקה לעדכונים, וניטור שמזהה תקלה לפני שהיא מפילה את האתר. ארבעה פילרים: אבטחה, נגישות, פרטיות ותחזוקה טכנית. אפשר לקרוא עוד על תחזוקת אתר וורדפרס - מה כלול, כמה עולה, או לפנות אלינו לבדיקה.
שאלות נפוצות
העדכון מחק לי תוכן מהאתר?
לא. עדכון שנכשל עוצר את טעינת האתר, אבל לא נוגע בתכנים שבמסד הנתונים. העמודים, הפוסטים והתמונות נשארים. ברגע שמשביתים את התוסף האשם, הכל חוזר כפי שהיה.
השבתתי את התוסף אבל אני צריך אותו. מה עכשיו?
חזרו לגרסה הקודמת שעבדה, משחזור מגיבוי או מהורדת גרסה ישנה מהמאגר. אם מדובר בבאג ידוע, המתינו לתיקון של המפתח והפעילו אז את הגרסה החדשה. עד אז עדיף תוסף בגרסה קצת ישנה על אתר שעובד.
איך אני יודע איזה תוסף הפיל את האתר?
לרוב זה התוסף שעדכנתם הרגע. אם לא בטוחים, שנו את שם תיקיית plugins כדי לנטרל הכל, ואז החזירו ותנטרלו תוסף-תוסף עד שתמצאו את האשם. המייל האוטומטי מוורדפרס ולוג השגיאות מצביעים גם הם על השם המדויק.
אפשר פשוט לא לעדכן תוספים?
לא מומלץ. עדכונים סוגרים פרצות אבטחה, ותוסף ישן הוא אחת הדרכים הנפוצות שאתרים נפרצים דרכן. הפתרון הוא לא להימנע מעדכונים, אלא לעדכן בבטחה: גיבוי לפני, וסביבת בדיקה.