با کد تخفیف 1404 از ما 30 درصد تخفیف دریافت کنید

فعال‌سازی و غیر فعال‌سازی نمایش خطا php

[kkstarratings]
فعال‌سازی و غیر فعال‌سازی نمایش خطا php

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

خب، تا حالا شده وقتی سایتت بالا نمیاد یا صفحه سفید می‌بینی، نگی «برای چی اینجوری شد؟!»؟ گاهی وردپرس خطا‌ها رو نشون نمیده و نمی‌فهمیم مشکل کجاست. اون‌وقته که باید بریم سراغ فعال‌سازی و غیر فعال‌سازی نمایش خطا php در وردپرس تا بتونیم خطاهایی مثل Notice، Warning یا حتی Fatal Error رو ببینیم. کنار هم، یاد می‌گیرم چطور این نمایش خطاها رو فعال کنیم، بعدش غیرفعال کنیم، و اصلاً تکلیف توی ‌سایت‌های زنده و در حال توسعه چی‌حرفیه.

چرا باید نمایش خطاها را فعال کنیم؟

چرا باید نمایش خطاها را فعال کنیم؟

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

phpCopyEditNotice: Undefined index in …  
Warning: Cannot modify header in …
Fatal error: Allowed memory size exhausted in…

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

انواع خطاهای PHP در وردپرس

آمار خطاها رو بدونیم بهتر می‌تونیم باهاشون مقابله کنیم:

  • Notice: اخطارهای کوچک و معمولا بی‌ضرر
  • Warning: اگه باشه، ممکنه عملکرد سایت رو خراب کنه ولی باعث از کار افتادن کامل نمیشه
  • Fatal Error: این فاجعه‌آوره و سایت رو از کار می‌اندازه
    این دسته‌بندی بهمون کمک می‌کنه بدونیم کدوم خطاها در همون صفحه نشون داده بشن یا فقط تو فایل ثبت بشن.

استفاده از wp‑config.php

این راه حل تو دسترس‌ترین راهه برای نشون دادن یا مخفی کردن خطا:

  1. وارد پوشه اصلی وردپرس شو (public_html یا root).
  2. فایل wp-config.php رو باز کن (قبل از خط /* That’s all, stop editing! … */).
  3. برای فعال‌سازی: phpCopyEditdefine('WP_DEBUG', true); define('WP_DEBUG_DISPLAY', true); برای غیر فعال‌سازی: phpCopyEditdefine('WP_DEBUG', false); define('WP_DEBUG_DISPLAY', false); ini_set('display_errors', 'Off');

خوراک ترکیبی دارم اینجا:

  • WP_DEBUG مسئول وبگردوندن دیباگ هست
  • WP_DEBUG_DISPLAY درست نشون میده یا نه
  • اگر نمایش مستقیم نمی‌خوای، ini_set('display_errors','Off') رو اضافه کن

ثبت خطاها در فایل لاگ (debug.log)

بعضی وقتا می‌خوای خطاها رو ببینی ولی جلوی چشم کاربر نشون داده نشه. این راه فرق داره:

phpCopyEditdefine('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
  • WP_DEBUG_LOG باعث میشه خطاها در wp-content/debug.log ثبت بشن
  • نمایش خطا تو مرورگر غیرفعاله
    وقتی لازمت شد، به این فایل سر بزن و داخل دلش رو بخون.

افزونه‌ها برای فعال‌سازی و غیر فعال‌سازی نمایش خطا

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

  • Query Monitor: یکی از پرطرفدارترین‌ها برای نشون‌دادن خطا، کوئری‌ها و HTTP۰‌ها
  • Debug Bar: خطاها رو تو منوی دیباگ نمایش میده
  • Error Log Monitor: خطاها رو Real‑Time تو فایل log‌ نمایش میده
    نصبش ساده‌ست، فعالش کن، و دیگه حالت debug دستته!

تنظیمات php.ini یا .htaccess

اگه کنترل‌هاست داری، می‌تونی تو php.ini یا .htaccess هم این موارد رو فعال یا غیرفعال کنی:

در php.ini:

iniCopyEditdisplay_errors = On
error_reporting = E_ALL

در .htaccess:

apacheCopyEditphp_flag display_errors on
php_value error_reporting 32767

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

کی در محیط زنده خطاها رو خاموش کنیم؟

واقعا مهمه!

  • تو سایت زنده (Production): خطاها نباید تو صفحه نشون داده بشن چون اطلاعات حساس آشکار میشه.
  • فقط تو فایل لاگ (debug.log) ثبت بشن.
  • بعد آماده شدن، سریع باز حالت عادی (WP_DEBUG= false) برگردون.

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

چند تا نکته حیاتی:

  • در محیط توسعه زور دیباگ رو فعال نگه دار برای رفع سریع مشکل
  • در سایت زنده فقط ثبت خطاها کافیه
  • بعد از رفع مشکل، حالت دیباگ رو غیرفعال کن
  • اگر خطاها ظاهر شدن، سریع گزارشش رو بده به توسعه‌دهنده قالب یا پلاگین
  • همیشه بکاپ بگیر قبل از ویرایش فایل wp-config.php

نتیجه‌گیری

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

  • خطاها رو راحت تو محیط توسعه می‌بینی
  • تو سایت زنده هیچ‌کس جز خودت چیزی نمی‌بینه
  • و در نهایت کنترل کامل روی فرآیند رفع خطا داری

یاد گرفتی چجوری:

  1. با دسترسی مستقیم wp-config
  2. ثبت تو فایل لاگ
  3. نصب افزونه
  4. استفاده از php.ini یا .htaccess

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

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

فعال‌سازی و غیر فعال‌سازی نمایش خطا php در وردپرس رو چطوری انجام بدم؟

خیلی ساده‌ست! کافیه بری سراغ فایل wp-config.php و برای فعال کردن بذاری:
phpCopyEditdefine('WP_DEBUG', true); define('WP_DEBUG_DISPLAY', true);
و برای غیر فعال کردنش:
phpCopyEditdefine('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);
ini_set('display_errors','Off');

بعد از فعال‌سازی، خطاها کجا نمایش داده می‌شن؟

وقتی فعال‌سازی و غیر فعال‌سازی نمایش خطا php در وردپرس رو انجام بدی، اگه مقدار WP_DEBUG_DISPLAY روشن باشه، خطاها همان‌جا توی صفحه سایت نمایش داده می‌شن. اگر روشن نباشه ولی WP_DEBUG_LOG فعال باشه، خطاها توی فایل wp-content/debug.log ثبت میشن.

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

اگه نمی‌خوای‌ دستی کد بزنی، افزونه‌هایی مثل Query Monitor یا Debug Bar نصب کن. اون‌ها وضعیت فعال‌سازی و غیر فعال‌سازی نمایش خطا php در وردپرس رو برات ساده‌تر می‌کنن و خطاها رو کنار داشبورد نشون میدن.

آیا فعال بودن دائمی فعال‌سازی و غیر فعال‌سازی نمایش خطا php در وردپرس خطر امنیتی داره؟

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

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

وقتی فعالش می‌کنی، خطاها هم تو صفحه و هم ممکنه لاگ ذخیره بشه. ولی اگر فقط WP_DEBUG_LOG=true بزاری و WP_DEBUG_DISPLAY=false، نمایش خطاها غیرفعال می‌مونه و فقط در فایل debug.log ثبت می‌شن. این خودش بخشی از همین فعال‌سازی و غیر فعال‌سازی نمایش خطا php در وردپرس محسوب میشه.

Picture of رامون طالع

رامون طالع

رامون طالع هستم، یه مشاور کسب و کار و تو این وب سایت بهتون یاد میدم که چطور درآمد آنلاین داشته باشید.

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