اطلاعیه رایا وردپرس

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

خطای Critical Error در وردپرس؛ چرا سایت بالا نمی آید؟

خطای Critical Error در وردپرس؛ چرا سایت بالا نمی آید؟

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

«یک خطای مهم در این وب‌سایت رخ داده است.» یا همون چیزی که خیلی از وردپرسی‌ ها با نام Critical Error میشناسن.

اینجاست که معمولاً اولین فکر اینه:

«چی شد؟ سایت پرید؟ اطلاعاتم پاک شده؟ باید وردپرس رو دوباره نصب کنم؟»

📣 اینجا محل دیده شدن تبلیغ شماست کلیک کن AD

نه، هنوز وقت این کارها نیست.

ولی یک نکته مهم وجود داره: پیام Critical Error خودش علت خرابی سایت نیست. این پیام فقط بهت میگه یک خطای جدی هنگام اجرای PHP یا یکی از اجزای وردپرس اتفاق افتاده و اجرای عادی سایت متوقف شده. وردپرس هم در چنین شرایطی معمولاً سرنخ خطا رو از طریق Recovery Mode، ایمیل مدیر یا لاگ خطا در اختیار مدیر سایت قرار میده.

پس قرار نیست با حدس و آزمون، نصف سایت رو دستکاری کنی.

اول بفهمیم چه چیزی سایت را زمین زده؛ بعد درستش می‌کنیم.

Critical Error در وردپرس دقیقاً چیست؟

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

این خطا میتونه از جاهای مختلف بیاید:

  • یک افزونه ناسازگار
  • قالب مشکل‌دار
  • کد PHP اشتباه
  • تغییر نسخه PHP
  • کمبود حافظه
  • فایل خراب یا ناقص وردپرس
  • تداخل بین چند افزونه یا بین افزونه و قالب

یعنی وقتی وردپرس میگه:

«یک خطای مهم رخ داده»

در واقع هنوز نگفته چه چیزی این خطا رو ایجاد کرده.

این تفاوت خیلی مهمه.

چون فرض کن بعد از آپدیت یک افزونه سایت خراب شده. اگر بدون بررسی بری سراغ تغییر PHP، احتمالاً داری جای اشتباهی دنبال مشکل می‌گردی.

وردپرس هم برای پیام Critical Error به‌طور مشخص توصیه میکنه ابتدا ایمیل مدیر رو بررسی کنی و در صورت نیاز از دیباگ و فایل debug.log برای پیدا کردن علت واقعی استفاده بشه.

چرا سایت وردپرسی ناگهان Critical Error می‌دهد؟

بیایم سراغ قسمت مهم ماجرا.

قرار نیست فقط بگیم «ممکنه افزونه باشه». باید بفهمی چه اتفاقی می‌تونه پشت این صفحه خطا افتاده باشه.

۱. یک افزونه بعد از آپدیت با سایت ناسازگار شده

این یکی از سناریوهای خیلی رایجه.

مثلاً یک افزونه رو آپدیت می‌کنی و سایت بلافاصله بعدش از کار میافته.

ممکنه افزونه:

  • با نسخه فعلی PHP سازگار نباشه
  • با نسخه وردپرس ناسازگار شده باشه
  • با قالب تداخل داشته باشه
  • با افزونه دیگری مشکل پیدا کرده باشع
  • یا داخل نسخه جدیدش یک خطای جدی وجود داشته باشه

مثلاً فرض کن دیروز سایت بدون مشکل کار میکرده و امروز فقط یک افزونه رو آپدیت کردی. بعد از همون لحظه Critical Error ظاهر شده.

خب، اینجا لازم نیست از صفر شروع کنی.

آخرین تغییری که قبل از خراب شدن سایت انجام دادی، اولین مظنونه.

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

اگر پیشخوان هم باز نمیشه، از File Manager هاست یا FTP وارد این مسیر شو:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

و پوشه افزونه‌ای که بهش مشکوکی رو موقتاً تغییرنام بده.

مثلاً:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

رو تبدیل کن به:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

وردپرس دیگه اون افزونه رو در بارگذاری نمیکنه و افزونه عملا غیرفعال میشه!

اگر سایت برگشت، یک سرنخ خیلی مهم به دست آوردی.

اما هنوز پرونده تمام نشده.

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

۲. قالب سایت باعث خطای Fatal شده

خیلی‌ها وقتی Critical Error میبینن، مستقیم میرن سراغ افزونه‌ها.

ولی اگه مشکل از قالب باشه چی؟

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

این مشکل مخصوصاً زمانی محتمل‌تره که:

  • قالب قدیمی باشه
  • مدت زیادی آپدیت نشده باشه
  • کد سفارشی داخلش قرار داده باشی
  • بعد از آپدیت وردپرس مشکل شروع شده باشه
  • یا دقیقاً بعد از تغییر PHP سایت از کار افتاده باشه

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

اگر سایت ناگهان برگشت بالا، احتمالاً باید بری سراغ خود قالب.

اگر پیشخوان باز نمیشه هم می‌توانی از File Manager یا FTP پوشه قالب فعال رو موقتاً تغییرنام بدی تا وردپرس مجبور بشه از یک قالب پیش‌فرض استفاده کنه. این روش نیز در عیب‌یابی مشکلاتی که دسترسی به منوی مدیریت وجود نداره، کاربرد داره.

۳. بعد از تغییر PHP سایت خراب شده؟

این مورد را جدی بگیر.

اگر اتفاق‌ها این‌طور پشت سر هم افتادن:

PHP رو تغییر دادی ← سایت رو باز کردی ← Critical Error

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

ولی حواست باشه:

این به معنی بد بودن نسخه جدید PHP نیست.

وردپرس در حال حاضر استفاده از PHP 8.3 یا بالاتر رو به‌عنوان محیط توصیه‌شده اعلام کرده؛ نسخه‌های قدیمی‌تر PHP هنوز ممکنه در بعضی محیط‌های legacy کار کنن، اما به پایان عمر رسمی خودشون رسیدن.

مشکل معمولاً اینجاست که سایت ما قدیمی‌تر از محیطیه که روی اون اجرا میشه.

مثلاً افزونه‌ای داری که مدت زیادی آپدیت نشده و هنوز با کدهای قدیمی کار میکنه. حالا PHP رو به نسخه جدید ارتقا میدی و ناگهان همون کد قدیمی با یک Fatal Error متوقف میشه.

پس اگر بعد از تغییر PHP مشکل ایجاد شد:

اول نسخه فعلی رو یادداشت کن.

بعد Error Log را بررسی کن.

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

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

فقط برای اینکه سایت دوباره بالا بیاید، سریع برنگرد روی یک نسخه خیلی قدیمی و تمام.

اول علت ناسازگاری رو پیدا کن.

۴. حافظه PHP کم آورده

یک سناریوی دیگه هم داریم.

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

سایت فقط برای کاری که قراره انجام بده، منابع کافی نداره.

در لاگ ممکنه چیزی شبیه این ببینی:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

یعنی فرایند PHP به سقف حافظه‌ای که در اختیارش بوده رسیده است.

اینجا افزایش Memory Limit میتونه کمک‌کننده باشد؛ البته فقط وقتی خود خطا واقعاً مربوط به حافظه باشه. وردپرس هم Memory Limit رو در میان مواردی که میتوننن باعث خطاهای جدی بشن مطرح کرده.

مثلاً میتونی در wp-config.php از این تنظیم استفاده کنی:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

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

اما اینجا هم یک دام وجود داره.

این کد به‌تنهایی به این معنی نیست که هاست واقعاً 256 مگابایت به PHP داده!

اگر محدودیت سرور پایین‌تر باشه، باید تنظیمات واقعی PHP و خود هاست بررسی بشه.

پس هر Critical Error رو با عبارت «Memory رو زیاد کن» درمان نکن.

اول متن خطا رو بخون.

۵. یک کد اشتباه داخل functions.php گذاشتی

این یکی خیلی آشناست.

یک کد پیدا می‌کنی که قراره قابلیت جذابی به وردپرس اضافه کنه.

کد رو میزاری داخل:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

ذخیره می‌کنی…

رفرش می‌کنی…

و تمام.

Critical Error.

ممکنه فقط یک ; جا افتاده باشه.

ممکنه نام یک تابع اشتباه باشه.

ممکنه یک تابع در نسخه PHP فعلی وجود نداشته باشه.

یا حتی کدی که اضافه کردی با کد دیگه تداخل پیدا کرده باشه.

اینجا به‌جای اینکه فایل رو کامل پاک کنی و امیدوار باشی مشکل حل بشه، بهتره خطایی که PHP ثبت کرده رو ببینی.

مثلاً:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

یا:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

یا:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

این خطاها معمولاً سرنخ مهمی درباره فایل و خطی که اجرای سایت رو متوقف کردن بهت میده.

