ارور ۵۰۰ چیست؟ چگونه آن را رفع کنیم؟

خطای ۵۰۰، مشکلی است که گاهی وقتها هم کاربران از آن شاکی میشوند، هم مدیران سایتها!
اما این خطا اصلاً چیست و چطور ایجاد میشود؟
در مقاله امروز وبلاگ گیلدا هاست، به این سوال جواب میدهیم؛ به علاوه، یادتان میدهیم که چطور ارور ۵۰۰ را رفع کنید! در ضمن میتوانید مقاله معرفی خطاهای HTTP را بخوانید تا با باقی کدهای خطا هم آشنا شوید.
با ما همراه باشید.
ارور ۵۰۰ چیست؟
ارور 500 که به آن خطای 500 یا HTTP Error 500 هم میگویند، یک خطا در سرور داخلی است. این خطا نشان میدهد که در سرور سایت، یک جای کار میلنگد و سرور نمیتواند جواب درخواست کاربر را بدهد.

خطای ۵۰۰ به چه صورت در سایت ظاهر میشود؟
پیغام ارور ۵۰۰ در شکلهای مختلفی ظاهر میشود، اما در هر صورت، معنای تمام آنها یکی است.
شما بسته به وبسایتی که در حال بازدید از آن هستید، ممکن است با یکی از پیغامهای زیر مواجه شوید:
- 500 – Internal Server Error
- Temporary Error (500)
- Internal Server Error
- HTTP 500 Internal Error
- 500 Error
- HTTP Error 500
- 500. That’s an error
- 500 Internal Server Error
- کد خطا: ۵۰۰
علت خطای 500 (HTTP Error 500) چیست؟
همانطور که قبلاً بالاتر هم اشاره کردیم؛ خطای ۵۰۰ یعنی یک مشکلی وجود دارد که باعث میشود سرور سایت نتواند جواب درخواست کاربر را بدهد. اما این مشکل چیست؟
خب، دلایل مختلفی باعث بروز خطای 500 میشوند؛ اما اگر Microsoft Internet Information Services را نصب کرده باشید، میتوانید اطلاعات بیشتر و دقیقتری راجعبه خطا بهدست آورده و آن را برطرف کنید!
بعد از نرمافزار IIS مایکروسافت، خطاها ممکن است با یک رقم اضافهتر به شما نشان داده شوند. این رقم اضافه، شما را به سمت علت خطا راهنمایی میکند.
در جدول زیر میتوانید لیستی از خطاهای سرور را مشاهده کنید
کد خطا | توضیحات |
۵۰۰.۰ | خطای ماژول یا ISAPI رخ داده است. |
۵۰۰.۱۱ | برنامه روی وب سرور در حال خاموش شدن است. |
۵۰۰.۱۲ | برنامه مشغول راهاندازی مجدد (Restart شدن) روی سرور است. |
۵۰۰.۱۳ | وب سرور خیلی شلوغ است. |
۵۰۰.۱۵ | اجازه درخواست مستقیم برای Global.asax وجود ندارد. |
۵۰۰.۱۹ | دادههای پیکربندی نامعتبر است. |
۵۰۰.۲۱ | ماژول ناشناخته است. |
۵۰۰.۲۲ | پیکربندی ASP.NET httpModules پیدا نشد. |
۵۰۰.۲۳ | پیکربندی ASP.NET httpHandlers پیدا نشد. |
۵۰۰.۲۴ | پیکربندی ASP.NET impersonation پیدا نشد. |
۵۰۰.۵۰ | خطای بازنویسی، هنگام اجرای اعلان RQ_BEGIN_REQUEST |
۵۰۰.۵۱ | خطای بازنویسی هنگام اجرای اعلان GL_PRE_BEGIN_REQUEST |
۵۰۰.۵۲ | خطای بازنویسی هنگام اجرای اعلان RQ_SEND_RESPONSE |
۵۰۰.۵۳ | خطای بازنویسی هنگام اجرای اعلان RQ_RELEASE_REQUEST_STATE |
۵۰۰.۱۰۰ | خطای داخلی ASP |
چطور ارور ۵۰۰ را برطرف کنیم؟
ما این موضوع را از ۲ زاویه بررسی کردیم: کاربر و مدیر سایت.
اگر کاربری هستید که در حال استفاده از سایتی، با خطای ۵۰۰ مواجه شدید، این ۲ تا کار را انجام دهید:
- حافظه کش مرورگر را پاک کنید (Cntrl+F5)
- کوکیهای این سایت را پاک کنید
اگر مشکل جدی نباشد، با این ۲ تا کار ممکن است دسترسیتان به سایت برقرار شود.
خب؛ حالا اگر مدیر سایت یا برنامهنویس باشید و بخواهید مشکل را ریشهای حل کنید، باید مراحلی که در ادامه میگوییم را پشت سر بگذارید.
مراحل برطرف کردن خطای ۵۰۰
در این بخش راههای مختلف رفع خطا را بر اساس هاست و CMS های مختلف توضیح دادهایم.
بررسی error_log
اولین گام در صورت مواجه شدن سایت با خطا، بررسی Error Log سایت است؛ چون با مشاهده خطاهای لاگ میتوانید سریعتر مشکل را شناسایی و برای رفع آن اقدام کنید.
خیلی وقتها، زمانیکه خطای Internal Server Error را مشاهده میکنیم، دلیل ایجاد آن در قسمت Error Log کنترل پنل هاست موجود است.
اگر هاست سیپنل دارید، از قسمت Metrics روی گزینه Errors کلیک کنید.

برای کنترل پنل دایرکت ادمین هم وارد داشبورد آن شوید و روی گزینههای Site Summary / Statistics / Logs کلیک کنید. سپس از قسمت Web Error Log روی گزینه 100 lines کلیک کنید تا 100 خطای آخر به شما نمایش داده شود.

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

فایل wp-config.php موجود در public_html هاست را باز کرده و مقدار WP_DEBUG’ را به true تغییر دهید.
فعال کردن امکان مشاهده خطا در جوملا
جهت فعال کردن امکان مشاهده خطا در سایتهای جوملا در فایل configuration.php مقدار error_reporting را به کد زیر تغییر دهید.
public $error_reporting = '1';
فعال کردن امکان مشاهده خطا در پرستاشاپ
برای مشاهده خطاهای Prestashop باید فایل defines.inc.php در مسیر /home/username/public_html/config را ویرایش کنید و مقدار define(‘PS_MODE_DEV ‘, false ); را به define(‘PS_MODE_DEV ‘, true ); تغییر دهید.

توجه: پس از مشاهده خطا، تغییرات را به حالت قبل بازگردانید. چون مشاهده هشدارها و خطاهای سایت توسط بازدیدکنندگان درست نیست.
چک کردن فایل htaccess
برای بررسی این فایل نیاز است که نام فایل را تغییر بدهید. مثلا نام اصلی را به htaccess_old تغییر بدهید.
برای اینکه مطمئن شوید مشکل از این فایل است یا نه، فایل را مثلا به htaccess_old تغییر نام بدهید.
برای این کار وارد هاست و بخش filemanager شده و وارد پوشه public_html شوید.
فایل .htaccess فعلی را به htaccess_old یا نام دلخواه خودتان تغییر دهید.
یک فایل جدید بنام .htaccess ایجاد کرده و کد زیر را در آن درج کنید. حالا مشاهده سایت بدون ارور را مجدد بررسی کنید.
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
اگر بعد از این کار سایت را بدون خطا مشاهده کردید، پس مشکل حل شده است.
حالا باید خط به خط کدهای htaccess را به آن اضافه کنید تا ببینید مشکل از کدام خط بوده است.
غیر فعال کردن افزونه ها (پلاگین ها)
چه از وردپرس استفاده کنید، چه جوملا و چه هر سیستم مدیریت محتوای دیگری، روی سیستم مدیریت محتوای خودتان یک سری افزونه یا پلاگین (یا ماژول) دارید که شاید فعال بودن آنها منجر به خطای ۵۰۰ شود.
پس روش بعدی این است که تک تک افزونههای سایت رو غیرفعال کنید و ببینید با غیر فعال کردن کدام افزونه، خطای internal server error 500 سایت شما از بین میرود.

