ارور 503 چیست؟ چطور خطای 503 در وردپرس را رفع کنیم؟
در گروه خطاهای 5XX که سمت سرور بوده یا به دلیل ایجاد اختلال در برنامه نویسی وردپرس و سایت رخ میدهند، ارور 503 یکی دیگر از خطاهای رایجی است که در وردپرس هم زیاد با آن سر و کار داریم. این خطا هم مانند خطای 500 است با این تفاوت که بیشتر از سمت برنامه نویسی رخ میدهد و به دلیل خطاهایی که در کدهای افزونه، قالب وردپرس یا تغییراتی که ممکن است به هر دلیلی در هسته وردپرس رخ دهد ایجاد میشود که در نهایت با پیغام خطایی مثل 503 service unavailable مواجه خواهیم شد.
مثل دیگر خطاهای گروه پانصد، وقتی این خطا در سایت رخ میدهد و موتورهای جستجو در همین لحظه که خطا وجود دارد وارد سایت شما برای خزش صفحات شوند، سریعا گزارشی را در گوگل سرچ کنسول دریافت میکنید که برای رفع آن میتوانید به کمک مقاله جامعی که با عنوان رفع خطاهای coverage issue گوگل سرچ کنسول تهیه کردم مشکل را برطرف کنید.
حالا در ادامه این مقاله میخواهم به بررسی ارور 503 در وردپرس پرداخته و روشهای گوناگونی که برای رفع این خطا وجود دارد را به شما آموزش دهم. اولویت بندی که برای راهکارها ارائه میکنم بر اساس بیشترین دلایلی است که میتواند باعث ایجاد ارور service unavailable در وردپرس شود. بنابراین سعی کنید به ترتیب هر یک از راهکارها را برای رفع مشکل تست کنید.
دلایل رخ دادن خطای ۵۰۳ در وردپرس چیست؟
همه شرکتهای ارائه دهنده خدمات هاست وردپرس مقادیر ثابتی از منابع را برای هر حساب میزبانی اختصاص میدهند. به زبان سادهتر هاست وردپرس هم به نوعی هاست اشتراکی است که روی سرور چند سایت مشترک قرار داشته و هر کدام به مقدار معینی از منابع CPU و رم دسترسی دارند. بنابراین در سایتی که روی یک هاست اشتراکی میزبانی میشود نمیتوان میزان زیادی از منابع سرور را استفاده کرد.
گاهی اوقات پیش میآید که اصلا هیچ خطایی در کدنویسی سایت شما وجود ندارد و اخیرا هم آپدیتی در اسکریپت سایت یا حتی کانفیگ سرور رخ نداده است. اما چون منابع محدودی در دسترس است یک باره با بازدید بالا مصرف بیش از حد منابع سبب میشود تا ارور 503 در وردپرس رخ دهد.
اولین تجربه شخصی من که در وبلاگ خودم با خطای 503 وردپرس روبهرو شدم این بود که برای اولین بار شاهد کندی شدید در عملکرد سایت شدم. در نگاه اول پیش خودم حدس زدم که بازدید بیشتر سبب شده تا منابع کافی در اختیار نداشته باشم و همین موضوع باعث ایجاد این مشکل شده است؛ اما با بررسی که کردم چنین چیزی نبود(!)
کنجکاوی بیشتر باعث شد تا موضوع را با شرکت هاستینگ مطرح کنم که در نهایت نتیجه آن چیزی نبود جز حملات DDoS و بروت فورس که به سایت انجام میگرفت. حالا که بیش از دو سال از آن زمان میگذرد همچنان این حملات را دارم، اما چون هاستی انتخاب کردم که منابع بالا داشته و در برابر حملات نیز مقاوم است دیگر تجربه این خطا را نداشتم.
همانطور که میبیند یک تجربه شخصی باعث شد تا من هم بتوانم چنین خطایی را تجربه کنم؛ البته از نوع تلخ آن! اما بعد از آن نیز همین تجربه را داشتم که خوشبختانه این بار برای بازدید و ترافیک بالا رخ داده بودند.
دلیل دیگر بروز خطای 503 در سایت به اختلال در کدنویسی یا استفاده از افزونهها و قالب نال نیز برمیگردد. شدیدا توصیه میکنم که از محصولاتی که در مارکتهای ایرانی به فروش میرسند استفاده نکنید. بیشترین دلیل بروز چنین خطاهایی به استفاده از همین محصولات برمیگردد که نه تنها باعث ایجاد خطا میشود بلکه در دراز مدت شاهد ویروسی شدن وردپرس نیز خواهید شد.
پیغام خطای در دسترس نبود سرویس(سرور) اگر شخصی سازی نشده باشد به شکلهای گوناگونی نمایش داده میشود که در زیر چند نوع از آن را میبینید.
503 Error HTTP 503 HTTP Error 503 HTTP Server Error 503 503 Service Unavailable Http/1.1 Service Unavailable Error 503 Service Unavailable Service Unavailable - DNS Failure 503 Service Temporarily Unavailable
حالا که دانستید ارور 503 چیست و چه دلایلی باعث میشود که این خطا در هاست رخ دهد، در ادامه به معرفی روشهایی که برای رفع خطا 503 service unavailable میپردازم.
دیباگ وردپرس را فعال کنید
چون خطای 503 رخ داده و باید هرچه سریعتر سرویس را در دسترس قرار دهید تا برای ربات موتورهای جستجو و کاربران سایت در دسترس قرار گیرد ابتدا قدم صفر را برداشته و برای یافتن سریع علت خطا، سعی کنید آن را رفع کنید.
قابلیت دیباگ وردپرس به نوعی یک «حالت عیب یابی» است که به شما در شناسایی و یافتن علت خطاهایی که در سایت رخ داده کمک بسیار زیادی خواهد کرد. برای اینکه سریعتر دلیل خطای 503 را پیدا کنید، میتوانید از این ویژگی وردپرس کمک بگیرید. برای این منظور کافی است فایل wp-config.php را که در مسیر public_html قرار دارد را به کمک ویرایشگر هاست باز کرده(میتوانید از طریق FTP هم این کار را انجام دهید) و کد زیر را در مکان مناسبی از این فایل قرار دهید.
define( 'WP_DEBUG', true );
البته ممکن است قبلا این کد در این فایل وجود داشته باشد. ابتدا سعی کنید به کمک کلیدهای CTRL + F عبارت «WP_DEBUG» را جستجو کنید. اگر چنین کدی وجود داشت بررسی کنید که مقدار آن روی true قرار داشته باشد؛ وجود مقدار false به معنی غیرفعال بودن دیباگ است. اگر هم که این قطعه کد وجود نداشت کافی است خط بالا را مثل تصویر زیر به این فایل اضافه کنید.
بعد از ذخیره کردن فایل این ویژگی در وردپرس فعال خواهد شد. حالا کافی است سایت خود را باز کرده و ببینید که آیا کدهایی در هدر سایت یا فوتر مشاهده میکنید که با خطا مواجه شده باشند؟
اگر خطایی وجود داشته باشد مسیر آن نیز مشخص شده است. به عنوان نمونه به خطای زیر دقت کنید:
Warning: include_once(/home/splendid/public_html/wp-content/plugins/woocommerce/includes/class-woocommerce.php): failed to open stream: No such file or directory in /home/splendid/public_html/wp-content/plugins/woocommerce/woocommerce.php on line 24
در این نمونه خطا مشخص شده که افزونه ووکامرس در فایلی به نام woocommerce.php در خط 24 دچار یک تداخل شده که باعث ایجاد خطا در سایت شده است. با بررسی این خط میتوانید دریابید که علت خطا چیست و سریعتر آن را رفع کنید که برای این منظور لازم است حتما با خطا یابی و خواندن دیباگ آشنایی کافی داشته باشید.
غیرفعال کردن پلاگین های وردپرس
همانطور که اشاره کردم دلیل این خطا به محدودیت در حافظه و منابع سرور برمیگردد که بیشتر مربوط به حافظه php هاست است. بنابراین استفاده از افزونههای نال شده و استفاده از پلاگینهایی که کاربردی نیستند یا اینکه به هر شکلی منابع زیادی از سرور را درگیر میکنند باعث میشود که بیشتر این خطا را تجربه کنید. اجازه دهید کمی مسئله را شفافتر کنم تا شما را قانع کنم را باید استفاده درستی از افزونههای وردپرس داشته باشید.
فرض کنید شما برای افزایش امنیت وردپرس میخواهید تمامی راههایی که باعث میشود امنیت سایت بیشتر شود را پیاده سازی کنید. مطمئنا اولین چیزی که به سراغ آن میروید نصب افزونههای امنیتی مختلف است. برخی از این افزونهها راهکارهای زیر را برای بالا بردن امنیت وردپرس در اختیار شما قرار خواهند داد:
- استفاده از کپچا برای جلوگیری از حملات بروت فورس
- محدود کردن تعداد دفعاتی که رمز و نام کاربری اشتباه وارد شده باشد
- استفاده از ورود دو مرحلهای
- بستن دسترسی به سایت برای آیپی کشورهای خاص
- تغییر دادن آدرس ورود به پیشخوان وردپرس
- غیرفعال کردن XML-rpc وردپرس
- و…
معمولا چون در شرایط بحرانی و حساسی دارید بدون اینکه در فرصت مناسب تحقیق کنید که از چه افزونههایی باید برای کاهش حملات و از سویی دیگر بالا بردن امنیت استفاده کنید، سریعا هر افزونهای که در سایتهای مختلف معرفی شده را نصب خواهید کرد. انجام همین کار سبب میشود که کلی افزونه نصب کنید که هر کدام به نوعی به منابعی نیاز دارند.
برخی از این افزونهها، هر کدام چند ورد از ویژگیهای بالا را دارند که اگر خوب تحقیق کنید تقریبا همهی موارد امنیتی که مثال زدم را میتوانید با افزونههای مثل wordfence security پیادهسازی کنید.
حالا خودتان قضاوت کنید؛ آیا برای استفاده از همین ۶ راهکاری که برای افزایش امنیت در وردپرس مثال زدم، لازم است که ۶ تا افزونه جدا نصب کنید یا اینکه نصب تنها یک افزونه که همه این امکانات را در اختیارتان قرار میدهد کافی است؟
پس اولین قدمی که باید طی کنید این است که افزونههای اضافی را غیرفعال کنید. برای این کار کافی است مشابه تصویر زیر عمل کنید. وارد پیشخوان وردپرس شده و دستورالملها را یکی یکی دنبال کنید.
- ابتدا روی منوی افزونهها در پیشخوان وردپرس کلیک کنید.
- به کمک تیکی که در کنار هر افزونه وجود دارد، افزونههایی که ضروری نیست را انتخاب کنید.
- از قسمت کارهای دسته جمعی گزینه غیرفعال کردن را انتخاب کنید.
- روی دکمه اجرا کلیک کنید.
با انجام این کار همه افزونههای انتخابی یک باره غیرفعال خواهند شد. اما چون سایت تحت حملات قرار دارد یا اینکه به دلیل بازدید بالا و مصرف منابع زیاد ممکن است به پیشخوان وردپرس دسترسی نداشته باشید، میتوانید افزونههای غیرضروری را از طریق هاست غیرفعال کنید. برای این کار میتوانید از روش دوم استفاده کنید که برای این منظور باید به ترتیب زیر عمل کنید.
- ابتدا وارد هاست خود شده و پس از اینکه به File Manager هاست مراجعه کردید، وارد پوشه public_html شوید.
- مسیری که وردپرس نصب شده را دنبال کنید تا وارد پوشه wp-content شوید. در این نمونه من وردپرس را در دامنه اصلی نصب کردم که کافی است مسیر public_html/wp-content را دنبال کنم. اما اگر از وردپرس در ساب فولدر استفاده میکنید، لازم است که مسیر public_html/FOLDER/wp-content را دنبال کنید.
- حال مشابه تصویر زیر باید روی پوشه plugins کلیک کرده و نام آن را با کمک گزینه RENAME به یک نام دلخواه مثل plugins-old تغییر داده و ذخیره کنید.
با انجام این کار همهی افزونهها در وردپرس از طریق هاست غیرفعال میشوند. اما اگر میخواهید که افزونههای خاصی را غیرفعال کنید باید وارد پوشه plugins شده و سپس افزونههایی که قصد غیرفعال کردنشان را دارید به همین ترتیب نام پوشه افزونه را تغییر نام دهید.
با انجام این کار منابع بیشتری در دسترس بوده و دیگر به صورت مکرر با خطای 503 در وردپرس مواجه نخواهید شد.
سوئیچ کردن به قالب پیشفرض وردپرس
گاهی اوقات پیش میآید که در قالب شما از توابعی استفاده شده که شاید دیگر در حال منسوخ شدن است یا اینکه هاست شما اکستنشنهای لازم برای اجرای این توابع را نداشته باشد. یا برخی عملکردها در قالب وجود دارد که منابع را به مقدار قابل توجهی اشغال کرده و در نهایت باعث خطای 503 در وردپرس میشود.
در چنین شرایطی برای اینکه مطمئن شوید خطا از سمت قالب است یا نه، میتوانید موقتا قالب پیشفرض را فعال کنید. اگر که با تغییر قالب سایت به یکی از قالبهای پیشفرض وردپرس مشکل 503 service unavailable رفع شد، باید قالب را بررسی کرد و ببینید که چه چیزی باعث شده منابع زیادی از هاست مصرف شود.
برای این منظور میتوانید یکی از قالبها پیشفرض وردپرس را فعال کنید. اگر به پیشخوان وردپرس دسترسی دارید، کافی است مطابق تصویر زیر به منوی نمایش> پوستهها رفته و قالب دیگری را فعال کنید(شماره گذاری ۱ و ۲ در تصویر زیر).
اما اگر دسترسی به این بخش ندارید مثل کاری که با پوشه افزونهها انجام دادید این بار باید با پوشه قالب فعال این کار را انجام داده و با تغییر نام دادن کاری کنید که وردپرس از قالب پیشفرض برای سایت شما استفاده کند. برای این منظور:
- ابتدا وارد هاست خود شده و پس از اینکه به File Manager هاست مراجعه کردید، وارد پوشه public_html شوید.
- مسیری که وردپرس نصب شده را دنبال کنید تا وارد پوشه wp-content شوید. در این نمونه من وردپرس را در دامنه اصلی نصب کردم که کافی است مسیر public_html/wp-content/themes را دنبال کنم. اما اگر از وردپرس در ساب فولدر استفاده میکنید، لازم است که مسیر public_html/FOLDER/wp-content/themes را دنبال کنید.
- حال مشابه تصویر زیر باید روی پوشه قالبی که در سایت فعال است کلیک کرده و نام آن را با کمک گزینه RENAME به یک نام دلخواه مثل X تغییر داده و ذخیره کنید.
نکته ای که باید در اینجا به آن دقت کنید این است که حداقل باید یکی از قالبهای پیشفرض وردپرس را نصب داشته باشید که با تغییر نام دادن نام پوشه قالب، وردپرس قالب پیشفرض را برای سایت فعال کند. اگر قالب دیگری ندارید میتوانید یکی از قالبهای پیشفرض را دانلود کرده و به کمک آموزش نصب قالب در وردپرس از طریق هاست سی پنل نصب و فعال کنید.
منابع هاست را افزایش دهید
تا اینجا گفتیم که علت خطای http error 503 کمبود منابع، خصوصا منابع مربوط به حافظه php است. در ادامه هم برای رفع موقتی مشکل راهکار این است که یا برخی افزونهها را غیرفعال کنید یا اینکه اگر مشکل از قالب سایت است، از قالب دیگری استفاده کنید تا پس از یافتن علت و رفع آن، مجددا به قالب قبلی برگردید.
اما ضرورتی ندارد که کارهای فوق را انجام دهید. در صورتی که دسترسی لازم به هاست فراهم باشد میتوانید با اضافه کردن یک سری کد به روشهای مختلف مقدار منابع مورد نیاز برای حافظه php را افزایش دهید. برای این منظور یکی از روشهای زیر را تست کنید.
روش اول: افزایش با فایل functions.php قالب
برای این منظور کافی است کدهای زیر را به فایل فانکشن قالبی که روی سایت فعال بوده و در مسیر wp-content/themes/folder قرار دارد اضافه کنید.
@ini_set('upload_max_size' , '128M'); @ini_set('post_max_size', '128M'); @ini_set('max_execution_time', '300');
روش دوم: افزایش حافظه php با فایل htaccess.
برای این منظور کافی است کدهای زیر را به انتهای این فایل که در مسیر public_html قرار دارد اضافه کنید.
php_value upload_max_filesize 64M php_value post_max_size 64M
روش سوم: افزایش حافظه php با فایل wp-config.php
وارد مسیری که وردپرس در public_html نصب کردید شده و به دنبال فایلی به نام wp-config.php بگردید. سپس کدهای زیر را در این فایل قرار دهید.
define('WP_MEMORY_LIMIT', '128M'); ini_set('post_max_size', '128M'); ini_set('upload_max_filesize', '128M');
به عنوان آخرین راهکار، هاجرو(!)
دسترسی محدود به منابع باعث میشود که خطای Error 503 Service Unavailable به صورت مکرر در سایت خود تجربه کنید. چه نیازی دارد که به خاطر محدودیت های هاستینگ اعصاب خودتان را خورد کنید؟ میتوانید به عنوان آخرین راهکار اینطور فکر کنید که:
هاستم حلال، جون سایتم آزاد!
با انتقال سایت خود به سون هاست میتوانید هر یک از پلنهای هاست، هاست وردپرس یا سرور مجازی را بسته مه مقدار منابعی که نیاز دارید با مشاوره رایگان که کارشناسان فروش سون هاست در اختیارتان قرار میدهند خریداری کنید. تیم سون هاست در هر ساعتی از شبانه روز آماده است تا بر اساس گزارش و مشکلاتی که با این خطا برای شما رخ داده و در حال دست و پنجه نرم کردن با آن هستید، سرویس مناسب را به ما پیشنهاد داده و میزبانی سایت شما را به عهده گیرد.
برای انتخاب سرویس و مشاوره کافی است به صفحه پیشنهاد خرید هاست مراجعه کرده و وضعیت سایت خود را از میزان مصرف منابع به ما اعلام کنید تا بهترین سرویس را به شما پیشنهاد دهیم.
جمع بندی نهایی
در این مقاله به معرفی راهکارهایی که برای رفع خطای 503 در وردپرس وجود دارد پرداخته و با ذکر مثالهایی به شما توضیح دادم که چه دلایلی میتواند باعث بروز ارور Service Unavailable در وردپرس شود. در صورتی که تجربه این خطا را داشتید میتوانید راهکارهایی که به کمک آن مشکل را برطرف کردید از بخش نظرات اعلام کنید تا دیگران نیز از آن استفاده کنند.
اگر هم این مشکل برایتان رخ داده و با تست این راهکارها موفق به رفع آن نشدید در بخش نظرات با جزییات بیشتری شرح دهید تا به شما کمک کنم. همچنین هر راهکاری که فکر میکنید برای برطرف کردن این خطا وجود دارد را نیز با ما به اشتراک بگذارید.