۶. آپدیت وردپرس، قالب یا افزونه نیمه‌کاره مانده

فرض کن روی دکمه «به‌روزرسانی» کلیک کردی.

اینترنت قطع شد.

سرور پاسخ درست نداد.

فایل‌ها ناقص جایگزین شدن.

یا فرآیند Update به هر دلیل کامل نشد.

بعد سایت بالا نمیاد.

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

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

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

اگر مربوط به قالبه، همون قسمت رو بررسی کن.

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

همه چیز رو با هم دستکاری نکن.

چون بعداً دیگه نمی‌فهمی مشکل از اول کجا بوده.

۷. فایل‌های وردپرس یا کدهای سایت آسیب دیدن

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

به‌خصوص بعد از:

  • انتقال ناقص سایت
  • به‌روزرسانی ناموفق
  • تغییرات اشتباه روی فایل‌ها
  • مشکلات سرور

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

نه اینکه فوراً کل وردپرس رو پاک کنی و دوباره نصب کنی.

این کار میتونه فقط صورت مسئله رو عوض کنه.

ولی از کجا بفهمیم دقیقاً چه چیزی باعث Critical Error شده؟

اینجا می‌رسیم به مهم‌ترین بخش مقاله.

حدس نزن. این جمله رو جدی بگیر.

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

راه اول؛ ایمیل وردپرس رو چک کن

وردپرس از نسخه 5.2 قابلیتی به نام Recovery Mode یا (حالت بازیابی) داره.

وقتی یک خطای جدی باعث از کار افتادن سایت بشه، وردپرس در شرایط مناسب تلاش میکنه یک ایمیل برای مدیر سایت ارسال کنه. این ایمیل میتونه شامل اطلاعات مشکل و لینک ورود به Recovery Mode باشه.

پس قبل از هر تغییری:

ایمیل مدیریت سایت رو باز کن.

پوشه Spam رو هم نگاه کن.

دنبال ایمیلی درباره خطای فنی سایت یا Recovery Mode بگرد.

ممکنه همون ایمیل بهت بگه مشکل دقیقاً از کدام افزونه یا قالب شروع شده.

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

راه دوم؛ دیباگ وردپرس رو فعال کن

اگر Recovery Mode چیزی دستت نداد، برو سراغ Debug.

در فایل wp-config.php این کد را اضافه کن:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

این تنظیمات باعث میشن خطاها در فایل debug.log ثبت بشن و در عین حال روی صفحه سایت نمایش داده نشن. فایل لاگ معمولاً اینجاست:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

کد رو قبل از این خط قرار بده:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

بعد سایت رو دوباره باز کن تا خطا تولید بشه.

حالا برو سراغ:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

و انتهای فایل رو بررسی کن.

مثلاً اگر دیدی:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

یعنی باید دنبال تابعی بگردی که وجود نداره یا دیگه در این محیط قابل استفاده نیست.

اگر دیدی:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

باید سراغ Memory Limit بروی.

اگر اسم یک افزونه و مسیر فایلش آمده، همون افزونه تبدیل به مظنون اصلی میشه.

اینجاست که Critical Error از یک صفحه ترسناک تبدیل میشه به یک خطای قابل تشخیص.

یک نکته امنیتی مهم : روی سایت زنده بهتره خطاها روی صفحه نمایش داده نشن و بعد از تمام شدن عیب‌یابی، تنظیمات Debug رو به وضعیت مناسب برگردونی.

به پیشخوان دسترسی ندارم، چطور افزونه‌ها رو غیرفعال کنم؟

این سؤال خیلی مهمه.

چون یکی از رایج‌ترین حالت‌ها اینه که:

هم سایت خراب شده، هم /wp-admin باز نمیشه.

اینجا هنوز دستت بسته نیست.

از File Manager هاست یا FTP وارد این مسیر شو:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

حالا به‌جای حذف افزونه‌ها، اول اسم پوشه plugins را موقتاً تغییر بده:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

به:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

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

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

حالا نام پوشه را به plugins برگردون.

بعد افزونه‌ها رو مرحله‌به‌مرحله فعال کن.

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

اگر غیرفعال کردن افزونه‌ها جواب نداد چی؟

خب، حالا یک قدم جلوتر رفتیم.

اگر همه افزونه‌ها غیرفعال شدن ولی سایت هنوز Critical Error میداد، نوبت بررسی قالبه.

یعنی احتمالاً باید پوشه قالب فعال رو بررسی کنی یا موقتاً یک قالب پیش‌فرض وردپرس رو فعال کنی.

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

