عیب‌یابی (دیباگ) وردپرس

فعال‌سازی مود دیباگ وردپرس

برای فعال کردن مود دیباگ وردپرس فایل wp-config.php وردپرس را ویرایش کرده و کد

define('WP_DEBUG', false);

را یافته و آن را به صورت زیر تغییر دهید.

define('WP_DEBUG', true);

در این حالت خروجی مود دیباگ وردپرس (شامل خطاهای php) در صفحات سایت در مرورگر نمایش داده خواهد شد.

فعال‌سازی لاگ‌برداری از خروجی مود دیباگ

به منظور ذخیره خروجی مود دیباگ در یک فایل بر روی سایت کد زیر را در یک خط پس از کد فعال سازی مود دیباگ (WP_DEBUG) در فایل wp-config.php اضافه کنید.

define('WP_DEBUG_LOG', true);

اضافه کردن این کد باعث می شود که وردپرس علاوه بر نمایش خروجی دیباگ در صفحات سایت این اطلاعات را در فایلی با نام debug.log در شاخه wp-content وردپرس ذخیره کند.

wp-content/debug.log

غیر فعال کردن نمایش خروجی دیباگ در صفحات سایت

برای غیر فعال کردن نمایش خروجی دیباگ در صفحات سایت کد زیر را پس از کد فعال سازی مود دیباگ به فایل wp-config.php اضافه کنید:

define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);

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

نمونه کامل کد فعال سازی و تنظیم مود دیباگ

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

// Enable WP_DEBUG mode
define('WP_DEBUG', true);

// Enable Debug logging to the /wp-content/debug.log file
define('WP_DEBUG_LOG', true);

// Disable display of errors and warnings
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);

این کد می بایست پیش از خط زیر به فایل wp-config.php وردپرس اضافه شود.

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

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

برای غیر فعال کردن مود دیباگ وردپرس مقدار ثابت WP_DEBUG در فایل wp-config.php را از true به false تغییر دهید:

define('WP_DEBUG', false);

با انجام این تغییر مود دیباگ وردپرس به صورت کامل غیر فعال می‌شود و نیازی به حذف کدهای تنظیم خروجی مود دیباگ نیست. بنابراین می‌توانید کدهای مربوط به تنظیمات را پس از غیر فعال سازی مود دیباگ در فایل wp-config.php حفظ کرده و نیاز به اضافه کردن دوباره این کد در هنگام فعال سازی مود دیباگ در آینده برطرف کنید (فعال سازی سریع دوباره مود دیباگ با خروجی در فایل debug.log).

فعال باقی ماندن مود دیباگ برای مدت طولانی منجر به افزایش سایز فایل لاگ دیباگ شده که این موضوع منجر به مصرف بالای فضای دیسک سرویس شما خواهد شد. علاوه بر آن در صورت افزایش سایز فایل به بیش از یک گیگابایت به دلیل تنظیمات امنیتی هاست میزبان، وردپرس قادر به نوشتن اطلاعات بیشتر در این فایل نبوده که این موضوع باعث صدور خطای 500 و از دسترس خارج شدن سایت می گردد. همچنین در صورت فعال بودن نمایش خروجی دیباگ در صفحات سایت، فعال بودن طولانی مدت مود دیباگ امنیت سایت را با خطر مواجه می‌کند. بنابراین می‌بایست همیشه بلافاصله پس از پایان عیب‌یابی، مود دیباگ وردپرس دوباره غیر فعال شود. همچنین پیشنهاد می‌شود برای جلوگیری از بزرگ شدن سایز فایل لاگ، پیش از فعال سازی مود دیباگ فایل قبلی debug.log را در صورت وجود از شاخه wp-content وردپرس حذف کنید.

سفارشی‌سازی خروجی مود دیباگ

خطا‌های php از نوع notice, strict, deprectated معمولا در هنگام عیب‌یابی وردپرس مورد نیاز نیستند. با این وجود تعداد این خطاها در خروجی دیباگ بسیار زیاد بوده که این موضوع می‌تواند باعث دشواری بررسی خروجی دیباگ گردد. به خصوص این خطاها بررسی لاگ دیباگ را دشوار کرده و همچنین باعث افزایش بسیار سریع سایز فایل لاگ می‌شوند که این موضوع امکان فعال سازی طولانی مدت مود دیباگ جهت شناسایی خطاهای نادر را با مشکل جدی مواجه می کند. به منظور حذف این خطاها از خروجی مود دیباگ وردپرس می‌توانید به صورت زیر عمل کنید:

  1. بر روی سرویس هاستینگ خود به شاخه wp-content وردپرس رفته و شاخه‌ای با نام mu-plugins را در این مسیر ایجاد کنید.
  2. وارد شاخه mu-plugins شده و فایلی با نام error-reporting.php در این شاخه ایجاد کنید.
  3. فایل error-reporting.php را وایریش کرده و کد زیر در این فایل قرار دهید.
<?php
error_reporting(E_ALL &  ~( E_DEPRECATED | E_USER_DEPRECATED | E_USER_NOTICE | E_STRICT | E_NOTICE));
?>

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

فعال سازی دسترسی وب به فایل debug.log

به منظور جلوگیری از دسترسی افراد غیر مجاز به فایل debug.log وردپرس بر روی سرویس‌های میزبانی وب ارایه شده، دسترسی به این فایل از سوی نت‌افراز به صورت پیش فرض بر روی سرویس‌ها مسدود شده است. پیشنهاد می‌شود جهت دسترسی به این فایل از مدیریت فایل در دایرکت‌ادمین یا سرویس FTP استفاده کنید. چنانچه همچنان مایل به دسترسی به این فایل از طریق وب هستید، حهت فعال سازی دسترسی برای آدرس IP اینترنت خود، کافی است کد زیر را به فایل .htaccess در شاخه wp-content وردپرس اضافه کنید (در صورت عدم وجود یک فایل جدید با این نام ایجاد کنید).

<Files "debug.log">
	Order deny,allow
	Allow from IPADDR
	Deny from all
</Files>

به جای IPADDR می‌بایست آدرس IP اینترنت خود را وارد نمایید.

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

چنانچه آدرس IP سرویس اینترنت شما از نوع استاتیک نیست، جهت حذف احتمال دسترسی افراد غیر مجاز به محتوای فایل debug.log در آینده، حتما بلافاصله پس از پایان عیب‌یابی، این کد را از فایل wp-content/.htaccess حذف کنید.


لینک کوتاه: https://help.netafraz.com/1gx5

سایر مطالب مرتبط :

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