خطای 500، مشکلی است که گاهی وقتها هم کاربران از آن شاکی میشوند، هم مدیران سایتها!
اما این خطا اصلاً چیست و چطور ایجاد میشود؟
در مقاله امروز وبلاگ ایران سرور، به این سوال جواب میدهیم؛ به علاوه، یادتان میدهیم که چطور ارور 500 را رفع کنید! در ضمن میتوانید مقاله معرفی خطاهای HTTP را بخوانید تا با باقی کدهای خطا هم آشنا شوید.
با ما همراه باشید.
ارور 500 چیست؟
ارور 500 که به آن خطای 500 یا HTTP Error 500 هم میگویند، یک خطا در سرور داخلی است. این خطا نشان میدهد که در سرور سایت، یک جای کار میلنگد و سرور نمیتواند جواب درخواست کاربر را بدهد.
خطای 500 به چه صورت در سایت ظاهر میشود؟
پیغام ارور 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
علت خطای 500 (HTTP Error 500) چیست؟
همانطور که قبلاً بالاتر هم اشاره کردیم؛ خطای 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 |
چطور ارور 500 را برطرف کنیم؟
ما این موضوع را از 2 زاویه بررسی کردیم: کاربر و مدیر سایت.
اگر کاربری هستید که در حال استفاده از سایتی، با خطای 500 مواجه شدید، این 2 تا کار را انجام دهید:
- حافظه کش مرورگر را پاک کنید (Cntrl+F5)
- کوکیهای این سایت را پاک کنید
اگر مشکل جدی نباشد، با این 2 تا کار ممکن است دسترسیتان به سایت برقرار شود.
خب؛ حالا اگر مدیر سایت یا برنامهنویس باشید و بخواهید مشکل را ریشهای حل کنید، باید مراحلی که در ادامه میگوییم را پشت سر بگذارید.
مراحل برطرف کردن خطای 500
در این بخش راههای مختلف رفع خطا را بر اساس هاست و 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 را به آن اضافه کنید تا ببینید مشکل از کدام خط بوده است.
غیر فعال کردن افزونه ها (پلاگین ها)
چه از وردپرس استفاده کنید، چه جوملا و چه هر سیستم مدیریت محتوای دیگری، روی سیستم مدیریت محتوای خودتان یک سری افزونه یا پلاگین (یا ماژول) دارید که شاید فعال بودن آنها منجر به خطای 500 شود.
پس روش بعدی این است که تک تک افزونههای سایت رو غیرفعال کنید و ببینید با غیر فعال کردن کدام افزونه، خطای internal server error 500 سایت شما از بین میرود.
اگر به مدیریت سایت دسترسی ندارید، سطح دسترسی پوشه Plugins را از طریق File manager به صفر تغییر دهید.
بررسی تنظیمات پایگاه داده (Data Base)
مشخصات دیتابیس ایجاد شده در هاست حتما باید با مشخصات درج شده در فایل wp-config.php یکسان باشند.
به عنوان مثال در صورتی که سایت با وردپرس طراحی شده نام دیتابیس- نام یوزر دیتابیس و رمز باید با نام دیتابیس- نام یوزر دیتابیس و رمز یوزر ایجاد شده در هاست یکسان باشد.
تغییر قالب به قالب پیشفرض وردپرس
گاهی وقتها ممکن است خطای 500 وردپرس بهخاطر قالبی که استفاده میکنید باشه که برای اطمینان و راهکار نهایی میتوانید قالب فعلی را غیرفعال کرده و از یکی از قالبهای پیشفرض وردپرس استفاده کنید.
اگر به پیشخوان وردپرس دسترسی دارید به مسیر نمایش> پوستهها مراجعه کرده و یکی از قالبهای پیشفرض وردپرس را انتخاب کرده و روی دکمه فعال کردن کلیک کنید.
توجه: اگر دسترسی به پیشخوان وردپرس ندارید برای غیرفعال کردن قالب فعلی وارد هاست شده و در File Manager به مسیر public_html/wp-content/themes مراجعه کنید. سپس پوشه قالبی که در حال استفاده از آن هستید را انتخاب کرده و روی اون راست کلیک کنید. گزینه Rename را انتخاب کرده و در پنجره باز شده نام دلخواهی برای پوشه قالب انتخاب نموده و ذخیره کنید. در این صورت قالب غیرفعال شده و یکی از قالبهای پیشفرض وردپرس به عنوان قالب سایت فعال خواهد شد. سپس میتوانید سایت را بررسی کنید و ببینید که آیا همچنان خطای 500 در سایت نمایش داده میشود یا خیر!
در صورت رفع مشکل مشخص است مشکلی در تم استفاده شده وجود دارد که نیاز است از طریق پشتیبانی قالب خریداری شده آن را پیگیری کنید. حتی شاید قالب شما به پیشنیاز خاصی نیاز داشته باشد که در سرور میزبان فعال نباشد یا با نسخه های خاصی از php سازگار باشد.
دقت داشته باشید که در این روش حتما باید یکی از قالبهای پیشفرض وردپرس در سایت وجود داشته باشند. پس اگر پوشهای به جز پوشه قالب در این مسیر از هاست وجود نداره، قبل از انجام اینکار به آدرس fa.wordpress.org مراجعه کنید. سپس از داخل فایل zip دانلود شده به مسیر wp-content/themes مراجعه کرده و یکی از پوشهها را در هاست آپلود کنید.
خرابی فایل های وردپرس
گاهی هم ممکن است فایلهای اصلی هسته وردپرس شما خراب شده باشد. قبل از اعمال تغییرات حتما از اطلاعات بکاپ تهیه کنید، سپس آخرین نسخه وردپرس را از وبسایت رسمی آن دانلود کنید.
حالا پوشه wp-content و فایل wp-config.php را از فایل دانلودی حذف کرده و سایر پوشهها و فایلهای موجود را با پوشه و فایل موجود در هاست خود تعویض کنید.
با این کار اطلاعات شما پاک نخواهند شد و فقط در صورت وجود مشکل از جانب هسته وردپرس، مشکل برطرف میشود.
حرف آخر
این هم از مراحل رفع ارور 500 در سایت!
ما راههای مختلف برای حل مشکل خطای 500 را پیش پایتان گذاشتیم؛ اگر در هر کدام از این راهها به مشکل خوردید، حتماًَ در بخش نظرات مشکلتان را مطرح کنید تا شما را راهنمایی کنیم.
اگر این مقاله برایتان مفید بود، آن را با دوستان خودبهاشتراک بگذارید.
9 دیدگاه. دیدگاه تازه ای بنویسید
بسیار عالی و دقیق
ممنون از وقتی که میزارین
سلام لطفا راهنمایی کنید.
پشتیبانی هاست علت رو از خود سایت عنوان کرد.
خطای فایل erro_log
[25-Oct-2019 18:02:01 UTC] PHP Fatal error: Cannot access property WP_Recovery_Mode::$cookie_service in /home/test/public_html/wp-includes/class-wp-recovery-mode.php on line 80
و حالا لاین 80 از فایلی که خطا داشت:
$this->cookie_service = new WP_Recovery_Mode_Cookie_Service();
$this->key_service = new WP_Recovery_Mode_Key_Service();
$this->link_service = new WP_Recovery_Mode_Link_Service( $this->cookie_service, $this->key_service );
$this->email_service = new WP_Recovery_Mode_Email_Service( $this->link_service );
این خطا مربوط به تنظیمات هاست نیست، وردپرس را مجدد بروزرسانی نمایید و در صورت عدم رفع مشکل فایل class-wp-recovery-mode.php را از وردپرس خام جایگزین نمایید.
سلام خسته نباشید من این ارور چند وقت یکبار دریافت می کنم مثلا ده بار صفحه مورد خطا به درستی اجرا میشه و بار یازدهم با ارور http error 500 رو برو می شم و با رفرش سایت مشکل حل میشه ولی خب این روند دوباره تکرار میشه و سرچ کنسول گوگل هم این ارور به من به عنوان خطا نشون می ده و این مشکل از وقتی شروع شد که من از المنتور برای طراحی سایت استفاده کردم و الان هم المنتور پرو تهیه کردم و برای همین نیاز دارم این خطا رفع کنم بدون اینکه المنتور پرو حذف کنم تم سایت من هم سلام المنتور هست الان من باید چیکار کنم دقیقا که این خطا دیگه اصلا نمایش داده نشه و اینکه از افزونه کش راکت استفاده می کنم
البته هر از گاهی هم خطا با این مضمون دریافت می کنم از بعضی از صفحات که خطای مهم در وردپرس شما روی داده و پایینش هم لینک به مخزن آموزش رفع خطا وردپرس می ده
خیلی لطف بزرگی می کنید اگه من رو راهنمایی نمایید کنید که هردوی این خطا ها رو رفع کنم بدون حذف المنتور و تم
منتظر جوابتون هستم
احسان اسمعیلی
سلام
نیاز است ارور لاگ سایت را بررسی کنید تا ببینید در زمان خطای سایت چه اروری ثبت می شود، همچنین ممکن است بدلیل کمبود منابع سرور این مشکل رخ می دهد.
سلام وقت بخیر
دو هفته پیش یک ایمیل از سمت Cpanel برای من اومد که اخطار پر شدن 80 درصد از دیسک رو می داد
چند روز بعد خود به خود سایت من با ارور 500 مواجه شد و از اون روز دسترسی به سایت امکان پذیر نیست آیا امکانش هست که بخاطر پر شدن ظرفیت دیسک سایت از دسترس خارج شده باشه ؟
ممنون میشم راحنمایی بفرمایید
سلام پوریا جان؛
بله، ممکنه.
باید حجم رو بررسی کنید و اررو لاگ سایت رو هم چک کنید و ببینید خطا داره بازم یا نه.
اگر به دلیل پر شدن حجم نتونستید لاگین کنید به کنترل پنل، به پشتیبانی هاستینگتون تیکت بزنید تا بررسی کنن.
درباره بررسی ارور لاگ هم تو لینک زیر توضیح دادیم:
https://hub.iranserver.com/index.php?rp=/knowledgebase/1015/%D9%85%D8%B4%D8%A7%D9%87%D8%AF%D9%87-%D9%84%D8%A7%DA%AF-%D8%AE%D8%B7%D8%A7%D9%87%D8%A7-%D8%AF%D8%B1-%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA-%D8%A7%D8%AF%D9%85%DB%8C%D9%86.html&__cf_chl_jschl_tk__=pmd_enTkJaoQSiFBehjbFDA8VHjCmIQZg32xvTsXTI3akkI-1629609619-0-gqNtZGzNAyWjcnBszQt9
سلام
خدا خیرتون بده مطلب بسیار مفیدی بود.
من میخاستم قالب نصب کنم که این مشکل برام پیش اومد و سایتم پرید.
حالا برعکس تمام قالب های پیش فرض رو هم پاک کرده بودم که تو این مطلب به این نکته هم اشاره شده بود.
با کمک مطلب شما مشکلم خیلی راحت حل شد.
متشکرم
ممنون از نظر انرژیبخشتون آقای قناد؛ خیلی خوشحالیم که مقاله براتون مفید بوده :)