اگر باز هم Critical Error باقی بود، باید بریسراغ لاگ و ببینی اصلاً خطا از کجا میاد.

آیا برای رفع Critical Error باید PHP رو تغییر بدهیم؟

این یکی از اشتباهاتیکه زیاد دیده میشه.

کاربر خطا میبینه و میگه:

«بذار PHP رو عوض کنم شاید درست بشه.»

ممکنه درست بشه.

ممکنه بدتر بشه.

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

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

در ضمن وردپرس در حال حاضر PHP 8.3 یا بالاتر را به‌عنوان محیط توصیه‌شده معرفی میکنه؛ بنابراین راه‌حل دائمی این نیست که سایت رو همیشه روی نسخه قدیمی PHP نگه داری تا یک افزونه قدیمی کار کنه.

راه درست‌تر اینه که کد یا افزونه ناسازگار رو اصلاح یا جایگزین کنی.

یک نکته مهم برای سایت‌های المنتوری

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

ممکنه فکر کنی:

«المنتور خراب شده.»

اما واقعاً مشکل از خود المنتور نباشه.

ممکنه:

  • یک Add-on المنتور خراب شده باشه
  • یک افزونه جانبی با Elementor تداخل داشته باشه
  • PHP نامناسب باشه
  • Memory کافی نباشه
  • کد سفارشی قالب مشکل ایجاد کرده باشه

پس اگر Critical Error بعد از کار با المنتور ظاهر شده، دقیقاً بپرس:

آخرین چیزی که تغییر دادم چی بود؟

خود المنتور هم برای محیط اجرای مناسب، نیازمندی‌های مشخصی برای PHP و منابع WordPress اعلام کرده؛ بنابراین هنگام عیب‌یابی سایت‌های المنتوری باید سازگاری نسخه‌ها و منابع سرور رو هم در نظر گرفت.

خطای Critical Error را در چه ترتیبی بررسی کنیم؟

اگر الان سایتت بالا نمیاد، لازم نیست این مقاله رو از اول تا آخر چند بار بخوانی.

این مسیر رو برو:

مرحله اول: آخرین تغییر رو پیدا کن

قبل از خطا چه کاری انجام دادی؟

افزونه نصب کردی؟

افزونه آپدیت کردی؟

قالب تغییر دادی؟

PHP تغییر دادی؟

کدی اضافه کردی؟

از همین‌جا شروع کن.

مرحله دوم: ایمیل مدیریت رو بررسی کن

Recovery Mode رو چک کن.

ممکنه WordPress مستقیماً سرنخ خطا رو بهت داده باشه.

مرحله سوم: Error Log هاست رو ببین

اگر به هاست دسترسی داری، Error Log رو بررسی کن.

عبارت‌هایی مثل:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

رو جدی بگیر.

مرحله چهارم: Debug Log رو فعال کن

اگر علت هنوز معلوم نیست:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

و بعد:

 ____                   __        __       
