سه شنبه, ۲ مرداد, ۱۴۰۳

آموزش عیب یابی (دیباگ) و خطایابی در وردپرس

WordPress Debug Tutorials

به منظور عیب یابی و مشاهده خطاها یا هشدارهای برنامه ی وردپرس می توانید حالت عیب یابی (دیباگ) وردپرس را از طریق فایل پیکربندی wp-config.php واقع در مسیر اصلی نصب برنامه فعال کنید.

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

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

بخش مدیریت فایل

در ادامه، از بخش سمت چپ، شاخه domains و بعد نام دامنه را انتخاب و به شاخه public_html وارد شوید.
در این قسمت بر روی فایل wp-config.php راست کلیک کنید. سپس قسمت Edit را انتخاب نمایید.

ادیت wp-config
ادیت wp-config

در صفحه ایجاد شده، کد

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 اضافه کنید:

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

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

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

define('WP_DEBUG', true);

define('WP_DEBUG_LOG', true);

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).

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

 

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

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

  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://www.netafraz.com/blog/wordpress-debug-tutorials/

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

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *