هر سیستم و وب سایتی فارغ از نوع آن ممکن است با انواع خطاها رو به رو شود. یکی از رایج ترین خطاهایی که در بین وب سایت ها دیده می شود خطای 503 Service Unavailable است. در این آموزش از وب داده قصد داریم تمام علل بروز این خطا به همراه روش های رفع آن را با هم بررسی کنیم.
- جلسه دوم آموزش رفع خطای 503 سایت
خطای 503 Service Unavailable
دلیل اصلی بروز خطای 503 Service Unavailable روشن نیست. واقعیت این است که این خطا می تواند بخاطر موارد متعددی ایجاد شود. علاوه بر این، پیکربندی سرور نیز در بروز آن تاثیر گذار است. برای مثال، خطای 503 می تواند به شکل های مختلفی مثل موارد زیر روی مرورگر نمایش داده شود:
503 Service Unavailable
Http/1.1 Service Unavailable
HTTP Server Error 503
503 Error
HTTP 503
HTTP Error 503
رفع خطای 503 Service Unavailable نسبتا آسان است. در این پست دقیقا به شما نشان می دهیم که چگونه آن را رفع کنید.
نکته: در این آموزش، نشان خواهیم داد که چگونه این هشدار را روی وب سایت های مبتنی بر وردپرس خطایابی و رفع کنید اما مراحل مشابه را می توان به هر CMS دلخواهی اعمال کرد.
علل بروز خطای 503 Service Unavailable در سایت
خطای 503 Service Unavailable ممکن است به دلالیل متعددی نمایش داده شود اما شایع ترین آن ها موارد زیر است:
- افزونه یا قالب هایی که در ماهیت خود باگ یا نقصی دارند.
- اسکریپت php ناسازگار
- منابع سرور ناکافی
- سرور
- حملات مخرب مانند DDoS
در ادامه راه حل های مختلفی برای رفع خطای 503 Service Unavailable تشریح خواهیم کرد.
افزونه های باگ دار
پلاگین های جعلی یا نال شده باعث بروز بسیاری از خطاهایی هستند که در WordPress یا سایر سیستم های مدیریت محتوا می بینید. در حقیقت، یک افزونه ناقص عامل اصلی بروزخطای 503 یا در دسترس نبودن سرویس در وردپرس و سایرسیستم ها است.
اگر پس از نصب یا به روز رسانی یک افزونه خاص با خطای 503 مواجه شدید، مطمئنا همین افزونه دلیل اصلی بروز خطا است. تنها کاری که باید انجام دهید این است که افزونه را حذف کرده یا آن را به نسخه قبلی دانگرید کنید. در صورت حذف می توانید از موارد مشابه با عملکرد یکسان کمک بگیرید. اما در اکثر موارد این خطا به ناگهان رخ می دهد و نمی دانیم که کدام افزونه باعث بروز آن شده در چنین مواقعی برای تشخیص افزونه ای که عامل خطاست، باید کل افزونه های فعال را در حالت غیر فعال قرار داد. اما مشکل اینجاست که شاید به داشبورد وردپرس دسترسی نداشته باشیم در چنیم موقعی چطور افزونه ها را غیر فعال کنیم؟ خیلی ساده با راه حل زیر. 🙂
غیر فعال کردن تمام افزونه های وردپرس
به وردپرس خود وارد شوید یا از طریق FTP یا فایل منیجر به هاست خود وارد شوید . در این آموزش، ما از یک برنامه FTP به نام FileZilla برای دسترسی به هاست استفاده خواهیم کرد :
به دایرکتوری ریشه که وردپرس در آن نصب شده رجوع کنید.
در داخل دایرکتوری وردپرس خود، پوشه wp-content را که افزونه ها، قالب ها و رسانه ها در آن قرار می گیرند رجوع کنید. بر روی پوشه افزونه های خود که plugins نام دارد است کلیک کرده و نام آن را به مورد دلخواه خود تغییر دهید.
این کار تمام افزونه ها را یک باره غیرفعال می کند. حالا وب سایت خود را دوباره بارگذاری کنید. اگر خطای 503 از بین رفته باشد، یک افزونه باعث بروز خطا در وب سایت شما شده است. اکنون باید به بخش افزونه ها مراجعه و افزونه مشکوک که شناسایی کرده اید را حذف کنید. بعد از آن مجددا به هاست خود بازگردید و نام پوشه پلاگین ها را مجددا به plugins تغییر دهید و بعد از آن از طریق مرورگر به صفحه داشبورد مدیریت وردپرس خود وارد شوید و افزونه های خود را یکی یکی فعال کنید.
هر بار که افزونه ای را فعال میکنید، سایت خود را دوباره چک کنید و ببینید آیا خطایی نمایش داده می شود یا خیر. این گونه می توانید افزونه های ناقص را بیابید تا در موارد بعدی باعث بروز خطا نشوند. هنگامی که یک افزونه خراب یا ناقص را پیدا می کنید، از طریق FTP وارد پوشه plugins خود شوید و آن را پاک کنید:
اگر غیرفعال کردن افزونه ها خطای 503 را حل نکند، باید مراحل بعدی را تست کنید. شاید مشکل از قالب سایتتان باشد.
کدهای PHP نامعتبر
در بعضی موارد، کدهای ثانیویه توسط سرویس های خارجی یا قطعه کدهای اضافه شده به سایت شما می تواند موجب بروز خطای 503 شود. اما سوال اینجاست که چگونه می توان تشخیص داد چه کدهای در وب سایت مشکل دارند و روی عملکرد وردپرس تاثیر منفی می گذارن؟ باید در مواقعی که سایت مشکلی ندارد و به صورت عادی عملکرد خوبی دارد از یک افزونه اشکال زدایی مثل Query Monitor یا Debug Bar استفاده کرد و یک گزارش کلی گرفت.
فعال کردن حالت خطایابی WP_DEBUG
در اغلب موارد بروز خطای 503 موجب قفل شدن وب سایت یا عدم دسترسی به پیشخوان وردپرس خواهد شد. یا حتی هیچ سرنخی از دلیل بروز آن در دسترس نیست. در چنین شرایطی می توانیم از امکانات وردپرس مثل خطایابی WP_DEBUG
و WP_DEBUG_LOG
، WP_DEBUG_DISPLAY
و @ini_set
در وردپرس استفاده کنیم. برای فعال کردن حالت خطایابی یا دیباگ وردپرس جهت نمایش پیغام های خطا و دلیل بروز آن ها مراحل زیر را دنبال کنید:
- پوشه ریشه وردپرس خود را از طریق FTP یا فایل منیجر هاست باز کنید.
- فایل wp-config.php را باز کنید.
- در پایین فایل جایی که WP_DEBUG تعریف شده رجوع کنید. در حالت پیش فرض خطی مشابه
define ('WP_DEBUG', false);
در فایل وجود دارد. که باید مقدار آن را تغییر داد. در صورتی که این عبارت وجود نداشت آن را به صورتی دستی در بالای خط/*That's all, stop editing! Happy blogging.*/ /*That's all, stop editing! Happy blogging.*/
اضافه کنید. - کد های سحر آمیز DEBUG را وارد کنید. در این مرحله قطعه کد define (‘WP_DEBUG’, false); را همراه با عبارت های زیر تغییر دهید:
define ('WP_DEBUG', true); define ('WP_DEBUG_LOG', true); define ('WP_DEBUG_DISPLAY', false); @ini_set ('display_errors', 0);
در نهایت تغییرات خود را ذخیره کنید.
اکنون، سایت خود را مجددا بارگذاری کنید تا خطای 503 که داشتید نمایش داده شود. سپس به پوشه ریشه وردپرس و دایرکتوری wp-content خود خود مراجعه کرده و فایلی به نام debug.log را بیابید. این فایل حاوی تمام خطاهای وب سایت شما است. اگر خطای 503 به خاطر مشکلات php یا کدهای سفارشی رخ داده باشد در فایل debug.log گزارش کامل به همراه نحوه رفع آن را مشاهده خواهید کرد. با حذف یا جیگزینی قطعه کد مشکل سازی خطای 503 نیز باید رفع گردد. در صورتی که این راه حل هم پاسخگوی مشکل شما نبود تنظیمات سرور و منابع خود را چک کنید.
ادامه دارد…