خطای صفحه سفید (صفحه سفید مرگ) در وردپرس و رفع سریع آن
خطای صفحه سفید مرگ (White Screen of Death) یا WSoD یکی از متداول ترین خطاهای وردپرس و همچنین یکی از ترسناک ترین آنها است. هیچ چیز بدتر از این نیست که سایت وردپرسی خود را باز کرده و به جای دیدن صفحه وب سایت یک صفحه سفید بدون هیچ اعلان خطایی مشاهده کنید.
بسته به مرورگری که استفاده می کنید ممکن است خطای سفید مرگ ظاهر متفاوتی داشته باشد. به عنوان مثال در گوگل کروم این خطا به شکل زیر نشان داده می شود.
در واقع یک هشدار به ما می دهد که می گوید “این صفحه کار نمی کند و قادر به رسیدگی به درخواست نیست.” این یک خطای 500 است.
خطای صفحه سفید مرگ بسته به علت رخ دادن خطا گاهی فقط در صفحات خاصی از وب سایت و گاهی در کل وب سایت و حتی در قسمت مدیریت مشاهده می شود. بنابراین مشاهده صفحه سفید می تواند هم برای بازدیدکنندگان و هم مدیر وب سایت اتفاق بیافتد.
در این مقاله شایع ترین علل رخ دادن خطای صفحه سفید و راه های رفع آن را بررسی می کنیم.
علل بروز خطای صفحه سفید در وردپرس
خطای صفحه سفید مرگ ممکن است تمام وب سایت شما یا قسمتی از آن و حتی بخش مدیریت وب سایت را تحت تأثیر قرار دهد. دلایلی که باعث ایجاد خطای صفحه سفید مرگ می شوند عبارتند از:
- پر شدن حافظه: شایع ترین علت بروز خطای صفحه سفید مرگ فقدان حافظه خالی به خاطر مصرف بیش از حد حافظه توسط اسکریپت های PHP است.
- ناسازگاری قالب و افزونه: ممکن است یک یا تعدادی از افزونه های نصب شده در سایت شما با قالب فعلی شما سازگار نباشد.
- افزونه یا قالب بی کیفیت و خراب: ممکن است قالب یا افزونه بی کیفیت و خرابی را در سایت خود نصب کرده باشید که هنگام آپدیت فایل های وردپرس باعث شکسته شدن وب سایت وردپرسی شما شوند.
- مشکلات مربوط به سرور: وجود مشکل در هاستینگ وب شما مانند اختصاص حافظه محدود، اتصال شبکه و غیره می تواند باعث بروز خطای صفحه سفید مرگ شود.
دلیل بروز خطای سفید مرگ هرچه که باشد، شما می توانید با کمی عیب یابی، مشکل را برطرف کنید. در ادامه آموزش به بررسی راه های رفع خطای صفحه سفید مرگ می پردازیم.
چگونه خطای صفحه سفید را رفع کنید؟
از آنجا که هنگام رخ دادن خطای WSOD تنها یک صفحه سفید بدون هیچ پیام خطایی نشان داده می شود، تشخیص علت رخ دادن خطا اندکی مشکل است. در ادامه تکنیک هایی که برای رفع سریع و بی دردسر خطای صفحه سفید استفاده می شود را بررسی می کنیم.
غیرفعال کردن قالب ها و افزونه ها
بسیاری اوقات نصب یا اصلاح یک افزونه جدید یا بروزرسانی یک افزونه قدیمی می تواند باعث بروز خطای صفحه سفید مرگ شود. به همین دلیل استفاده از افزونه های با کیفیت بسیار مهم است.
یکی از ساده ترین و رایج ترین روش های رفع خطای صفحه سفید مرگ، غیرفعال کردن تمام افزونه ها است.
اگر به پیشخوان وردپرس خود دسترسی دارید، سریع ترین روش این است که وارد منوی افزونه ها شوید و تمام افزونه ها را به صورت دسته جمعی غیرفعال کنید.
اگر این کار باعث رفع خطا شد باید افزونه ای که باعث ایجاد مشکل شده است را پیدا کنید. برای این کار افزونه ها را یک به یک فعال کرده و بعد از هر فعال سازی، سایت را مجدداً بارگیری کنید تا زمانی که افزونه مشکل دار را پیدا کنید. سپس این افزونه را با افزونه دیگری جایگزین نمایید.
اگر به پیشخوان وردپرس خود دسترسی ندارید، دسترسی به وردپرس از طریق FTP با استفاده از یک FTP Client مانند Filezilla ایجاد کنید. بسیاری از شرکت های هاستینگ سرویس های FTP را ارائه می دهند. سپس مراحل زیر را طی کنید:
1- با استفاده از FTP Client به سرور هاست وب خود متصل شوید.
2- فولدر wp-content را پیدا کنید. برای پیدا کردن فولدر wp-content ، شاید مجبور شوید فولدر public_html را باز کنید.
هنگامی که داخل فولدر wp-content هستید ، پوشه Plugins را پیدا کنید.
فولدر Plugins را تغییر نام دهید. به عنوان مثال نام آن را plugins_test قرار دهید.
سایت خود را مجدداً بارگیری کنید.
اگر سایت شما به درستی کار کند، مشکل از افزونه ها است. باید تک تک افزونه ها را تست کنید. نام فولدر افزونه ها را به plugins برگردانید و فولدرهای مربوط به افزونه ها در داخل آن را یک به یک تغییر نام داده تا افزونه مشکل دار را پیدا کنید.
همین کار را می توانید برای قالب ها نیز به صورت زیر انجام دهید.
قالب فعلی سایت خود را به صورت موقت با یکی از قالب های پیش فرض وردپرس مانند 2019 جایگزین کنید. اگر می توانید وارد پیشخوان وردپرس خود شوید، در منوی نمایش وارد زیرمنوی پوسته ها شوید و قالب 2019 را فعال کنید.
مجدداً سایت را آزمایش کنید. اگر سایت شما برگشته باشد، قالب شما مقصر بوده است.
اگر نمی توانید وارد پیشخوان وردپرس خود شوید، دقیقاً مشابه آنچه که در افزونه ها انجام دادید را انجام دهید.
- از یک اکانت معتبر برای ورود به سرور FTP خود استفاده کنید.
- فولدر wp-content/themes را به چیز دیگری مانند themes_test تغییر نام دهید. وردپرس به صورت خودکار آخرین قالب پیش فرض را فعال می کند.
- سایت خود را مجدداً بارگیری کنید.
- اگر خطا رفع شده بود، قالب شما باعث ایجاد بروز خطای صفحه سفید شده است و باید قالب خود را عوض کنید.
اکثر اوقات آپدیت های وردپرس باعث از کار افتادن قالب هایی می شود که به درستی کدگذاری نشده اند. به همین دلیل اکثر قالب های منسوخ شده یا خوب کدگذاری نشده پس از بروزرسانی وردپرس از کار می افتند.
اگر متوجه شدید پس از بروزرسانی وردپرس خطای صفحه سفید اتفاق افتاده است، مطمئن باشید قالب شما باعث بروز مشکل شده است و غیرفعال کردن آن می تواند خطا را برطرف کند.
بروزرسانی قالب یا ویرایش آن به صورت دستی نیز می تواند باعث بروز خطای WSOD شود. سعی کنید فایل اصلاح شده را با یک نسخه قدیمی از نسخه پشتیبان خود جایگزین کنید. در غیر این صورت ، شما باید فایلهای قالب اصلی را مجدداً بارگیری و نصب کنید.
افزایش حد حافظه برای رفع خطای صفحه سفید
خطای صفحه سفید یک علامت کلاسیک است که نشان می دهد شما از حد حافظه خود فراتر رفته اید. ترافیک بیشتر به سایت به معنی نیاز به حافظه بیشتر است. بنابراین با افزایش تعداد بازدیدکنندگان تان باید حد حافظه خود را افزایش دهید.
در بسیاری از نصب ها می توانید این کار را از طریق فایل wp-config.php خود انجام دهید. کافی است قطعه کد زیر را به این فایل اضافه کنید.
define('WP_MEMORY_LIMIT', '64M');
برای هاست های مشترک حد حافظه 64MB کافی است. اگر پس از ایجاد این تغییر، مشکل همچنان ادامه داشت چند گزینه دیگر در اختیار دارید:
در یک محیط معمولی می توانید به فایل htaccess. سایت خود دسترسی داشته باشید. قطعه کد زیر را به فایل htaccess. اضافه کنید تا حد حافظه شما افزایش یابد:
php_value memory_limit 64M
اگر به فایل htaccess. خود دسترسی ندارید می توانید از طریق فایل php.ini حد حافظه را افزایش دهید. کافی قطعه کد زیر را به این فایل اضافه کنید.
memory_limit = 64M
اگر هنوز به حافظه بیشتری نیاز دارید، ممکن است قالب یا یکی از افزونه های شما از منابع نامناسبی استفاده می کند. بهتر است از یک توسعه دهنده کمک بخواهید. هاست شما نیز می تواند با نشان دادن گزارش های SQL و سایر آمار منابع به شما کمک کند.
استفاده از کد Debug وردپرس
اگر هنوز خطای صفحه سفید مرگ را مشاهده می کنید یا قسمت مدیریت سایت کار نمی کند، می توانید از حالت debugging یا اشکال زدایی وردپرس استفاده کنید.
برای این کار باید فایل wp-config.php نصب وردپرس خود را باز کنید. در داخل این فایل خط زیر را پیدا کنید:
define( 'WP_DEBUG', false )
شما در این خط باید عبارت false را به true تبدیل کنید. سپس سایت خود را مجدداً بارگذاری کنید.
اگر چنین خطی وجود ندارد می توانید عبارت بالا را در داخل فایل wp-config.php وارد کنید.
پس از بارگذاری مجدد سایت یک پیام خطا همراه با صفحه سفید مشاهده می کنید که می تواند در حل مشکل کمک زیادی به شما کند.
با استفاده از این پیام می توانید بفمید خطا به خاطر کدام فایل بوده است. پیام خطا چیزی شبیه تصویر زیر است.
Cannot redeclare get_posts() (previously declared in /var/www/html/wordpress/wp-includes/post.php:1874) in /var/www/html/wordpress/wp-content/plugins/my-test-plugin/my-test-plugin.php on line 38
در انتهای پیام مشاهده می کنید که مشکل در خط 38 در افزونه ای به نام “my-test-plugin” قرار دارد. غیرفعال کردن این افزونه باعث رفع مشکل می شود.
پاک کردن کش وردپرس
گاهی اوقات شما به بک اند سایت دسترسی دارید اما فرانت اند سایت دارای خطای صفحه سفید است. در این حالت باید کش خود را خالی کنید.
تصحیح مقالات بلند برای رفع خطای صفحه سفید
اگر صفحه سفید مرگ را تنها در یک نوشته یا برگه طولانی مشاهده کردید، ترفند زیر می تواند مؤثر باشد.
کد زیر را کپی کرده و در فایل wp-config.php پیست کنید.
/** Trick for long posts */
ini_set('pcre.recursion_limit',20000000);
ini_set('pcre.backtrack_limit',10000000);
توجه داشته باشید که اگر خطای صفحه سفید ناشی از یک افزونه یا قالب وردپرس باشد، گاهی اوقات وردپرس می تواند علت خطا را یافته و آن را در صفحه سفید نشان دهد.
در وردپرس 5.2 یک ویژگی محافظت در برابر خطای مرگ معرفی شده است که می تواند علت وقوع خطا را نشان دهد. بنابراین شما به جای دیدن صفحه سفید، پیام خطایی شامل این متن که سایت دارای مشکلات فنی است را مشاهده خواهید کرد.
همچنین در آدرس ایمیل ادمین تان یک ایمیل با موضوع “Your Site is Having a Technical Issue” دریافت می کنید.
این پیام ایمیل افزونه ای که باعث ایجاد خطا شده است را مشخص می کند و یک لینک مخصوص نیز دارد. این لینک به شما اجازه می دهد وارد مد بازیابی (recovery) وردپرس شوید و افزونه خراب را غیرفعال کنید.
اما اگر تنها یک صفحه سفید ساده مشاهده کردید که حاوی هیچ پیام خطا یا لینک مد ریکاوری وردپرس نیست باید طبق روش هایی که در این مقاله توضیح داده شد، خطا را به صورت دستی برطرف کنید.
امیدواریم این آموزش برای شما مفید بوده باشد. منتظر دریافت دیدگاه های شما هستیم.
دیدگاه ها