خطا 503 Service Unavailable

خطا ۵۰۳ Service Unavailable زمانی رخ می دهد که سروری که سایت شما یا سایتی که مشاهده میکنید در آن نگهداری می شود دارای مشکل در منابع است.

خطا 503 Service Unavailable
خطا 503 Service Unavailable

وقتی تعداد درخواستها بیشتر از حد منابع سرور باشد ، سرور توانایی رسیدگی به درخواسهای جدید را ندارد.
کمبود میزان منابع CPU و یا RAM و یا عدم ارائه مجوز استفاده بیشتر از process و threads ها به کاربران در سرور به جهت انجام پروسه های درخواستی یکی دیگر از دلایل بروز این خطا در هنگام مشاهده سایت می باشد.

دلیل اتفاق افتادن خطای 503 Service Unavailable

از لحاظ فنی، خطای 503 Service Unavailable وقتی اتفاق می افتد که پردازش فایل های PHP در هنگام اجرای اسکریپت ناتمام مانده یا اصطلاحا crash میکند. در این حالت آپاچی یا به طور کلی وب سرور شما، پاسخ معتبری از PHP دریافت نکرده و فرض میکند که سرویس PHP-FPM در دسترس نیست.

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

خطای 503 گرچه پیام واحدی را به کاربر اعلام میکند ولی ممکن است در سیستم های مختلف به شکل های مختلفی خود را به نمایش بگذارد. برخی حالات خطای 503 را در زیر مشاهده میکنید :

503 Service Unavailable
503 Service Temporarily Unavailable
Http/1.1 Service Unavailable
HTTP Server Error 503
Service Unavailable – DNS Failure
503 Error
HTTP 503
HTTP Error 503
Error 503 Service Unavailable

رفع خطای 503 Service Unavailable
اولین چیزی که باید مد نظر داشته باشید

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

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

اما بجز این حالت، حالات دیگری هم وجود دارد. خصوصا اگر اخیرا اقدام به نصب افزونه ای جدید یا بروزرسانی یکی از افزونه های سایتتان کرده اید و یا قالب سایتتان را تغییر داده باشید (یا هر نوع سفارشی سازی و تغییر دیگر)، احتمال اینکه مشکلی در کدنویسی یکی از افزونه ها یا قالب سایتتان وجود داشته باشد بسیار زیاد است.
غیر فعال کردن افزونه ها

همانطور که اشاره کردیم، یکی از دلایل بروز خطای 503 Service Unavailable میتواند استفاده از افزونه های معیوب و غیر بهینه باشد. اگر میدانید که دقیقا پس از نصب چه افزونه ای، این مشکل در سایت شما ایجاد شده است که بسیار عالی! میتوانید بلافاصله به سراغ همان افزونه رفته و آن را از سایت خود حذف کنید ولی در صورتی که تغییرات زیادی در سایت اعمال کرده اید و از اینکه کدام افزونه باعث بروز مشکل در سایت شما شده مطمئن نیستید، لازم است که ابتدا همه افزونه های نصب شده در سایت را غیر فعال کنید. (پیش از ادامه دادن مطالعه و انجام مراحل فوق، توصیه میکنیم که از وبسایت خود یک بکاپ کامل تهیه کنید) برای غیر فعال کردن همه افزونه ها کافی است به شکل زیر عمل کنید :

توجه داشته باشید که اگر افزونه ای برای حالت تعمیر (maintenance) در سایتتان نصب کرده باشید ممکن است نمایش خطای 503 به علت فعال بودن این افزونه اتفاق افتاده باشد. (خصوصا اگر خطا فقط در سمت کاربری سایت اتفاق می افتد) بنابراین پیش از هر کاری این مسئله را بررسی کرده و در صورتی که چنین افزونه ای در سایتتان موجود بود، آن را غیر فعال و حذف کنید. در غیر این صورت برای غیر فعال کردن همه افزونه ها مراحل بعدی را دنبال کنید.
ابتدا با استفاده از FTP یا با مراجعه به فایل منیجر هاستتان به فولدر wp-content مراجعه کنید. فولدر plugins را یافته و نام آن را به نام جدیدی تغییر دهید. مثلا plugins-backup
فولدر دیگری با نام plugins در همین محل ایجاد کنید.
مجددا به بخشی که خطای 503 در آن رخ داده مراجعه کنید و بررسی کنید که خطا برطرف شده است یا خیر.

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

