خطای 503 Service Unavailable از جمله خطاهای آزاردهنده برای توسعه دهندگان وب به خصوص کاربران تازه کار است، زیرا در متن خود هیچ توضیحی ارائه نمیدهد تا کاربر متوجه علت بروز خطا شود.
در این نوشته قصد داریم علل و نحوه برطرف کردن این خطا را در وردپرس با هم بررسی کنیم:
علل بروز خطای 503 Service Unavailable :
به طور کلی این خطا زمانی رخ میدهد که وب سرور نتواند پاسخ مناسب را از یک اسکریپت PHP دریافت کند. این اسکریپت میتواند به یک پوسته ، افزونه و یا کدهای سفارشی PHP مربوط باشد.
شرکت های ارائه دهنده هاست مخصوص وردپرس (مثل شرکت میزبان فا) منابع مورد نیاز برای اجرای کدهای وردپرس را در اختیار کاربران خود قرار میدهند و این خطا غالبا در سایت هایی مشاهده میشود که از هاست اشتراکی استفاده میکنند.
به طور کلی میتوان علل بروز این خطا را به شکل زیر دسته بندی کرد:
- تم ها یا پلاگین هایی ک دارای کدهای معیوب هستند.
- خطای مربوط به اسکریپت های سفارشی که به سایت اضافه شده اند.
- منابع ناکافی از طرف سرور.
- بروز خطا و یا اشکال در سرور.
- حملاتی مثل DDOS به سایت که باعث از بین رفتن منابع سایت می شوند.
چگونگی برطرف کردن خطا:
در صورتی که خطا متوجه کدهای خطا در وب سایت ما باشد،باید تمام اسکریپت های PHP را یکی پس از دیگری غیر فعال کنیم تا منبع خطا را پیدا کنیم.
غیرفعال سازی افزونه ها:
از طریق File Manager:
در صورتی که قادر به ورود به پیشخوان وردپرس خود نیستید از طریق سی پنل وارد File Manager شوید.سپس وارد پوشه /wp-content/ شوید و نام پوشه Plugins خود را به Plugins-old تغییر دهید.حال برای عملکرد صحیح وردپرس باید یک پوشه جدید به نام Plugins ایجاد کنید.
با این اقدامات تمام افزونه های وردپرس خود را غیر فعال و از دسترس وردپرس خارج کرده اید.در صورتی که دیگر با این خطا مواجه نشدید،دلیل بروز خطا یکی از افزونه های نصب شده روی سایت بوده است.
برای بررسی اینکه کدام افزونه باعث بروز خطا شده است پوشه Plugins ای که ایجاد کردیم را حذف میکنیم و نام Plugins-old را به Plugins تغییر میدهیم.در این حالت تمام افزونه ها در پیشخوان وردپرس در دسترس خواهند بود ولی همچنان غیر فعال هستند.
با وارد شدن به صفحه ی افزونه های وردپرس، یکی یکی افزونه ها را فعال میکنیم و این کار را تا زمانی ادامه میدهیم که فعال سازی یکی از افزونه ها موجب بروز مجدد خطای 503 Service Unavailable شود. در این حالت باید افزونه ی فوق به طور کامل حذف شده و با افزونه ی مناسب دیگری جایگزین شود.( در صورتی که پس از فعال سازی افزونه قادر به دسترسی به پیشخوان خود نبودید از طریق File Manager وارد پوشه Plugins شوید و پوشه افزونه ی مدنظر را حذف کنید.)
از طریق پیشخوان وردپرس:
در صورتی که به پیشخوان وردپرس دسترسی دارید وارد صفحه ی افزونه ها شوید.تمام افزونه های نصب شده را انتخاب کرده و با زدن روی کارهای دسته جمعی و انتخاب “غیر فعال کردن” ،غیر فعال کنید.
سپس مطابق روند بالا افزونه ها را یکی یکی فعال کنید تا افزونه ای که باعث بروز خطا شده است را بیابید. در این حالت باید افزونه ی فوق را به طور کامل حذف و با افزونه ی مناسب دیگری جایگزین کنید.
استفاده از پوسته های پیشفرض وردپرس:
در صورتی که با بررسی افزونه ها مشکل برطرف نشد پوسته مورد استفاده را بررسی خواهیم کرد.اگر به پیشخوان وردپرس دسترسی دارید به سادگی میتوانید با مراجعه به صفحه پوسته ها یکی از پوسته های پیش فرض وردپرس(دو هزارو نوزده ، دو هزارو هفده و…) را نصب و فعال سازی کنید.
تغییر پوسته با استفاده از File Manager:
برای این منظور از طریق سی پنل وارد File Manager شده و وارد مسیر /wp-content/themes میشویم.در این آدرس،پوشه تم فعال خود را انتخاب میکنیم و نام آن را به تغییر میدهیم.در صورتی که یکی از تم های پیشفرض وردپرس نصب شده باشد به صورت خودکار آن پوسته فعال خواهد شد،در غیر این صورت میتوانید یکی از پوسته های دو هزارو نوزده ، دو هزارو هفده را دانلود کنید و آن ها را در این پوشه بارگذاری کنید تا فعال شود.
در صورتی که خطای 503 Service Unavailable برطرف شود ایراد از پوسته ی فعال شما بوده است و باید آن را با پوسته ی مناسب دیگری جایگزین کنید، و در غیر این صورت می توانید با مراجعه مجدد به File Manager نام پوشه ی پوسته ی خود را به حالت قبل بازگردانید.
خطای مربوط به اسکریپت های سفارشی که به سایت اضافه شده اند:
گاهی اوقات کدهایی که به وسیله سرویس های خارجی سایت به آن اضافه شده اند و یا کد های سفارشی که خودمان به سایت اضافه کرده ایم باعث بروز خطای 503 Service Unavailable میشوند.در این حالت برای رفع خطا باید مود Debug را در وردپرس فعال کنیم.
برای اینکار از طریق File Manager فایل Wp-config.php وردپرس را باز میکنیم و درست بالای خط /*That’s all, stop editing! Happy blogging.*/ این کد را وارد میکنیم:
define('WP_DEBUG', true);
در این حالت با بارگذاری مجدد قسمتی که با خطای 503 Service Unavailable مواجه شده است میتوانیم منبع خطا را یافته و برای اصلاح آن اقدام کنیم.
مشکلات سمت سرور:
در صورتی که روش های فوق علت خطا را شناسایی و برطرف نکرد ایراد از سمت سرور شما خواهد بود.گاهی اوقات به دلیل استفاده بیش از حد از منابع سرور در یک زمان مشخص یا به دلیل حملاتی مثل DDos که باعث از بین رفتن منابع سرور میشوند،سرور قادر به پاسخگویی به درخواست شما نخواهد بود و این پیغام خطا را مشاهده میکنید.
معمولا در صورتی که بر اثر استفاده بیش از اندازه از سرور این خطا پدید آمده باشد بعد از گذشت زمان خطا برطرف خواهد شد،اما در صورتی که حل نشود مشکل از سرور شماست و باید با پشتیبانی سرویس دهنده هاست خود تماس بگیرید و خواهان رفع مشکل شوید.
بیشتر بخوانید : آموزش رفع خطای 500 سرور