|  _ \ __ _ _   _  __ _ \ \      / / __  
| |_) / _` | | | |/ _` | \ \ /\ / / '_ \ 
|  _ < (_| | |_| | (_| |  \ V  V /| |_) |
|_| \_\__,_|\__, |\__,_|   \_/\_/ | .__/ 
            |___/                 |_|    

رو بررسی کن.

مرحله پنجم: افزونه ها رو یکی‌یکی بررسی کن

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

مرحله ششم: قالب رو بررسی کن

اگر افزونه‌ها بی‌تقصیر بودن، قالب رو تست کن.

مرحله هفتم: PHP و Memory رو بررسی کن

فقط وقتی لاگ یا شواهد نشان میده این قسمت مشکل دارهه.

مرحله هشتم: سراغ فایل‌های هسته وردپرس برو

چند اشتباه که ممکنه اوضاع رو بدتر کنه!

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

ولی دقیقاً همین‌جا باید کمی آروم تر عمل کنی.

همه افزونه‌ها رو پاک نکن

اول غیرفعال کن.

شاید اصلاً افزونه مقصر داستان نباشه.

PHP رو مدام بالا و پایین نکن

هر تغییر باید یک دلیل داشته باشه.

wp-config.php رو بدون بکاپ دستکاری نکن

یک اشتباه کوچک در این فایل میتونه دردسر جدیدی ایجاد کنه.

Debug رو برای همیشه روشن نگذار

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

چند تغییر رو هم‌زمان انجام نده

این مهم‌ترین نکته هست.

اگر هم‌زمان افزونه ای رو غیرفعال کردی، PHP رو تغییر دادی، قالب رو عوض کردی و کش رو پاک کردی، اگر سایت درست شد دیگه نمی‌فهمی علت واقعی چی بوده.

یکی‌یکی جلو برو.

بعد از رفع Critical Error چه کار کنیم؟

فرض کنیم سایت برگشت.

تمام؟

هنوز نه.

الان باید بفهمی چرا این اتفاق افتاد.

اگر افزونه ناسازگار بوده، اون رو به‌روزرسانی یا جایگزین کن.

اگر کد اشتباه بوده، اصلاحش کن.

اگر PHP قدیمی بوده، وضعیت سازگاری کل سایت رو بررسی کن.

اگر Memory کم بوده، منابع واقعی سرور رو بررسی کن.

اگر قالب باعث مشکل شده، کد و نسخه آن رو بررسی کن.

هدف این نیست که فقط صفحه رو دوباره بالا بیاری.

هدف اینه که دلیل خراب شدن سایت رو هم از بین ببری.

وگرنه ممکنه دو روز بعد دوباره همون صفحه Critical Error جلوی چشمت ظاهر بشه.

سوالات متداول

Critical Error در وردپرس یعنی چه؟

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

چرا بعد از آپدیت افزونه Critical Error می‌گیرم؟

احتمال دارد نسخه جدید افزونه با وردپرس، PHP، قالب یا افزونه دیگری سازگار نباشد. اولین کار منطقی، بررسی همان افزونه و سپس Error Log است.

وقتی وردپرس بالا نمی‌آید چطور افزونه‌ها را غیرفعال کنم؟

از طریق File Manager یا FTP وارد wp-content شو و پوشه plugins را موقتاً تغییرنام بده. اگر سایت برگشت، افزونه‌ها را مرحله‌ای بررسی کن.

آیا تغییر نسخه PHP Critical Error را حل می‌کند؟

فقط در صورتی که مشکل واقعاً به ناسازگاری PHP مربوط باشد. تغییر نسخه PHP بدون بررسی لاگ می‌تواند مشکل را فقط جابه‌جا کند.

فایل debug.log وردپرس کجاست؟

در صورت فعال بودن WP_DEBUG_LOG معمولاً در مسیر زیر ایجاد می‌شود:

/wp-content/debug.log

وردپرس ثبت خطا در این فایل را مستقیماً در مستندات Debugging خود توضیح داده است.

اگر هم سایت و هم پیشخوان خراب باشند چه کنیم؟

از File Manager یا FTP برای بررسی افزونه‌ها و قالب استفاده کن و در کنار آن Error Log هاست یا debug.log را بررسی کن. لازم نیست حتماً وارد پیشخوان شوی تا عیب‌یابی را شروع کنی.

جمع‌بندی

Critical Error از آن خطاهاییه که ظاهرش خیلی ترسناک‌تر از چیزیه که واقعاً باید باشه.

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

اول ببین چه اتفاقی قبل از خطا افتاده.

بعد ایمیل Recovery Mode رو بررسی کن.

اگر چیزی پیدا نشد، برو سراغ Error Log و debug.log.

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

و یک قانون ساده رو همیشه یادت باشه:

هر بار فقط یک چیز رو تغییر بده و بعد سایت رو تست کن.

چون وقتی دلیل خطا رو پیدا کنی، رفع Critical Error معمولاً خیلی راحت‌تر از چیزی میشه که در اولین نگاه به صفحه قرمز یا پیام «یک خطای مهم در این وب‌سایت رخ داده است» به نظر میرسه.

برای ادامه عیب‌یابی مشکلات سایت‌های المنتوری هم می‌توانی راهنمای چرا سایت المنتوری کند شده؟ رو هم ببینی.

به این مقاله امتیاز بده 🙂

حمایت از رایا وردپرس

یک قدم کوچک، دلگرمی بزرگ برای ما

برای نوشتن و تولید محتوا در رایا وردپرس زمان و انرژی زیادی گذاشته می‌شه؛ با یه حمایت می‌تونید باعث دلگرمی ما برای انتشار محتوای باکیفیت‌تر باشین.

حمایت می‌کنم

دیدگاه شما ثبت شد!

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

ش
شما
در انتظار تایید

هنوز دیدگاهی ثبت نشده است!

اولین نفری باشید که برای این مطلب دیدگاه می‌نویسد.

نظرت چیه؟ برامون بنویس 🤩
رایا وردپرس
بستن