مجددا با استفاده از فایل منجر یا کلاینت FTP به فولدر wp-contents مراجعه کنید.
فولدر plugins را که قبلا ایجاد کرده بودید، از هاست خود حذف کنید.
فولدر اصلی پلاگین ها را که تغییر نام داده بودید به حالت اولیه خود بازگردانید. مثلا اگر نام آن را به plugins-backup تغییر داده اید، نام آن را ویرایش کرده و مجددا به plugins تغییر دهید.
حالا به ناحیه مدیریت وردپرس مراجعه کرده و یک به یک شروع به فعال کردن افزونه ها کنید.

در اینجا پس از فعال کردن هر افزونه باید یک بار سایت را بررسی کنید و از عدم وجود خطای 503 اطمینان حاصل کنید. این عمل را تا جایی ادامه دهید که خطا مجددا در سایت ظاهر شود. در این حالت به آسانی میتوانید افزونه ای که منجر به بروز خطا در سایت شما شده را شناسایی کرده و آن را از سایت خود حذف کنید.

اگر این روش به شما در برطرف کردن خطای 503 Service Unavailable کمکی نکرد، به سراغ روش بعد بروید.
استفاده از یکی از قالب های پیشفرض وردپرس

خوب، حالا که به این مرحله رسیده اید یعنی در روش قبلی متوجه شده اید که مشکل سایت از افزونه ها سرچشمه نمیگیرد. در این مرحله لازم است که قالب فعلی سایت خود را غیر فعال کنید. برای این کار میتوانید به شکل زیر عمل کنید :

وارد فایل منیجر هاست خود شده و یا از طریق FTP به هاست متصل شوید.
به فولدر wp-content/themes مراجعه کنید.
قالب فعلی سایتتان را یافته و آن را روی کامپیوتر خود دانلود کنید. پس از دانلود کردن قالب میتوانید آن را از هاست حذف کنید. البته بجای انجام این کار میتوانید نام فولدر قالب را تغییر دهید و یا برای دقایقی آن را به حالت فشرده در بیاورید و سپس اقدام به حذف فولدر قالب کنید.

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

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

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

اگر از روش های بالا نتیجه ای حاصل نشد، خونسرد باشید. ابتدا در صورت امکان لاگ های خطای php را با دقت بررسی کنید.

در ادامه در صورتی که از لاگ های خطا نیز اطلاعات مفیدی کسب نشد، مراحلی که طی کرده اید را با پشتیبان هاستینگ خود در میان بگذارید و با آنها مشورت کنید. شاید آنها بتوانند در زمینه یافتن منشا این مشکل به شما کمک کنند. (و این را هم فراموش نکنید که اگر نیاز به کمک دارید، رفتار طلبکارانه به هیچ کس کمکی نخواهد کرد. بنابراین با روی خوش و با رفتاری حرفه ای مشکل خود را مطرح نمایید)

و در آخر، اگر از همه جا ناامید شدید و به نظر میرسید که دیگر هیچ راهی باقی نمانده است … از هاست خود یک بکاپ کامل تهیه کنید. کلیه اطلاعات موجود در وردپرس را برون ریزی کنید. فولدر wp-content خود را دانلود کنید. وردپرس را مجددا بر روی هاست نصب کرده و سپس با استفاده از اطلاعات برون ریزی شده و فولدر wp-content که از پیش، از آن بکاپ گرفته بودید، سایتتان را مجددا سر پا کنید.

امیدواریم که کار شما به مرحله آخر نکشد و بتوانید با همان دو مرحله اصلی (یا شاید 2.5 مرحله!) از دست این خطای آزار دهنده خلاص شوید.