שגיאת 500

מה זה שגיאת 500 ואיך לפתור את השגיאה?

תקשורת מחשבים היא דבר מורכב למדי. ב-front end של הדברים, הכול עשוי להראות למשתמש המערכת פשוט למדי. אבל ב-back end, מאחורי הקלעים, מתרחשת תמיד פעילות רבה ואינטנסיבית. אחד מסוגי השיבושים הידועים והבולטים ביותר, מביא לכך שהשרת יודיע על שגיאה 500. מה זה אומר? מה גורם לכך? וכיצד ניתן לפתור מצב של שגיאה 500?

מה זה שגיאת 500?

שגיאה 500 היא מצב שבו שרת קיבל בקשה מסוימת ולא הצליח לתת לה מענה כנדרש. 500 Internal server error (בשם המדויק והארוך יותר) יכולה להתרחש למשל במסגרת תקשורת בין דפדפן לבין שרת אחסון אתרים. משתמש הדפדפן מנסה להעלות אתר מסוים, אך שרת אחסון האתר נתקל בסיבוך טכני כלשהו ומחזיר הודעת שגיאה 500 ולא מסוגל לטעון את האתר כראוי. מספר השגיאה הוא לא מקרי, אלא הוא אחד משורת הודעות סטנדרטיות (response status codes), אשר מוגדרות בפרוטוקול HTTP. עם זאת, הצגת הודעת השגיאה עשויה להיות בפועל בפורמטים שונים. למשל תוך שימוש ב"HTTP Error 500" ו/או "Internal Server Error". אבל הרעיון פשוט – התרחשה שגיאת השרת הידועה, אשר מספרה במקרה זה 500.

הגורמים לשגיאת 500

מדובר בעצם בהודעת שגיאה כללית. זו לא הודעת שגיאה שמתייחסת בעצמה למקור התקלה, כגון 505 HTTP Version Not Supported או 511 Network Authentication Required (RFC 6585). לכן, כאשר היא מתקבלת, יש צורך להתעמק עוד כדי להבין את מקור העניין ולפתור זאת. בסעיף הבא נרחיב לגבי דרכי הפתרון, אשר נובעות למעשה ברובן מהסיבות האפשריות להודעה. אלה עשויות להיות למשל שינוי שיצרתם לאחרונה בשרת, שגיאות בהרשאות, תקלה בתוסף וורדפרס, חריגה ממגבלות זיכרון ועוד.

איך פותרים את השגיאה?

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

  1. לבצע גיבוי – לפני הכל, כדאי לשקול לבצע גיבוי מלא. זאת בהתחשב בכך שאתם עשויים לבצע עוד שינויים משמעותיים. גיבוי יסייע לחזור למצב המקורי שלפני השינוי.
  2. לבדוק שינויים אחרונים והשלכותיהם – תקלות מתרחשות פעמים רבות כתוצאה ישירה של שינויים טכניים שבוצעו. לכן, חשוב כשלב ראשוני להיזכר ולבדוק האם בוצעו שינויים רלוונטיים, ואיזה. בהתאם לכך, אתם עשויים בשלב זה להחליט לבצע ביטול של השינויים או של חלקם ו/או בדיקות נוספות.
  3. לבדוק פגמים בקובץ htaccess – קובץ התצורה htaccess עשוי להיות פגום באופנים שונים. הוא גם עשוי להיות תקין אך להתייחס לאלמנט אחר (כמו מודול כלשהו) שכעת לא זמין. הדרך לבדוק זאת היא להחליף אותו בקובץ חדש ולראות האם הודעת השגיאה חוזרת או לא. בכל מקרה, חשוב כמובן שתוכנו של קובץ חיוני זה, עם כל הכללים שמוגדרים בו, יהיה כפי שהוא אמור להיות.
  4. לבדוק אם זה בגלל הרשאות קבצים – עוד מקור אפשרי להודעת 500 Internal server error, היא תקלה לגבי הרשאות קבצים. איפוס ההרשאות עשוי להוכיח שזה המקור לתקלה וגם לפתור את העניין.
  5. לבדוק אם התוספים גורמים לכך – השגיאה עשויה לנבוע מבאגים שונים בתוספים. כדי לבדוק זאת ולהתמקד בתוסף שגורם לכך, אפשר לנטרל אותם ולהפעיל מחדש בהדרגה.
  6. לבדוק אם ישנה חריגה ממגבלות הזיכרון – לעתים, הגדלת זיכרון PHP תפתור את העניין.

עוד נקודות שימושיות

לאור מורכבות הנושא, יש כמה דברים שחשוב לדעת.

  • להתחיל מהנפוץ ביותר – צעדים אלה מתייחסים לסיבות הבולטות יותר להופעת תקלה כזו. תאורטית, השגיאה עשויה לנבוע גם ממקורות אחרים, כגון תקלה בשרת עצמו, אך הדבר נדיר. כך שהגיוני לגשת לטיפול במצב כזה על פי הפעולות הנפוצות שתיארנו. תמיד תוכלו להוסיף צעדים אחרים על פי הצורך.
  • לארגן סדר פעולות, בהתאם לנסיבות – חשוב לנקוט בסדר פעולות הגיוני, שתלוי בשיקוליכם, במצב ובממצאים שעולים, תוך כדי הניסיון לפתור את התקלה.
  • להבין כיצד זה קרה – ייתכן שתעשו איפוס הרשאות לגבי הרשאות קבצים והתקלה תיפתר. אבל מה ימנע ממנה לחזור? יש תסריטים רבים של פתרון, בהם המצב יחזור לתיקונו, אפילו במהירות, אבל מבלי שתבינו מה בדיוק גרם לתקלה. במבט לעתיד, רצוי כמובן להבין כיצד התקלה התרחשה.
  • השינוי שלא ראיתם – לגבי שינויים שבוצעו במערכת, הזכרנו שהם עשויים להיות מקור לתקלה. אבל אתם לא בהכרח תהיו מודעים לכל השינויים מאחר שעדכוני מערכת שונים עשויים לשנות את התוספים, באופנים שיגרמו לתקלות. למשל שינוי בדרישות הזכרון.
  • ה-cache של הדפדפן – ייתכן שהתקלה קשורה לזיכרון המטמון ששומר הדפדפן, אשר דרכו ניסיתם לגשת לאתר כאשר קיבלתם את הודעת השגיאה. תוכלו לנקות את המטמון (cache) בדפדפן ולבדוק האם התקלה נעלמה. במקרה שבו לא ששים לנקות את הקש בדפדפן, פתרון חלופי עשוי להיות שימוש במצב גלישה פרטי ( private browsing / incognito mode).
  • הסיבות יוצאות הדופן – ייתכן שצעדים אלה לא פתרו את התקלה ושהיא נובעת ממקור יוצא דופן. עקרונית, גם נוזקה למשל עלולה לגרום להופעת תקלה עם שגיאה 500. מצב זה ומצבים נדירים נוספים אולי לא מאוד נפוצים, אך כדאי לזכור שגם הם עשויים להתרחש.

סיכום

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