سایت را باز میکنید و فقط یک صفحه سفید خالی میبینید؛ بدون هیچ پیام خطا. به این وضعیت در دنیای وردپرس «صفحه سفید مرگ» (White Screen of Death) گفته میشود. تقریباً همیشه پشت آن یک خطای PHP است که نمایشش خاموش است. در این راهنما قدمبهقدم علت صفحه سفید وردپرس را پیدا و رفع میکنیم، حتی وقتی به پیشخوان دسترسی ندارید.
فهرست مطالب
چرا صفحه سفید میشود؟
وقتی PHP در حین ساخت صفحه با یک خطای مهلک (Fatal Error) روبهرو میشود، اجرای آن متوقف میشود. در سرورهای عملیاتی، نمایش خطا به کاربران به دلایل امنیتی خاموش است؛ پس نتیجه یک صفحه خالی است (و گاهی کد وضعیت ۵۰۰). رایجترین علتها:
- افزونه یا قالبی که با نسخه وردپرس یا PHP سازگار نیست.
- بهروزرسانی ناقص یا فایلهای خراب.
- تمام شدن حافظه PHP.
- خطای نگارشی در کدی که دستی ویرایش شده؛ مثلاً در
functions.php.
صفحه سفید در واقع شکل خاصی از خطای ۵۰۰ است و روش عیبیابی آن مشابه است.
حالت بازیابی وردپرس و ایمیل خطا
نسخههای جدید وردپرس هنگام خطای مهلک، بهجای صفحه کاملاً سفید، پیام «There has been a critical error on this website» نشان میدهند و یک ایمیل به آدرس مدیر سایت میفرستند. این ایمیل نام افزونه یا قالب مقصر و یک لینک «حالت بازیابی» (Recovery Mode) دارد. با این لینک وارد پیشخوان میشوید در حالی که افزونه مشکلدار برای شما غیرفعال است. پس اول صندوق ایمیل مدیر سایت، از جمله پوشه اسپم، را بررسی کنید.
گام ۱: خطا را آشکار کنید
در wp-config.php، پیش از جمله «That’s all, stop editing»:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
صفحه را دوباره باز کنید و فایل wp-content/debug.log را بخوانید. خطای مهلک معمولاً دقیقاً نام فایل و شماره خط را میگوید؛ مثلاً /wp-content/plugins/some-plugin/... یعنی همان افزونه مقصر است. در هاست cPanel، فایل error_log و بخش Errors هم مفیدند. پس از رفع مشکل، این تنظیمات را برگردانید.
گام ۲: غیرفعال کردن افزونهها
بدون دسترسی به پیشخوان، با File Manager هاست یا SFTP:
- به
wp-contentبروید و نام پوشهpluginsرا بهplugins-offتغییر دهید. همه افزونهها غیرفعال میشوند. - اگر سایت بالا آمد، نام را برگردانید و این بار پوشه تکتک افزونهها را تغییر نام دهید تا مقصر پیدا شود.
- افزونه مقصر را بهروز، با نسخه سازگار جایگزین یا حذف کنید.
روی VPS با WP-CLI سریعتر است:
wp plugin list --status=active
wp plugin deactivate --all --skip-plugins --skip-themes
wp plugin activate woocommerce
آشنایی با دستورهای پایه خط فرمان در دستورات پایه لینوکس.
گام ۳: تغییر قالب
اگر غیرفعال کردن افزونهها کمکی نکرد، قالب را بررسی کنید. نام پوشه قالب فعال را در wp-content/themes تغییر دهید؛ وردپرس به یکی از قالبهای پیشفرض نصبشده برمیگردد (اگر قالب پیشفرضی وجود ندارد، یکی را آپلود کنید). اگر اخیراً functions.php قالب را ویرایش کردهاید، احتمالاً یک خطای نگارشی همانجاست؛ تغییر را برگردانید.
گام ۴: افزایش حافظه PHP
پیام «Allowed memory size exhausted» در لاگ یعنی حافظه PHP کافی نیست:
define( 'WP_MEMORY_LIMIT', '256M' );
این تنظیم در wp-config.php فقط تا سقف memory_limit سرور اثر دارد؛ آن را هم از تنظیمات PHP در cPanel یا php.ini سرور بررسی کنید. اگر مصرف حافظه بیدلیل زیاد است، افزونه پرمصرف را پیدا کنید.
گام ۵: کش و فایلهای ناقص
- کش افزونه کش و CDN را پاک کنید؛ گاهی صفحه خراب کش شده و پس از رفع مشکل هم نمایش داده میشود.
- اگر خطا پس از بهروزرسانی هسته رخ داده، فایلهای هسته را با نسخه سالم همان نسخه جایگزین کنید (پوشههای
wp-adminوwp-includes، بدون دست زدن بهwp-contentوwp-config.php). با WP-CLI:wp core verify-checksumsفایلهای تغییرکرده را نشان میدهد. - فایل
.maintenanceباقیمانده از بهروزرسانی ناقص را حذف کنید؛ توضیح در رفع خطای ۵۰۳.
فقط پیشخوان سفید است
اگر سایت درست است اما /wp-admin سفید است، معمولاً افزونهای که فقط در پیشخوان اجرا میشود یا حافظه پیشخوان (WP_MAX_MEMORY_LIMIT) مقصر است. همان روش لاگ و غیرفعال کردن افزونهها را دنبال کنید. اگر فقط یک صفحه خاص سفید است، کد آن صفحه یا Shortcode و ابزارکهای آن را بررسی کنید.
پیشگیری
- بهروزرسانیهای بزرگ را ابتدا روی نسخه آزمایشی (Staging) تست کنید.
- پیش از بهروزرسانی و ویرایش کد، بکاپ بگیرید؛ روشها در بکاپ وردپرس.
- کد سفارشی را در یک افزونه کوچک اختصاصی یا قالب فرزند بنویسید، نه در قالب اصلی.
- افزونهها را از منابع معتبر نصب و تعدادشان را کم نگه دارید.
- پایش سایت را فعال کنید تا صفحه سفید زود تشخیص داده شود؛ مانیتور Keyword که وجود یک عبارت در صفحه را بررسی کند، صفحه سفید با کد ۲۰۰ را هم تشخیص میدهد. آموزش در Uptime Kuma.
سوالات متداول
صفحه سفید وردپرس یعنی سایت هک شده است؟
معمولاً نه؛ در بیشتر موارد خطای PHP ناشی از افزونه، قالب یا بهروزرسانی است. اما اگر فایلهای ناشناس یا تغییرات مشکوک در کد میبینید، احتمال نفوذ را هم بررسی کنید.
آیا با غیرفعال کردن افزونهها تنظیماتشان پاک میشود؟
خیر. تغییر نام پوشه یا غیرفعالسازی، تنظیمات ذخیرهشده در دیتابیس را پاک نمیکند؛ پس از فعالسازی دوباره، تنظیمات برمیگردند.
ایمیل حالت بازیابی به دستم نرسید؛ چرا؟
ممکن است ایمیلهای سایت به اسپم بروند یا اصلاً ارسال نشوند. تنظیمات ارسال ایمیل را بررسی کنید؛ راهنما در چرا ایمیلها به اسپم میروند.
فقط در موبایل صفحه سفید است؛ چرا؟
احتمالاً نسخه کششده مخصوص موبایل خراب است یا افزونهای فقط برای موبایل اجرا میشود. کش را پاک کنید و لاگ را هنگام باز کردن سایت از موبایل بررسی کنید.
کمک فوری برای سایت از کار افتاده
اگر سایت شما از دسترس خارج شده، پشتیبانی تخصصی تراست هاست علت را بررسی و رفع میکند. هاستهای تراست هاست هم با بکاپ منظم ارائه میشوند.