خطای ۵۰۰، مشکلی است که گاهی وقتها هم کاربران از آن شاکی میشوند، هم مدیران سایتها!
اما این خطا اصلاً چیست و چطور ایجاد میشود؟
در مقاله امروز وبلاگ ایران سرور، به این سوال جواب میدهیم؛ به علاوه، یادتان میدهیم که چطور ارور ۵۰۰ را رفع کنید!
با ما همراه باشید.
ارور ۵۰۰ چیست؟
ارور ۵۰۰ که به آن خطای ۵۰۰ یا HTTP Error 500 هم میگویند، یک خطا در سرور داخلی است. این خطا نشان میدهد که در سرور سایت، یک جای کار میلنگد و سرور نمیتواند جواب درخواست کاربر را بدهد.
خطای ۵۰۰ به چه صورت در سایت ظاهر میشود؟
پیغام ارور ۵۰۰ در شکلهای مختلفی ظاهر میشود، اما در هر صورت، معنای تمام آنها یکی است.
شما بسته به وبسایتی که در حال بازدید از آن هستید، ممکن است با یکی از پیغامهای زیر مواجه شوید:
- ۵۰۰ – Internal Server Error
- Temporary Error (500)
- Internal Server Error
- HTTP 500 Internal Error
- ۵۰۰ Error
- HTTP Error 500
- ۵۰۰. That’s an error
- ۵۰۰ Internal Server Error
- کد خطا: ۵۰۰
علت خطای ۵۰۰ (HTTP Error 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 روی گزینه ۱۰۰ lines کلیک کنید تا ۱۰۰ خطای آخر به شما نمایش داده شود.
در سیستم های مدیریت محتوا امکان مشاهده خطا از طریق فایل کانفیگ آنها نیز مقدور است.
فعال کردن امکان مشاهده خطا در وردپرس
فایل wp-config.php موجود در public_html هاست را باز کرده و مقدار WP_DEBUG’ را به true تغییر دهید.
فعال کردن امکان مشاهده خطا در جوملا
جهت فعال کردن امکان مشاهده خطا در سایتهای جوملا در فایل configuration.php مقدار error_reporting را به کد زیر تغییر دهید.
۱ |
public $error_reporting = '۱';
|
فعال کردن امکان مشاهده خطا در پرستاشاپ
برای مشاهده خطاهای 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 را از فایل دانلودی حذف کرده و سایر پوشهها و فایلهای موجود را با پوشه و فایل موجود در هاست خود تعویض کنید.
با این کار اطلاعات شما پاک نخواهند شد و فقط در صورت وجود مشکل از جانب هسته وردپرس، مشکل برطرف میشود.
حرف آخر
این هم از مراحل رفع ارور ۵۰۰ در سایت!
ما راههای مختلف برای حل مشکل خطای ۵۰۰ را پیش پایتان گذاشتیم؛ اگر در هر کدام از این راهها به مشکل خوردید، حتماًَ در بخش نظرات مشکلتان را مطرح کنید تا شما را راهنمایی کنیم.
اگر این مقاله برایتان مفید بود، آن را با دوستان خودبهاشتراک بگذارید.
۵ دیدگاه. Leave new
بسیار عالی و دقیق
ممنون از وقتی که میزارین
سلام لطفا راهنمایی کنید.
پشتیبانی هاست علت رو از خود سایت عنوان کرد.
خطای فایل erro_log
[۲۵-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
و حالا لاین ۸۰ از فایلی که خطا داشت:
$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 رو برو می شم و با رفرش سایت مشکل حل میشه ولی خب این روند دوباره تکرار میشه و سرچ کنسول گوگل هم این ارور به من به عنوان خطا نشون می ده و این مشکل از وقتی شروع شد که من از المنتور برای طراحی سایت استفاده کردم و الان هم المنتور پرو تهیه کردم و برای همین نیاز دارم این خطا رفع کنم بدون اینکه المنتور پرو حذف کنم تم سایت من هم سلام المنتور هست الان من باید چیکار کنم دقیقا که این خطا دیگه اصلا نمایش داده نشه و اینکه از افزونه کش راکت استفاده می کنم
البته هر از گاهی هم خطا با این مضمون دریافت می کنم از بعضی از صفحات که خطای مهم در وردپرس شما روی داده و پایینش هم لینک به مخزن آموزش رفع خطا وردپرس می ده
خیلی لطف بزرگی می کنید اگه من رو راهنمایی نمایید کنید که هردوی این خطا ها رو رفع کنم بدون حذف المنتور و تم
منتظر جوابتون هستم
احسان اسمعیلی
سلام
نیاز است ارور لاگ سایت را بررسی کنید تا ببینید در زمان خطای سایت چه اروری ثبت می شود، همچنین ممکن است بدلیل کمبود منابع سرور این مشکل رخ می دهد.