ارور ۵۰۰ چیست + آموزش رفع خطای ۵۰۰ Internal Server Error

رفع خطای ۵۰۰ Internal Server

در سری مقالات آموزش رفع خطاهای وب سایت در این آموزش به اینکه خطای ۵۰۰ Internal Server چیست؟ و دلایل بروز ارور ۵۰۰ می پردازیم و روش های رفع خطای ۵۰۰ در سرور و در وردپرس را بررسی خواهیم کرد.

خطای ۵۰۰ Internal Server Error چیست؟

پس از خطاهای سری ۴xx مثل خطای ۴۰۳ و ۴۰۴ خطاهای سری ۵۰۰ از خطاهای رایج دنیای وب هستند. خطای ۵۰۰ از دوست نداشتنی ترین خطاهای وب است و برخورد با آن برای مدیران سایت ها و همچنین پشتیبانانان هاستینگ به معنی آغاز یک دردسر است! اما خیالتان راحت باشد! با ما همراه شوید.

همان طور که در آموزش انواع خطاهای وب سایت گفتیم پاسخ HTTP سرور که با عدد ۵ آغاز می شوند مثل خطای ۵۰۰ یا خطای ۵۰۳، همگی نشان دهنده وجود خطا در سمت سرور می باشند.

همانطور که در RFC 9110 بخش ۱۵.۶.۱ آمده است، خطای ۵۰۰ را اینگونه تعریف می کند:

 The 500 (Internal Server Error) status code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

https://www.rfc-editor.org/rfc/rfc9110.html#name-500-internal-server-error

ترجمه:

کد وضعیت ۵۰۰ (Internal Server Error) بیانگر آن است که سرور با شرایط غیر منتظره و ناخواسته ای روبرو شده است که مانع از رسیدگی سرور و انجام درخواست می شود.

چرا خطای ۵۰۰ رخ می دهد؟ ( دلایل بروز ارور http error 500 )

همانطور که از عبارت غیر منتظره در تعریف خطای ۵۰۰ مشخص است دلایل مختلفی می تواند باعث قرار گرفتن سرور در HTTP 500 Status Code شود. که در ادامه به بیان دلایل ایجاد ارور ۵۰۰ Error و بررسی دقیق آنها هم ار طرف کلاینت هم از طرف سرور پرداخته ایم.

چرا خطای 500 رخ می دهد؟

این دلایل عبارتند از:

  1. کمبود منابع سرور مثل RAM و CPU یا Low Resources
  2. کوتاه بودن مدت زمان اجرای اسکریپت یا  PHP timeout
  3. پر بودن حافظه دیسک سرور و ناتوانی در نوشتن اطلاعات در سرور
  4. تنظیمات نادرست در فایل htaccess
  5. حافظه کش مرورگر
  6. گرامر غلط یا کد اشتباه در اسکریپت ها CGI/Perl

موارد بالا از دلایل کلی بروز خطای ۵۰۰ در سرور هستند. اما عوامل دیگری نیز وجود دارند که خود باعث بروز مشکلات یاد شده بالا می شوند که به تشریح هر کدام می  پردازیم:

۱- کمبود منابع سرور

این مورد که با عناوین اختصاصی تری مثلPHP timeout یا PHP memory limit نیز مورد توجه قرار می گیرد از دلایل بروز ارور http error 500 است. مواردی که می تواند باعث بروز این مشکل شود:

  • کد نوشته شده بهینه نیست و مصرف بالایی دارد
  • بازدید سایت بالاست
  • سایت مورد حمله DDOS قرار گرفته است
  • از هاست اشتراکی با منابع پایین استفاده می کنید
  • ماژول های زیادی را به سایت اضافه کردید
  • ویدئوهایی که در سرور آپلود کردید بازدید زیادی دارند
  • مصرف حافظه را توسط htaccess یا php.ini محدود کردید

۲- کوتاه بودن مدت زمان اجرای اسکریپت

درخواست شما ممکن است سنگین باشد و پردازش آن به زمان بیشتری نیاز داشته باشد. اگر این زمان کافی برای اجرای کامل اسکریپت داده نشود می تواند باعث بروز خطای ۵۰۰ Internal Server Error شود.

۳- پر شدن حافظه دیسک و جلوگیری از نوشته اطلاعات

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

همه وب سایت های داینامیک نیاز به خواندن و نوشتن اطلاعات در سرور و پایگاه داده دارند. زمانی که دیسک سرور کاملا پر شده باشد دیگر امکان خواندن و نوشتن وجود نخواهد داشت. همین مساله می تواند از دلایل بروز خطای ۵۰۰ شود.

۴- تنظیمات نادرست در فایل htaccess

از فایل htaccess برای انجام تنظیمات اختصاصی و مکمل در وب سرور استفاده می شود که قواعد خاص خود را داراست. اگر محتوای این فایل متنی اشتباه باشد یا پیکربندی نادرستی توسط آن بر سرور اعمال شده باشد بنابراین فایل htaccess نیز از مظنونین دلایل بروز خطای ۵۰۰ Internal Server Error باشد.

۵- حافظه کش مرورگر

یکی از بهترین ویژگی های مرورگر ها که باعث بهبود سرعت لودینگ سایت ها می شود، استفاده از کش است. اما همین کش گاهی می تواند باعث ایجاد دردسرهایی نیز شود. مثلا ممکن است صفحه خطای ۵۰۰ توسط مرورگر کش شده باشد! در اینصورت باید کش مرورگرتان را پاک کنید (CTRL+F5) یا اینکه از مرورگر دیگری وب سایت مورد نظرتان را تست کنید.


آموزش رفع خطای ۵۰۰ Internal Server سمت کلاینت

از آنجایی که این خطا مربوط به سرور است، برطرف شدن آن باید از سمت سرور پیگیری و انجام شود اما تست کردن چند کار ساده نیز می تواند مفید باشد:

  1. کش صفحه را با CTRL+F5 پاک کنید
  2. کش مرورگر و کوکی ها را پاک کنید
  3. از مرورگر در حالت پرایویت استفاده کنید
  4. از مروگر دیگری استفاده کنید
  5. اگر از پروکسی استفاده می کنید آن را غیر فعال کنید
  6. یا وب سایت را مجددا با پروکسی بررسی کنید

آموزش رفع خطای ۵۰۰ Internal Server سمت سرور

رفع خطای 500

۱- افزایش Memory Limit هاست

روش های مختلفی برای این کار وجود که عبارتند از:

  • درخواست از هاستینگ برای افزایش حافظه هاست
  • ویرایش یا ایجاد فایل php.ini هاست و افزایش حافظه
  • افزایش Memory Limit به کمک htaccess

۲- بررسی و پاکسازی دیسک هاست

چک کنید هارد دیسک سرور پر نشده باشد در صورتی که پر شده بود:

  • فایل های موقت یا temp را پاک کنید
  • سطل آشغال سرور را پاک کنید
  • فایل های بک آپ قدیمی را حذف کنید
  • فایل بزرگ سرور را به هاست های دانلود منتقل کنید
  • به شرکت هاستینگ درخواست ارتقا دیسک و پلن دهید

۳-  افزایش مدت زمان اجرای اسکریپت

به کمک فایل php.ini یا تنظیمات کنترل پنل هاست پارامترهای زیر را افزایش دهید:

max_execution_time
max_input_time

۴- حذف موقت htaccess

فایل htaccess را دانلود کنید یا محتوای آن را کپی کنید. سپس آن را حذف کنید و یا تغییر نام دهید.

آموزش رفع خطای ۵۰۰ Internal Server در وردپرس

از آنجایی که وردپرس محبوبترین CMS دنیاست و بیشتر وب سایت ها با کمک آن ساخته می شوند و ممکن است وب سایت شما هم با وردپرس طراحی شده باشد پس بهتر است روش های رفع خطای ۵۰۰ Internal Server در وردپرس را نیز در اینجا بررسی کنیم.

آموزش رفع خطای ۵۰۰ Internal Server در وردپرس

برای رفع خطای ۵۰۰ Internal Server در وردپرس کارهای زیر را انجام دهید:

۱- فایل wp-config.php را ویرایش کنید و خط زیر را پیدا کنید:

define( "WP_DEBUG", false );

و سپس آن را به  شکل زیر تغییر دهید:

define( "WP_DEBUG", true );

این کار باعث نمایان شدن خطاهای وردپرس خواهد شد.

همچنین در هاست های سی پنل در صورت بروز خطا در سایت، یک فایل Error_log ایجاد می شود که باید خطاهای آن را بررسی کنید.

۲- موقتا همه افزونه ها را غیر فعال کنید.

وارد کنترل پنل هاست شود و وارد مسیر wp-content شوید. پوشه plugins را به plugins.hold تغییر دهید. این کار باعث غیر فعال شدن همه افزونه ها خواهد شد.

پس از آن سایت را چک کنید. اگر ارور ۵۰۰ برطرف شده بود پس باید خطا را در افزونه ها جستجو کنید. بپوشه plugins.hold را به حالت اول برگردانید و افزونه ها را به صورت دستی و یکی یکی تغییرنام دهید و عبارت .hold را به انتهای نام آنها اضافه کنید.

۳- افزونه کش را فعال یا غیر فعال یا بازنگری کنید

اگر از افزونه کش در هاستینگ های ضعیف استفاده می کنید بهتر است از اینکار صرف نظر کنید چرا که استفاده از افزونه های کش روی هاست های ضعیف می تواند باعث بروز خطای ۵۰۰ شود!

اگر بازدید کننده زیاد سایت باعث بروز خطای ۵۰۰ شده باشد پس بهتر است افزونه های کش مناسب مثل LSCache یا WP-Rocket را بر روی وردپرس نصب کنید تا درخواست های ارسالی به سرور کمتر شوند.

پیکربندی نادرست افزونه های بهینه سازی و کش و یا استفاده نادرست از آن ها نیز می تواند باعث بروز خطای ۵۰۰ شود. برای مثلا اگر وب سرور شما لایت اسپید نیست بنابراین نباید از LSCahe استفاده کنید!

۴- فایروال نصب کنید

ممکن است مورد حمله DDOS قرار گرفته باشید و یا در آینده قرار بگیرید! پس بهتر است فایروال نصب کنید و به کمک آن از حملات DDOS و همچنین بروز ارور ۵۰۰ جلوگیری کنید.

۵- هاست را ارتقا و یا تغییر دهید

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

در این مقاله با انواع هاست و ویژگی هاست خوب بیشتر آشنا شوید!

جمع بندی

در این آموزش با یکی دیگر از انواع خطاهای وب یعنی خطای ۵۰۰ ، دلایل بروز ارور http error 500 و همینطور روش های رفع خطای ۵۰۰ Internal Server آشنا شدیم.

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

به این مطلب چه امتیازی می دهید؟
ایمان شادمهری
ایمان شادمهری
هر روز آموزش ببین و روزی یک ساعت چیز یاد بگیر. در پایان سال 365 ساعت آموزش دیدی!