خطای Internal Server Error 500

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

  • "500 Internal Server Error"

  • "HTTP 500 - Internal Server Error"

  • "Internal Server Error"

  • "HTTP 500 Internal Error"

  • "500 Error"

  • "HTTP Error 500"

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

حالت اول رفع خطای Internal Server Error 500 به شرح زیر می باشد:

  1. سعی نمایید صفحه را با Refresh کردن مجددا بارگزاری نمایید، در بسیار از موارد و معمولا برای سیستم های درگاه های آنلاین بانکی به دلیل استفاده از سرویس های مختلف و تغییر Header ها این اتفاق رخ می دهد که با Refresh کردن می توان Header صحیح را بارگزاری نمود.

  2. در برخی اوقات به دلیل Cache مرورگر شما این خطا رخ می دهد که با خالی کردن Cache مرورگر می توانید مورد را برطرف نمایید.

  3. برخی اوقات به دلیل همسان نمودن Cookie های مرورگر شما و ناسازگار بودن یا قدیمی شدن آن ها خطای Internal Server Error 500 رخ می دهد که با خالی کردن کوکی ها و در نهایت مجددا اجرا کردن مرورگر این مورد برطرف می شود.

حالت دوم که موارد اصلی به دلیل آن می باشد می بایست از سوی سرور و سیستم های برنامه نویسی شده تحت آن برطرف شود. موارد به شرح زیر می باشد:

  1. 504 Gateway Timeout که خیلی عمومی نیست ولی در برخی اوقات که به طور مثال شما از Nginx به عنوان Proxy Server استفاده می کنید این مورد رخ می دهد و شما خطای 500 Internal Server Error به جای 504 Gateway Timeout دریافت می کنید.

  2. مورد بعدی به دلیل تنظیمات اشتباه در فایل .htaccess می باشد، Syntax Error در این فایل و تنظیمات اشتباه در Rewrite Rule ها یا اشتباه Options های غیر فعال در فایل .htaccess این خطا را به دنبال خواهد داشت.

  3. مورد بعدی به نام PHP Coding Time out شناخته می شود که اگر مثلا کد PHP شما اقدام به ایجاد یک ارتباط خروجی (External Network Connection) به جای دیگر برقرار نماید و در آن هنگام به دلیل زمان طولانی خطای Connection Timeout دریافت کند وب سرویس خطای 500 Internal Server Error را باز می گرداند. برروی سیستم های خبر خوان (RSS Feeds) و سیستم های مشابه این خطا بسیار رایج است. حالت دیگر خطای Timeout برروی اتصال با بانک اطلاعاتی است که هنگامیکه سرویس بانک اطلاعاتی (Database Engine) بسیار مشغول است اسکریپت شما توان اتصال به بانک اطلاعاتی را ندارد و شما این خطا را دریافت می کنید. به طور کلی می توان گفت هنگامیکه اسکریپت شما اقدام به اتصال به سرویس های خارجی همانند بانک اطلاعاتی، وب سرویس های دیگر و سیستم های خارجی دیگر می خواهد برقرار نماید و این اتصال به درستی برقرار نمی شود یا Timeout می دهد شما خطای 500 Internal Error دریافت می کنید.

  4. Syntax یا Coding Error در اسکریپت های CGI/Perl موجب دریافت خطای 500 Internal Server Error می شود. مثلا هنگامیکه شما از  ویرایشگر هایی همانند WordPad , ... استفاده می کنید که اطلاعات شما را به صورت pure ASCII ذخیره نمی کنند و حساس به Encoding هستند شما این خطا را دریافت می کنید. لذا به طور مثال از Notepad برای ویرایش فایل ها استفاده نمایید.

  5. همواره فایل های CGI Script خودتان را به صورت ASCII Mode آپلود نمایید.

  6. برروی سیستم های suPHP شما می بایست حداکثر Permission برای فولدر ها را 755 و برای فایل ها را 644 قرار دهید و دسترسی های بالاتر موجب خطای Internal Server Error 500 می شود.

  7. حتما برروی نمایید Owner فایل شما با حساب کاربری و نام کاربری اکانت شما مشابه باشد و به طور مثال شما از طریق suEXEC نمی توانید فایل ها با Owner به صورت Root را مشاهده نمایید لذا اگر فایل های داخل سایت و public_html صاحب امتیاز دیگری جز حساب کاربری آن اکانت دارد حتما تغییر دهید.

  8. همواره تمامی فایل های اسکریپت خودتان را بررسی نمایید که End line داشته باشند که مورد معمولا برروی فایل های رمزنگاری شده به صورت Zend , Ioncube , SourceGuardian رخ می دهد که خطا و تغییر در بخش آخر سورس کد به صورت Encode شده موجب می گردد که سیستم های Decoder مربوط به آن نتوانند آن را اجرا نمایند و شما خطای 500 Internal Error Server دریافت کنید.

  9. بررسی منابع وب سرویس، در صورتیکه وب سرویس منابع آزاد همانند رم در اختیار نداشته باشد تا پردازش را انجام دهد شما خطای Internal Server Error 500 دریافت می کنید.

  10. در صورتیکه برروی مدیریت محتوا شما Dispay_Error و Error Reporting نیز غیر فعال باشد و شما خطای Fatal Error داشته باشید و سیستم Debug خاموش باشد به دلیل عدم نمایش خطا سیستم به شما Internal Server Error 500 باز می گرداند.

  11. در مدیریت محتوا وردپرس یا جوملا با روشن نمودن خصوصیت DebugMode می توانید به جای دریافت خطای Internal Server Error 500 خطای داخل مدیریت محتوا را مشاهده نمایید.

  12. درصورتیکه DisplayErrors برروی مدیریت محتوا و یا phpini خاموش باشد و خطاهای PHP نمایش داده نشود شما خطای Internal Server Error 500 دریافت می کنید.

  13. در صورتیکه نسخه PHP انتخاب شده سازگار با فایل های PHP شما نباشد شما خطای Internal Server Error 500 دریافت می کنید.

  14. و هزاران مورد دیگر ....

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

  • 500 ( Internal Server Error )
  • 502 (Bad Gateway )
  • 503 ( Service Unavailable )
  • 504 ( Gateway Timeout )

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


در همین زمینه