post title

آموزش پنهان کردن خطاهای php وردپرس

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

آموزش پنهان کردن خطاهای php وردپرس

توییتر تلگرام

خطاهای PHP در وردپرس چیست؟ خطاهایی هستند که به‌علت وجود مشکلات در کدهای PHP که برای توسعه وب‌سایت با استفاده از وردپرس نوشته شده‌اند، ایجاد می‌شوند. این خطاها ممکن است به‌دلیل عدم تطابق نسخه‌ی PHP با نسخه‌ی وردپرس، پلاگین‌های نادرست، قالب‌های نامناسب یا اشکالات دیگری در کد‌های PHP باشند. این خطاها ممکن است با روش‌های مختلفی مانند نمایش پیام خطا در صفحه وب، ثبت خطا در فایل خطای لاگ (error log)، یا استفاده از افزونه‌های مدیریت خطا رفع شوند.

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

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

پنهان کردن خطاهای php در وردپرس یا خاموش کردن!

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

پنهان کردن خطاهای php در وردپرس یا خاموش کردن!

کدهای پنهان کردن و خاموش کردن خطاهای PHP وردپرس

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

/* That’s all, stop editing! Happy publishing. */

۱. خاموش کردن دیباگ وردپرس

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

define( ‘WP_DEBUG’, false );

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

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

مثال: یک خطای Fatal همچنان می‌تواند باعث اختلال یا از دسترس خارج شدن بخشی از سایت شود.

۲. مخفی کردن خطاها و ثبت آن‌ها در لاگ

اگر سایت فعال است اما می‌خواهید خطاهای PHP برای بازدیدکنندگان نمایش داده نشوند و در عین حال بتوانید آن‌ها را بررسی کنید، بهتر است دیباگ را فعال و نمایش خطا را غیرفعال کنید:

define( ‘WP_DEBUG’, true );

define( ‘WP_DEBUG_DISPLAY’, false );

define( ‘WP_DEBUG_LOG’, true );

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

فایل لاگ پیش‌فرض وردپرس معمولا در مسیر زیر قرار می‌گیرد:

/wp-content/debug.log

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

۳. اگر خطاها همچنان نمایش داده شدند

اگر با وجود تنظیمات بالا بعضی خطاهای PHP همچنان در سایت نمایش داده می‌شوند، ممکن است تنظیمات PHP یا وب ‌سرور باعث نمایش آن‌ها شده باشد.

یکی از تنظیمات مهم PHP در این زمینه display_errors  است. در صورت دسترسی به تنظیمات PHP می‌توانید وضعیت آن را بررسی کنید:

ini_set( ‘display_errors’, ‘0’ );

با این حال، بهتر است این دستور را راه‌حل اصلی در نظر نگیرید. تنظیمات display_errors  ممکن است توسط پیکربندی PHP، هاست یا وب‌سرور کنترل شود و در بعضی محیط‌ها تغییر آن از داخل کد امکان‌پذیر نباشد.

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

۴. آیا می‌توانیم Warning و Notice را جداگانه مخفی کنیم؟

بله، با error_reporting()  می‌توان مشخص کرد PHP چه نوع خطاهایی را گزارش کند.

مثال:

error_reporting( E_ALL & ~E_WARNING & ~E_NOTICE );

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

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

تفاوت خاموش کردن و پنهان کردن خطاهای php وردپرس

خاموش کردن دیباگ مخفی کردن خطا ویژگی
false true WP_DEBUG
غیرفعال در حالت عادی غیرفعال نمایش خطا به بازدیدکننده
معمولا غیرفعال فعال ثبت خطا در لاگ
محدودتر بیشتر امکان بررسی خطاها
سایت بدون نیاز به دیباگ عیب‌یابی سایت بدون نمایش خطا به کاربران کاربرد اصلی

 کدام روش برای سایت وردپرسی بهتر است؟

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

define( ‘WP_DEBUG’, false );

  •   در حال عیب‌یابی سایت: اگر می‌خواهید خطاها را بررسی کنید اما کاربران آن‌ها را نبینند، WP_DEBUG را فعال، WP_DEBUG_DISPLAY را غیرفعال و WP_DEBUG_LOG  را فعال کنید.

define( ‘WP_DEBUG’, true );

define( ‘WP_DEBUG_DISPLAY’, false );

define( ‘WP_DEBUG_LOG’, true );

در این حالت، خطاهای قابل ثبت در لاگ ذخیره می‌شوند و می‌توانید بعدا علت مشکل را بررسی کنید.

آیا مخفی کردن خطا به معنی رفع آن است؟

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

نکات امنیتی هنگام پنهان کردن خطاهای PHP

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

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

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

روشن کردن نمایش خطاهای PHP

به عنوان یک توسعه دهنده و یا کدنویس قطعا شرایطی پیش می‌آید که قصد داشته باشید وضعیت سایت را برای ارزیابی صحت عملکرد قالب و افزونه ها بررسی کنید. همین‌طور ممکن است سایت شما در یک سرور محلی – Local Server فعال باشد که در هر دو صورت نمایش خطاهای PHP ضروری بنظر می رسد.

اگر قصد دارید خطاهای PHP را در سایت خود نمایش دهید باید مجددا فایل wp-config.php را ویرایش و کدهای قبلی را حذف کنید.

define(‘WP_DEBUG’, true);
define(‘WP_DEBUG_DISPLAY’, true);
پس از وارد کردن کدهای جدید، وردپرس خطاهای PHP را برای شما به نمایش در خواهد آورد.

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

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

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

۱. خطاهای PHP در وردپرس چیست؟

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

۲. چگونه خطاهای PHP را در وردپرس مخفی کنیم؟

با قرار دادن WP_DEBUG روی true و WP_DEBUG_DISPLAY روی false می‌توانید دیباگ را فعال نگه دارید، اما نمایش خطاها برای بازدیدکنندگان را غیرفعال کنید. برای ثبت خطاها نیز می‌توانید WP_DEBUG_LOG را روی true قرار دهید.

مطالب پیشنهادی

منوی سایت یکی از اولین بخش‌هایی است که کاربر هنگام ورود به یک وب‌سایت با آن روبه‌رو می‌شود. یک منوی مرتب و اصولی کمک می‌کند بازدیدکننده سریع‌تر مسیر موردنظرش را پیدا کند و بدون سردرگمی بین صفحات مختلف سایت جابه‌جا شود. در وردپرس، این بخش با نام فهرست‌ها شناخته می‌شود و امکانات مختلفی برای ساخت، […]

۲۰۲۶/۱۰/۰۴
۲۳

برای آموزش نصب داکر روی لینوکس، کافی است پیش‌نیازهای سیستم را بررسی کنید، مخزن رسمی Docker را اضافه و بسته‌های مورد نیاز را نصب کنید. در اوبونتو می‌توانید از مخزن رسمی APT استفاده کنید و در لینوکس مینت باید به نسخه پایه توزیع و سازگاری آن توجه داشته باشید. در ادامه این راهنمای آموزشی از […]

۲۰۲۶/۱۰/۰۳
۰

امنیت اطلاعات کاربران یکی از مهم‌ترین بخش‌های هر سایت است. در اتصال HTTP، داده‌ها بدون رمزگذاری منتقل می‌شوند و ممکن است در حملاتی مانند «مرد میانی» مشاهده یا دست‌کاری شوند. با فعال‌سازی SSL، ارتباط سایت به HTTPS منتقل شده و اطلاعات با امنیت بیشتری جابه‌جا می‌شوند. اما نصب SSL پایان کار نیست؛ پس از فعال‌سازی […]

۲۰۲۶/۱۰/۰۳
۰

اگر قصد دارید داکر را روی سیستم ویندوزی خود راه‌اندازی کنید، آشنایی با مراحل نصب و پیش‌نیازهای آن اولین قدم است. در این راهنما، روش نصب و راه‌اندازی داکر را برای نسخه‌های مختلف ویندوز ۱۰ و ۱۱، ویندوز ۷ و همچنین ویندوز سرور بررسی می‌کنیم.  در ادامه، پیش‌نیازهای نصب داکر، آموزش نصب داکر روی ویندوز […]

۲۰۲۶/۰۹/۲۹
۰

بزرگ‌ترین تفاوت SQL و MySQL در ماهیت آن‌ها خلاصه می‌شود؛ زبان SQL یک ساختار استاندارد برای صدور فرمان به پایگاه داده است، در حالی که برنامه MySQL یک نرم‌افزار رابطه‌ای به شمار می‌رود که این فرمان‌ها را روی دیسک ذخیره و پردازش می‌کند. خیلی از افراد تازه‌کار به دلیل شباهت اسمی، این دو عنوان را […]

۲۰۲۶/۰۹/۲۵
۰
۰ نظر

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