وردپرس

آموزش رفع خطای there has been a critical error on your website

آیا تا به حال با پیام خطایی در وب سایت وردپرس خود مواجه شده اید که می‌گوید “there has been a critical error on your website”؟ در این مطلب به آموزش رفع خطای there has been a critical error on your website می‌پردازیم.

در این مطلب، نحوه شناسایی و رفع سریع علت این خطای مهم در وردپرس را خواهیم آموخت تا بتوانید سایت خود را به سرعت آنلاین کنید. شروع کنیم!

نحوه رفع خطای there has been a critical error on your website
نحوه رفع خطای there has been a critical error on your website

خطای «there has been a critical error on your website» چیست؟

این پیام خطا یک اعلان خطایی است که در وب سایت های وردپرسی ظاهر می‌شود.

وقتی سعی می‌کنیم به قسمت پشتی سایت خود دسترسی پیدا کنیم یا حتی فقط از آن بازدید کنیم، تنها چیزی که می‌بینیم صفحه ای با این پیام است، همانطور که در اینجا نشان داده شده است:

there-has-been-a-critical-error-on-your-website
there-has-been-a-critical-error-on-your-website

در برخی موارد، این خطا ممکن است تنها پس از اقدامات خاصی ظاهر شود.

با این حال، زمانی که این اتفاق می‌افتد، ناوبری وب سایت را قطع می‌کند و همچنین از دسترسی ما به بخش مدیریت جلوگیری می‌کند.

پیام هشدار ممکن است کمی متفاوت باشد و متن می‌تواند به شرح زیر باشد:

There has been a critical error on your website. Please check your site admin email inbox for instructions.

این پیام شامل لینکی است که شما را به سؤالات متداول وردپرس در مورد برخی از رایج ترین خطاها، از جمله صفحه سفید وردپرس (که به عنوان صفحه سفید مرگ نیز شناخته می‌شود) راهنمایی می‌کند.


چه چیزی باعث خطای وردپرس می‌شود؟

ارور “there has been a critical error on your website” به عنوان “WordPress critical error” نیز شناخته می‌شود زیرا از دسترسی به سایت و قسمت مدیریت جلوگیری می‌کند.

این خطا ممکن است به دلیل مشکل در یک پلاگین یا تم رخ دهد و به طور کلی ریشه آن در مشکل یک اسکریپت PHP است که قطع می‌شود.

debug-there-has-been-a-critical-error-on-your-website
debug-there-has-been-a-critical-error-on-your-website

 

با توجه به رواج آن در وردپرس، توسعه دهندگان قابلیتی را پیاده سازی کرده اند که به صورت خودکار ایمیلی را به مدیر سایت ارسال می‌کند تا خطاها را مشخص کند.

این ایمیل ها شامل جزئیاتی مانند نوع خطا (parse error)، محل وقوع خطا (فایل و خط کد) و خود پیام خطا است.

متأسفانه، این هشدار همیشه قابل اعتماد نیست، اما همچنان می‌توانید به راحتی خطاها را به تنهایی شناسایی کنید. بیایید نگاهی به چگونگی آن بیندازیم.


نحوه شناسایی و رفع خطا

برای حل این خطا، درک علت آن مهم است. برای مشخص کردن دلیل دقیق خطا می‌توان مراحل زیر را انجام داد:

گزینه 1: آدرس ایمیل مدیر را برای تأیید دریافت ایمیل بررسی کنید. حتماً پوشه اسپم را نیز بررسی کنید.

گزینه 2: حالت اشکال زدایی وردپرس را برای شناسایی خطاها یا بررسی گزارش خطای سرور فعال کنید.

هر دو روش به تعیین علت خاص خطای بحرانی در وردپرس کمک می‌کنند. روش دوم به ویژه در رفع خطای بحرانی وردپرس موثر است، حتی اگر اعلان ایمیل دریافت نشده باشد.

برای فعال کردن حالت اشکال زدایی و یافتن محل ثبت خطا، این مراحل را دنبال کنید.

پس از شناسایی خطا، به یاد داشته باشید که حالت اشکال زدایی را غیرفعال کنید. به سادگی خطوطی را که قبلا ذکر شد به “false” برگردانید.

برای یک وب سایت تولید زنده، توصیه می‌شود حالت نمایش خطا و اشکال زدایی را غیرفعال کنید.

در یک وب سایت فعال (به این معنی که قابل دسترسی برای بازدیدکنندگان است)، توصیه می‌شود حالت نمایش خطا و حالت اشکال زدایی را غیرفعال کنید.


فعال کردن حالت debug mode در وردپرس

وردپرس فعال کردن حالت اشکال زدایی را ساده می‌کند، حتی اگر نتوانیم به قسمت بک اند سایت خود دسترسی پیدا کنیم.

با انجام تنظیماتی در فایل wp-config.php که در دایرکتوری اصلی سایت ما قرار دارد، می‌توانیم به راحتی حالت اشکال زدایی را فعال کنیم.

اگر از یک پلن میزبانی با پارس وی دی اس استفاده می‌کنیم، مانند یک پلن میزبانی وردپرس، می‌توانیم مستقیماً از سی پنل به فایل های سایت خود دسترسی داشته باشیم.

در فایل منیجر می‌توانیم فایل wp-config.php را پیدا کرده و تغییر دهیم.

cpanel-find-wp-config-file
cpanel-find-wp-config-file

اگر چندین نصب وردپرس در یک هاست دارید، به عنوان مثال، در زیر شاخه ها یا زیر دامنه ها، حتما فایل صحیح را ویرایش کنید.

با فایل منیجر، می‌توانیم مستقیماً فایل را با استفاده از ویرایشگر داخلی ویرایش کنیم.

فایل wp-config.php را باز کنید و خطوط زیر را پیدا کنید:

define( ‘WP_DEBUG’, false );

define( ‘WP_DEBUG_LOG’, false );

همانطور که در اینجا نشان داده شده است، باید مقدار را به “true” تغییر دهیم:

define( ‘WP_DEBUG’, true );

define( ‘WP_DEBUG_LOG’, true );

اگر موجود نبود، فقط باید آنها را قبل از خط نهایی فایل که حاوی این متن است اضافه کنیم:

/* That's all, stop editing! Happy blogging. */

در اینجا نتیجه باید این باشد:

Wordpress Enable Debug Mode And Debug Log File

با این کار حالت اشکال زدایی را فعال خواهیم کرد و خطاهایی که با آن مواجه می‌شوند را ثبت می‌کنیم.

خط اول (WP_DEBUG) به ما امکان می‌دهد حالت اشکال زدایی را فعال کنیم.

دومی (WP_DEBUG_LOG) یک فایل debug.log جدید ایجاد می‌کند که در آن خطاها ثبت و حفظ می‌شوند.

همچنین می‌توانید با افزودن این خط، نمایش خطاها را روی صفحه فعال کنید:

define( 'WP_DEBUG_DISPLAY', true );

پس از انجام تغییرات، حتما فایل را ذخیره کنید.

اکنون که حالت اشکال زدایی فعال است، می‌توانید فایل debug.log داخل پوشه wp-content را نیز بررسی کنید تا گزارش خطا را مشاهده کنید.

بیایید خطاها را در هر دو مورد ببینیم.


شناسایی خطا (نمایش روی صفحه)

اگر نمایش خطاها را روی صفحه فعال کرده اید (با استفاده از متغیر WP_DEBUG_DISPLAY)، فقط باید به صفحه اصلی وب سایت مراجعه کنید و خطا را مشاهده خواهید کرد، همانطور که در مثال زیر نشان داده شده است:

wordpress-critical-error-with-debug-mode-enabled
wordpress-critical-error-with-debug-mode-enabled

بعد، باید خطا را تجزیه و تحلیل کنیم. بیایید آن را با استفاده از مثال خود بررسی کنیم.

هشدار به ما اطلاعاتی در مورد زیر می‌دهد:

  • نوع خطا که در این نمونه خطای تجزیه است.
  • فایل آسیب دیده و مکان آن، در مورد ما به عنوان ‘post.php’ شناسایی شده است.
  • خط خاصی که خطا در آن رخ می‌دهد که خط 72 است.

شایان ذکر است که ممکن است چندین خطا وجود داشته باشد. در سناریوی خود، با دو خطای “notice” مواجه شدیم. با این حال، مقصر اصلی خطای مهم وردپرس اولین مورد بود: یک خطای نحوی در فایل.


برای شناسایی خطا فایل debug.log را بررسی کنید

اگر تابع WP_DEBUG_DISPLAY را فعال نکرده‌اید، می‌توانید مستقیماً با مراجعه به فایل «debug.log» خطا را بررسی کنید.

فایل در داخل پوشه wp-content قرار دارد، همانطور که در اینجا نشان داده شده است:

wordpress-debug-log-file
wordpress-debug-log-file

در مورد ما، خطایی که به تازگی دیدیم ثبت شده است و فایل ‘debug.log’ دارای این محتوا خواهد بود:

debug-log-file-error-details
debug-log-file-error-details

فایل error_log را بررسی کنید

به طور کلی، فعال کردن حالت اشکال زدایی وردپرس معمولا برای شناسایی خطا و حل مشکل خطای بحرانی وردپرس کافی است.

با این حال، برای بررسی هر گونه خطای PHP، می‌توانید فایل “error_log” را نیز بررسی کنید.

تنها کاری که باید انجام دهید این است که پوشه “public_html” سایت خود را بررسی کرده و فایل را برای خواندن خطاها باز کنید.

همانطور که در اینجا نشان داده شده است، می‌توانید یک جستجوی ساده فایل را با استفاده از مدیر فایل سی پنل انجام دهید:

cpanel-find-error-log-file
cpanel-find-error-log-file

راه حل های رفع خطای Critical Error وردپرس

برای شناسایی آنچه باعث ظاهر شدن پیام خطا شده است: “here has been a critical error on your website“، بهترین راه حل این است که از دو روشی که قبلاً ذکر کردیم پیروی کنید.

با این کار می‌توانیم خطا را دقیقا مشخص کرده و آن را برطرف کنیم.

در زیر، برخی از رایج‌ترین دلایلی را که می‌توانند باعث ایجاد مشکل شوند فهرست کرده‌ایم و راه‌حل‌های آن را می‌بینیم:

علت مشکل راه حل
Conflict with plugins غیرفعال کردن افزونه ها
Problem with the theme in use قالب را به حالت پیش فرض برگردانید
Outdated PHP version نسخه PHP را تغییر دهید
Insufficient PHP memory limit محدودیت حافظه PHP را افزایش دهید
Can’t determine the cause یک نسخه پشتیبان از وردپرس را بازیابی کنید

بیایید نگاهی دقیق تر به هر یک از راه حل های ممکن برای مشکل خطا بیندازیم.


غیرفعال کردن پلاگین ها

یکی از دلایل خطای بحرانی وردپرس، مشکلات افزونه ها است. در این صورت غیرفعال کردن تمامی افزونه های نصب شده و فعال سازی مجدد آن ها یکی یکی می‌تواند مشکل را حل کند.

از آنجایی که خطا به ما اجازه دسترسی به back-end را نمی‌دهد، باید افزونه ها را به صورت دستی غیرفعال کنیم.

برای انجام این کار؛ این موارد را انجام دهید:

  1. از طریق مدیر فایل یا یک کلاینت FTP مانند FileZilla یا Cyberduck به فایل های سایت خود دسترسی داشته باشید
    نام پوشه “plugins” را به “plugins-disabled” تغییر دهید.
  2. سپس، یک پوشه جدید به نام “plugins” ایجاد کنید و پوشه های پلاگین را یکی یکی جابجا کنید تا مشخص شود کدام یک باعث خطا می‌شود.همچنین، می‌توانید افزونه‌ها را از پایگاه داده غیرفعال کنید، طبق روشی که در اینجا توضیح دادیم: غیرفعال کردن افزونه‌ها با phpMyAdmin.

بازیابی قالب پیش فرض

گاهی اوقات، مضامین وردپرس نیز می‌تواند باعث درگیری شود که منجر به پیام خطای مهم می‌شود. حتی بدون دسترسی به داشبورد می‌توانیم تم وردپرس در حال استفاده را تغییر دهیم.

برای انجام این کار، باید با استفاده از phpMyAdmin به پایگاه داده دسترسی پیدا کنیم و این مقادیر را در جدول wp_options تغییر دهیم:

 

templates;

stylesheet.

در ستون option_value، نام تم مورد نظر خود را وارد کنید، همانطور که در اینجا نشان داده شده است:

phpmyadmin-edit-wordpress-template
phpmyadmin-edit-wordpress-template

تغییر نسخه PHP

در برخی موارد، اگر با پیام «خطای حیاتی در وب‌سایت شما وجود دارد» مواجه شدید، دلیل آن می‌تواند نسخه PHP در حال استفاده باشد.

اگر از یک نسخه قدیمی PHP استفاده می‌کنید، باید به نسخه به‌روزتر بروید و ببینید که آیا این مشکل را حل می‌کند یا خیر.

با پشتیبانی هاست، می‌توانید به طور مستقل نسخه ای را که ترجیح می‌دهید استفاده کنید تنظیم کنید. فقط آموزش ما را در مورد نحوه تغییر نسخه PHP از سی پنل دنبال کنید.


افزایش محدودیت حافظه PHP

اگر مشکل از محدودیت حافظه باشد چه؟ حافظه ای که خیلی کم است می‌تواند اجرای اسکریپت PHP را مختل کند.

راه های مختلفی برای اصلاح این آستانه وجود دارد.

  1. برگه “Options” را باز کنید.
  2. مقدار کنار “memory_limit” را ویرایش کنید.

مقداری را که باید در این اسکرین شات اصلاح شود برجسته کرده ایم:

cpanel-php-settings-tab
cpanel-php-settings-tab

همچنین، می‌توانید با افزودن این خط به فایل wp-config.php، محدودیت حافظه را افزایش دهید:

define( 'WP_MEMORY_LIMIT', '128M' );

بازیابی پشتیبان وردپرس

وقتی همه راه‌حل‌های قبلی کار نکردند، و سایت شما به دلیل خطای پیام critical  همچنان غیرقابل دسترسی است، همچنان می‌توانید اقدام کنید. به سادگی یک نسخه پشتیبان اخیر را بازیابی کنید.

اگر نتوانستید دلایل خطا را مشخص کنید، پیشنهاد می‌شود اسکن انجام دهید تا وجود بدافزاری را که ممکن است فایل‌ها را به خطر انداخته باشد، را بیابید.


دریافت پیام “There has been a critical error on your website” می‌تواند برای مدیران وردپرس که قادر به دسترسی به سایت خود نیستند نگران کننده باشد. خوشبختانه، وردپرس دارای یک حالت اشکال زدایی است که به کاربران کمک می‌کند تا خطاها را پیدا و رفع کنند، آنها فقط باید بدانند کجا آن را پیدا کنند.

ما در مورد چگونگی مشخص کردن علت خطای بحرانی وردپرس بحث کرده‌ایم و راه‌حل‌های متداول را ارائه کرده‌ایم. آیا توانسته اید بفهمید که چه چیزی باعث این خطا در سایت شما شده است؟ تجربه خود را در قسمت نظرات به اشتراک بگذارید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

دکمه بازگشت به بالا