اگر به مدیریت سایت دسترسی ندارید، سطح دسترسی پوشه Plugins را از طریق File manager به صفر تغییر دهید.
بررسی تنظیمات پایگاه داده (Data Base)
مشخصات دیتابیس ایجاد شده در هاست حتما باید با مشخصات درج شده در فایل wp-config.php یکسان باشند.
به عنوان مثال در صورتی که سایت با وردپرس طراحی شده نام دیتابیس- نام یوزر دیتابیس و رمز باید با نام دیتابیس- نام یوزر دیتابیس و رمز یوزر ایجاد شده در هاست یکسان باشد.
تغییر قالب به قالب پیشفرض وردپرس
گاهی وقتها ممکن است خطای ۵۰۰ وردپرس بهخاطر قالبی که استفاده میکنید باشه که برای اطمینان و راهکار نهایی میتوانید قالب فعلی را غیرفعال کرده و از یکی از قالبهای پیشفرض وردپرس استفاده کنید.
اگر به پیشخوان وردپرس دسترسی دارید به مسیر نمایش> پوستهها مراجعه کرده و یکی از قالبهای پیشفرض وردپرس را انتخاب کرده و روی دکمه فعال کردن کلیک کنید.

توجه: اگر دسترسی به پیشخوان وردپرس ندارید برای غیرفعال کردن قالب فعلی وارد هاست شده و در File Manager به مسیر public_html/wp-content/themes مراجعه کنید. سپس پوشه قالبی که در حال استفاده از آن هستید را انتخاب کرده و روی اون راست کلیک کنید. گزینه Rename را انتخاب کرده و در پنجره باز شده نام دلخواهی برای پوشه قالب انتخاب نموده و ذخیره کنید. در این صورت قالب غیرفعال شده و یکی از قالبهای پیشفرض وردپرس به عنوان قالب سایت فعال خواهد شد. سپس میتوانید سایت را بررسی کنید و ببینید که آیا همچنان خطای ۵۰۰ در سایت نمایش داده میشود یا خیر!
در صورت رفع مشکل مشخص است مشکلی در تم استفاده شده وجود دارد که نیاز است از طریق پشتیبانی قالب خریداری شده آن را پیگیری کنید. حتی شاید قالب شما به پیشنیاز خاصی نیاز داشته باشد که در سرور میزبان فعال نباشد یا با نسخه های خاصی از php سازگار باشد.

دقت داشته باشید که در این روش حتما باید یکی از قالبهای پیشفرض وردپرس در سایت وجود داشته باشند. پس اگر پوشهای به جز پوشه قالب در این مسیر از هاست وجود نداره، قبل از انجام اینکار به آدرس fa.wordpress.org مراجعه کنید. سپس از داخل فایل zip دانلود شده به مسیر wp-content/themes مراجعه کرده و یکی از پوشهها را در هاست آپلود کنید.
خرابی فایل های وردپرس

گاهی هم ممکن است فایلهای اصلی هسته وردپرس شما خراب شده باشد. قبل از اعمال تغییرات حتما از اطلاعات بکاپ تهیه کنید، سپس آخرین نسخه وردپرس را از وبسایت رسمی آن دانلود کنید.
حالا پوشه wp-content و فایل wp-config.php را از فایل دانلودی حذف کرده و سایر پوشهها و فایلهای موجود را با پوشه و فایل موجود در هاست خود تعویض کنید.
با این کار اطلاعات شما پاک نخواهند شد و فقط در صورت وجود مشکل از جانب هسته وردپرس، مشکل برطرف میشود.
حرف آخر
این هم از مراحل رفع ارور ۵۰۰ در سایت!
ما راههای مختلف برای حل مشکل خطای ۵۰۰ را پیش پایتان گذاشتیم؛ اگر در هر کدام از این راهها به مشکل خوردید، حتماًَ در بخش نظرات مشکلتان را مطرح کنید تا شما را راهنمایی کنیم.
اگر این مقاله برایتان مفید بود، آن را با دوستان خودبهاشتراک بگذارید.