ارور 503 پیامی آزاردهنده برای کاربران اینترنتی است که توضیحی برای آن از سمت سایت داده نمیشود. بههمیندلیل کاربران بهسرعت سایت را بسته و بهسراغ سایت دیگری میروند. این خطا نشان میدهد که درحالحاضر، سرور قادر به پاسخگویی به درخواست شما و دیگر کاربران نیست.
اما موضوع باید به همینجا ختم شود و ما هم سایت را ترک کنیم؟ خیر. پس اجازه دهید با هم به بررسی جواب «ارور 503 چیست» بپردازیم و در ادامه دلایل بروز خطای 503 را بشماریم. سپس بهسراغ نحوه رفع ارور 503 برویم و راهکارهای جامعمان را برای مدیران سایت تشریح کنیم.
ارور 503 چیست؟
ارور 503 معروف به «خطای در دسترس نبودن سرویس» یا “Service Unavailable”، ازجمله انواع خطاهای HTTP است. این پیغام نشان میدهد که وبسایت یا وباپلیکیشن بهطور موقت قادر به رسیدگی به درخواست شما و سایر کاربران نیست.
4 مورد از دلایل بروز خطای 503
دلایل بروز خطای 503 به شرح زیر هستند:
1. اضافه بار سرور
هاست یا سرور سایت (فرق هاست و سرور) برای پردازش درخواست شما و کاربران دیگر توانایی و ظرفیت کافی را ندارد؛ چون درحال پردازش دیگر وظایف است.
همچنین شما میتوانید در مقالات ” هاست چیست؟” اطلاعات دقیق تری در باره هاست و در مقاله ” سرور چیست؟ ” اطلاعاتی جامع درباره سرور و انواع آن بدست اورید.
2. تعمیر و نگهداری برنامهریزیشده
ممکن است مدیر سایت حالت Scheduled Maintenance را فعال کرده باشد تا سایت در زمان مقرر، بهروزرسانی شود.
بیشتر بخوانید: ارور ۴۰۴ چیست ؟ چگونه میتوانیم ارور ۴۰۴ را رفع کنیم؟
3. مشکلات فنی
گاهی ارور 503 با بروز مشکلات موقتی در زیرساخت وبسایت بهوجود میآید؛ مانند قطع شدن شبکه یا نقص نرمافزار سرور.
در اصل، خطای 503 به این معنی است که سرور از درخواست شما آگاه است اما در حال حاضر قادر به انجام آن نیست.
4. حملات سایبری
علت بروز این خطا میتواند حملات رایج شبکه مانند حمله DDoS باشد. در این حمله، درخواستهای بسیار زیادی بهسمت سرور هجوم آورده و آن را از دسترس خارج میکنند.
10 روش برای رفع ارور 503
ازآنجاییکه در اغلب سناریوها نمیتوانید با اطمینان علت ارور 503 را کشف کنید، باید روشهای کاربردی عیبیابی را بهکار بگیرید. هرکدام از شش بخش زیر یک راهحل بالقوه را با هدف حلوفصل دلایل بروز خطای 503 را پوشش میدهند که میتوانید در چنین مواقعی استفاده کنید.
پس از اجرای هر مرحله، به وبسایت خود بازگردید و رفع شدن یا نشدن این خطا را چک کنید. اگر ارور برطرف شد، کار دیگری نخواهید داشت؛ اما درغیراینصورت، باید مرحله بعدی را اجرا کنید.
1. غیرفعال کردن افزونهها بهشکل موقت
یکی از رایجترین دلایل ارور 503 در انواع سیستم مدیریت محتوا، مشکلات سازگاری افزونهها بهخصوص افزونه های وردپرس است. برای ردیابی این موضوع و تشخیص عدم سازگاری افزونه با سرور، باید همه افزونههای سایتتان را برای مدت کوتاهی غیرفعال کنید.
ازآنجاییکه خطای 503 مانع از دسترسی شما به بخش مدیریت سایت میشود، باید از یک سرویسگیرنده FTP استفاده کنید. وقتی به کلاینت FTP دسترسی پیدا کردید، به وبسایتتان متصل شوید و به پوشه root کدهای منبع بروید.
بهطورمعمول این پوشه در مسیرهای public_html، html، public، www یا نام سایتتان قرار دارد. اگر از ساب دامین استفاده میکنید، ابتدا به دامنه اصلی و سپس زیردامنه خودتان مراجعه کنید.
حال پوشه را باز کرده و به دایرکتوری wp-content بروید. درون این دایرکتوری، پوشهای بهنام “Plugins” را خواهید دید که شامل زیرشاخههای جداگانه برای هر یک از افزونههای نصبشده سایتتان (اعم از فعال و غیرفعال) است.
کاری که باید در این لحظه انجام دهید این است که روی پوشه Plugins کلیک راست کرده و نام آن را به اسم دیگری تغییر دهید. ما plugins.old یا plugins.deactivated را توصیه میکنیم تا در مراحل بعدی بهراحتی آن را تشخیص دهیم.
با این تغییر نام، وردپرس دیگر قادر به پیدا کردن افزونههای سایتتان نخواهد بود. بنابراین آنها را بهطور خودکار غیرفعال میکند.
حال به پنل ادمین یا داشبورد وردپرستان وارد شوید. اگر خطای 503 از بین رفته باشد، احتمال آنکه یکی از پلاگینها مسبب این ارور بوده باشد، بسیار بالا است.
پس باید در ادامه، پلاگینهای خود را بررسی و افزونه مخرب را شناسایی و حذف کنید. میتوانید به مسیر “wp-content/plugins” بروید، پوشه هر افزونه را پیدا و مراحل زیر را دنبال کنید:
- با اولین پوشه شروع کنید و نام آن را به هر چیزی که دوست دارید – مطابق روش همین قسمت از مقاله – تغییر دهید؛
- با غیرفعال کردن هر افزونه، یکبار وبسایتتان را بررسی کنید تا برطرف شدن خطا یا پابرجا ماندن آن را بسنجید؛
- اگر این افزونه باعث بروز ارور 503 نشده بود، به پوشه پلاگین از مرحله قبل بازگردید و نام اصلی آن را بنویسید؛
- با تکرار مراحل بالا به پلاگین بعدی در لیست خود بروید.
بیشتر بخوانید: آموزش رفع خطای DNS Probe Finished Bad Secure Config
2. غیرفعال کردن قالب سایت
اگر به این مرحله رسیدید، یعنی پلاگین خاصی عامل بروز این خطا نبوده است. پس باید اینبار دستبهدامن قالبها (Themes) شوید.
متاسفانه، روند غیرفعال کردن پلاگینها برای تمها جواب نمیدهد؛ چون با پیغامهای “The theme directory “theme name” does not exist” و “The themes directory is either empty or doesn’t exist. Please check your installation.” مواجه خواهید شد.
بنابراین، باید با ورود به phpMyAdmin به پایگاه داده وردپرس خود دسترسی پیدا کنید. پس از ورود به phpMyAdmin، روی جدول “wp_options” کلیک کنید، سپس به زبانه “Search” بروید و روبهروی کادر “option_name”، عبارت “template” را بنویسید.
در زیر ستون “option_value” نام تم فعلی سایتتان را خواهید دید. نام آن را به یک نام دیگر، مانند “twentynineteen” تغییر دهید.
وبسایت را Refresh کنید تا ببینید آیا ارور 503 برطرف شده است یا خیر. اگر این روش کار کرد، یعنی تم فعلی سایتتان مشکلاتی در کدهای منبع یا سازگاری با سرور دارد که باید آن را مجدد نصب کنید یا نسخه پشتیبان را بازگردانید.
بیشتر بخوانید: ارور ۴۰۳ چیست؟ بههمراه 14 روش رفع خطای 403 Forbidden
3. محدود کردن API در WordPress Heartbeat
WordPress Heartbeat یک API تعبیهشده در کد منبع وردپرس است. این سیستم مدیریت محتوا از Heartbeat برای ذخیره خودکار محتوا، نمایش اعلانهای افزونه و کار کردن سایر افراد روی یک محتوا استفاده میکند.
درست مانند ضربان قلب معمولی، API در پسزمینه با فرکانس بالا کار میکند تا جزئیات CMS را از دست ندهد. همانطور که متوجه شدید، این API منابع سرور را مصرف میکند.
بهطورمعمول چنین فرآیندی مشکلساز نیست؛ اما در برخی موارد، اگر سرور منابع کافی برای بارگذاری محتوا و مدیریت آنها را نداشته باشد، ممکن است ارور 503 رخ دهد.
سریعترین راه برای تعیین اینکه آیا Heartbeat API در مرکز مشکلات سایتتان قرار دارد یا خیر، غیرفعال کردن موقت آن است.
برای انجام این کار، یک بار دیگر از FTP به وبسایت وردپرستان وصل شوید و پوشه تمهای فعلی سایتتان را باز کنید. سپس فایل functions.php را داخل این پوشه بهشکل زیر جستوجو کنید:
- روی فایل کلیک راست و گزینه View/Edit را انتخاب کنید. این حالت در ویرایشگر محلی متن وردپرس باز میشود. پس از باز شدن آن، قطعه کد زیر را به آن اضافه کنید:
فایل functions.php در وردپرس
;add_action( 'init', 'stop_heartbeat', 1 ) } function stop_heartbeat() ;wp_deregister_script('heartbeat') {
heartbeatcode
این سه خط کد به وردپرس میگویند که Heartbeat API را غیرفعال کند. تغییرات را در فایل functions.php ذخیره کنید، آن را ببندید و دوباره به وبسایتتان بازگردید.
اگر ارور 503 برطرف شد، متوجه میشویم که مشکل از API بوده است. بااینحال، غیرفعال کردن Heartbeat API عملکردهای مفید وردپرس را حذف میکند. در عوض توصیه میکنیم که Heartbeat را به حالت «slow down» دربیاورید تا هم به عملکردش ادامه دهد و هم باعث بروز مشکل در سرور نشود.
سادهترین راه برای انجام این کار، نصب پلاگین “Heartbeat Control” است. افزونه را فعال کنید و به بخش Settings > Heartbeat Control بروید. بهدنبال گزینههای “Modify Heartbeat” بگردید و مقدار “frequency” را مانند شکل زیر، به کمترین عدد ممکن کاهش دهید:
تغییرات را در بخش Settings این قسمت ذخیره کنید و به فایل functions.php بازگردید. برای اینکه تغییرات بالا اجرا شوند، باید رشته کدی را که پیشتر اضافه کردید را حذف کنید و تغییرات جدید را در فایل موجود ذخیره کنید.
در این مرحله، اگر مشکل از Heartbeat API باشد، خطای 503 برطرف میشود.
4. افزایش منابع سرور
اگر خطای 503 با وجود تمام تلاشهای شما برای رفع آن هنوز هم رخ میدهد، بهاحتمالزیاد ناشی از کمبود منابع سرور است. پس باید منابع هاست خود را ارتقا دهید تا ببینید آیا این مشکل را برطرف میکند یا خیر.
این موضوع زمانی مهمتر میشود که درحال استفاده از هاستهای ارزان یا رایگان وردپرس هستید؛ چون در این هاستها، کمترین منابع سختافزاری و نرمافزاری در اختیار کاربران قرار میگیرد.
5. مرور گزارشهای سرور و فعالسازی WP_DEBUG
استفاده از فایل Log سرور در این مرحله ممکن است کارساز باشد. این کار به شما کمک میکند تا بهسرعت مشکل را شناسایی کنید؛ بهخصوص اگر ناشی از یک افزونه در سایتتان باشد.
اگر هاستتان ابزار گزارشگیری یا “Logging” ندارد، میتوانید کد زیر را به فایل wp-config.php خود اضافه کنید تا لاگ فعال شود:
فایل wp-config.php
;define( 'WP_DEBUG', true) ;define( 'WP_DEBUG_LOG', true) ;define( 'WP_DEBUG_DISPLAY', false)
بهطورمعمول لاگها در پوشه /wp-content قرار دارند. پس داخل این فایل را بگردید تا فایلی بهنام “debug.log” را پیدا کنید.
در سایر هاستها ممکن است این پوشه در دایرکتوری “logs” باشد.
تفسیر گزارش فایل debug log ممکن است کمی ترسناک بهنظر برسد؛ اما خواندنش آنقدرها هم که تصور میکنید سخت نیست. بهطورخلاصه، فایل log شامل هر خطایی است که به ترتیب زمانی در سایت شما ظاهر میشود. این جزئیات نشان میدهد که کدام فایل باعث کدام خطا شده است و کدام خطوط کد را در این اشکالات درگیر کردهاند.
نکته: در فایل log ارجاع مستقیم به ارور 503 را پیدا نخواهید کرد. این گزارش با نشان دادن فایلهایی که باعث ایجاد مشکل شدند، شما را در مسیر درست راهنمایی میکند.
بررسی فایلهای گزارش در وب سرور آپاچی و Nginx در مسیر زیر ممکن است:
- Apache: /var/log/apache2/error.log
- Nginx: /var/log/nginx/error.log
6. بررسی خطاهای Fatal در کد PHP سایت وردپرس
اگر ارور 503 بهدلیل یک خطای Fatal در PHP نمایش داده میشود، میتوانید گزارش خطای PHP را فعال کنید. برای انجام این کار ساده، کد زیر را به فایل ارسال خطا بیفزایید. بهطورمعمول میتوانید فایل را در تب کنسول Google Chrome DevTools محدود کنید.
فایل PHP کد منبع وردپرس
;ini_set('display_errors', 1) ;ini_set('display_startup_errors', 1) ;error_reporting(E_ALL)
fatalphp
در صورت نیاز هم میتوانید فایل php.ini خود را با موارد زیر تغییر دهید:
فایل PHP کد منبع وردپرس
display_errors = on
7. غیرفعال کردن موقت CDN
گاهی اوقات، ارور 503 نه بهدلیل مشکل در وبسایت شما، بلکه بهخاطر شبکه تحویل محتوا (CDN) که استفاده میکنید ظاهر میشود. اگر از CDN استفاده میکنید، یک راه سریع برای فهمیدن مشکلساز بودن آن، غیرفعال کردن موقت است.
هر CDN ویژگیهایی را برای متوقف کردن دارد. بسته به اینکه از کدام CDN استفاده میکنید، فرآیند غیرفعال کردن متفاوت است. همچنین Cloudflare به ایجاد خطاهای 503 گاهوبیگاه مشهور است. پس اگر از این CDN استفاده میکنید، غیرفعال کردن موقت راهحل خوبی بهنظر میرسد.
اگر گزینه توقف موقت CDN را پیدا نکردید، از بخش پشتیبانی کمک بگیرید و دستورالعملها را موبهمو اجرا کنید.
بیشتر بخوانید: راهنمای گام به گام نحوه ایجاد CDN با DNS
8. بررسی وضعیت Maintenance سرور
بررسی وضعیت Maintenance سرور یکی از راههای خوب برای رفع ارور 503 است؛ چون ممکن است شرکت ارائهدهنده خدمات هاستینگ، پیش از اطلاعرسانی اقدام به انجام این کار کرده باشد.
9. متوقف کردن فرآیندهای درحال اجرا
سرورهای وب در صورت دریافت درخواستهای زیاد و بیشاز ظرفیت عادیشان، دچار کاهش عملکرد یا رخ دادن ارور 503 میشوند؛ چون این حجم کاری پهنای باند را فلج میکند و ممکن است منجربه قطعی ارتباط سرور با شبکه شود.
در این شرایط بهترین راهحل، پایان دادن به فرآیندهای درحال اجرا است. این کار بار را از روی سرور برمیدارد تا بتواند وظایف را بهترتیب صف اجرا کند.
10. بررسی پیکربندی DNS
مشکلات DNS چیست؟ اغلب مسئول بروز ناگهانی خطای 503 هستند. اگر سروری پاسخگو نباشد یا آدرسهای IP تبدیلنشده داشته باشد، این اتفاق بهوفور رخ میدهد. پاکسازی فایلهای DNS و Restart سرور میتواند به یک نتیجه مثبت ختم شود.
آنچه در ارور 503 خواندیم
اگر خوششانس باشید، ارور 503 را تنها زمانی میبینید که سایتتان توسط خودتان یا شرکت ارائهدهنده هاست، در حالت Maintenance قرار داده شود. بااینحال، اگر بدون هیچ پیام یا هشدار قبلی این ارور را مشاهده کردید، باید آستینها را بالا بزنید و شروع به عیبیابی کنید. غیرفعال کردن موقت افزونههای وردپرس و تمها، محدود کردن عملکرد Heartbeat API و افزایش منابع سرور، سه راهکار مفید در این زمان هستند.
حال میخواهیم تجربه و دانش شما را بدانیم. آیا تابهحال با خطای HTTP 503 مواجه شدهاید؟ برای رفع آن چه کاری انجام دادید که در این لیست قرار ندارد؟ کدام راهکارها با همان تلاش اول بهثمر نشستند؟ ما در بخش نظرات همین پست، میزبان دیدگاه و تجربه شما هستیم.
سوالات متداولی که شما میپرسید
- ارور 503 چیست؟
اروری از سمت سرور که نشان میدهد درحالحاضر قادر به پردازش و دسترسیپذیری نیست.
- دلایل بروز ارور 503 چه چیزهایی هستند؟
بارهای کاری زیاد روی سرور، مشکلات فنی، حملات سایبری و حالت Maintenance زمانبندیشده از دلایل بروز ارور 503 هستند.
- نحوه رفع ارور 503 چگونه است؟
غیرفعال کردن تم، افزونه، CDN و بررسی وضعیت Maintenance سایت ازجمله راههای رفع ارور 503 هستند.
منابع: