מתכון פשוט להמנעות מהdrupal white screen

כל מי שפיתח או התעסק עם דרופל הרבה נחשף לזה.
פתאום אתה עומד מול חלון לבן בלי צל של מושג מה קרה.
החלון הלבן בדרך כלל נגרם בגלל שגיאת php והודעת השגיאה של הphp בדרך כלל נרשמת לקובץ "לוג" במערכת הקבצים.
אם אתה מנוסה ומכיר קצת את המערכת של ספק השירות שלך - בודאי תסתדר באיתור קבצי הלוג ותוכל לנסות לפענח את שגיאת הphp - שברוב המקרים אתה יצרת אך למתחילים (וגם לעצלנים - כמוני) אפשר לנתב את שגיאות הphp לדפדפן
הוספת הקטע הבא לסוף קובץ ה .htaccess שלכם תגרום לשגיאות הphp להופיע על הדפדפן.

<IfModule mod_php5.c>
  # ...
  php_value display_errors on
  # ...
</IfModule>

שימו לב שהסיבה שההגדרה הזו כבויה בברירת המחדל היא בגלל אבטחה - פורץ יכול ללמוד מהמערכת ומשגיאותיה..
כך שכדאי להוריד את ההגדרה כאשר משחררים את השרת לproduction.

ליאור קסוס, לינוויט
תשתיות תוכן קהילתיות

תגובות

אפשר כך, ואפשר גם אחרת

- אפשר להכניס display_errors גם ב- php.ini (ראו עוד על הנושא של שגיאות ובעיות ב- PHP כאן: http://il.php.net/manual/en/ref.errorfunc.php).
- אנשי יוניקס יכולים "לסדר לעצמם" את שגיאות ה- PHP גם ב- xconsole, למי שמשתמש, ואז יש דיווח שוטף גם לאתר שבו אתם לא רוצים דיווחים בדפדפנים של הגולשים:
error_reporting = E_ALL
display_startup_errors = On
log_errors = On
error_log = syslog
report_memleaks = On
(וכן הלאה וכן הלאה - ראו לינק לנושא למעלה...)
- ולסיום - הגישה של לשים את הבקשה לדיווח על שגיאות ב- htaccess מאפשרת שלחלק מאפליקציות הדרופל שרצות על המכונה (למשל אפליקציות חיות) לא יהיה דיווח שגיאות (מכוער ובעל סיכונים "בטחוניים" לאתר) ולחלק כן. זה כמובן יתרון מצויין. כן, לא צריך להעיר לי - בכלל כדאי להפריד בין LAMP לפיתוח ו- LAMP חי אבל כולנו יודעים שלא תמיד זה קורה.

לא ייאמן!

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

ליאור קסוס, לינוויט
תשתיות תוכן קהילתיות

והמבין יבין...

יש עוד דרך

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

לא תמיד ריאלי

לפעמים הבעיות הן בכלל במודולים שלא אנחנו כתבנו או בעיות בקינפוג PHP על השרת ובאופן כללי, הלואי שהייתי יכול בלי white screen of death לעתים. האמת, שעם לוגינג כמו שצריך זה לא מפריע לי - אני מיד רואה מה הבעיה, ובד"כ גם מבין מיד או כמעט מיד.
כמו כן, בפיתוח עם IDE כמו שצריך (עם סביבת דיבוג עובדת) מאוד קל להגיע לרזולוציה הכי גבוהה של קרבי התוכנית ולראות גם מה נעשה שם, ולהבין די מהר למה. זה משלים טוב מאוד הודעות PHP שמגיעות עם קובץ ומספר שורה בה התרחש הדיווח.