آموزش رفع خطای 500 Internal Server Error در هاست
هنگام بازدید از هر سایتی مرورگر شما درخواستی را برای سروری که سایت در آن میزبانی میشود ارسال میکند. اگر مرورگر کد وضعیت 200 دریافت کند محتوای سایت به شما نمایش داده میشود. کد وضعیت درواقع راهی برای اطلاع از وضعیت درخواست است. درصورتیکه مرورگر شما کد وضعیت 500 را دریافت کند به معنای مشکلی در سمت سرور است. در این حالت سرور میداند خطایی وجود دارد ولی توضیح دقیقی از خطا را در مرورگر به کاربر نشان نمیدهد.
نحوه نمایش خطای 500
با توجه به وبسرورهای مختلف، سیستم عاملها و مرورگرها، ارور 500 ممکن است به روشهای مختلفی دیده شود. البته منظور همه آنها یکی است. در زیر چند نمونه از پیغامهای خطای 500 که ممکن است مشاهده کنید را برای شما آماده کردهایم:
- 500 Internal Server Error
- HTTP 500
- Internal Server Error
- HTTP 500 – Internal Server Error
- 500 Error
- HTTP Error 500
- 500 – Internal Server Error
- 500 Internal Server Error. Sorry something went wrong.
- That’s an error. There was an error. Please try again later. That’s all we know
- The website cannot display the page – HTTP 500
- Is currently unable to handle this request. HTTP ERROR 500
علت بروز ارور http error 500
ارور http error 500 در وردپرس میتواند ناشی از دلایل زیادی باشد. اما به صورت کلی یکی از دلایل زیر باعث به وجود آمدن این ارور میشود:
- کش (حافظه پنهان) مرورگر
- اطلاعات ورود دیتابیس نادرست است
- پایگاه داده خراب است
- فایلهای خراب در نصب وردپرس
- مشکلات موجود در سرور پایگاه داده
- فایلهای اصلی وردپرس خراب است
- پرونده .htaccess و حافظه PHP خراب است
- مشکلات مربوط به افزونهها
- مشکل زمانبندی PHP
- مجوزهای پوشه یا فایل اشتباه است
- محدودیت حافظه PHP
- پرونده htaccess خراب شده است
نحوه رفع خطای 500 (ارور داخلی سرور)
فرض کنید الان شما با خطای 500 داخلی سرور روبهرو شدید و نمیدانید برای رفع خطا از کجا شروع کنید. نخست بدانید که در بیشتر اوقات این خطا همانطور که از نامش هم مشخص است مربوط به سرور وبسایت است اما بر اساس تجربه گاهی این خطا مربوط به سمت کاربر هم میتواند باشد.
کش و کوکی مرورگر را پاک کنید
قبل از وارد شدن به مراحل عیبیابی خطا، پاک کردن کش مرورگر (حافظه پنهان) و همچنین کوکیهایی که احتمال دارد با پیام خطای ۵۰۰ مرتبط باشند، کمککننده هستند.
صفحه را ریفرش کنید.
اولین و سادهترین کاری که هنگام روبهرو شدن با خطای 500 باید امتحان کنید ریفرش کردن صفحه چند دقیقه بعد از خطاست یا اینکه سایت را در مرورگر دیگری باز کنید. ممکن است زمانی که شما سایت را باز کردید، در همان لحظه سرور یا هاست، اورلود (Overload) شده باشد و بلافاصله سایت دوباره آنلاین شود که با ریفرش کردن سایت خطا برای شما برطرف میشود.
گاهی این خطا پس از بهروزرسانی یک افزونه یا قالب سایت معمولا روی هاستهایی که بهدرستی تنظیم نشده باشند رخ میدهد و برای چند ثانیه وقفه موقت ایجاد میشود. در این حالت است که با ریفرش کردن وبسایت خطا برطرف میشود.
بررسی لاگ (log) سرور
در فایل لاگ سرور خود میتوانید خطای پیش آمده را ببینید. اگر سرور شما ابزار گزارشدهی (log) ندارد میتوانید برای فعالسازی حالت عیبیابی وردپرس دستور زیر را به فایل wp-config.php اضافه کنید تا لاگ فعال شود.
define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true );
define( ‘WP_DEBUG_DISPLAY’, false );
پوشه گزارشها (log) در وردپرس معمولا در پوشه wp-content/ هستند:
فایل لاگ در وبسرور آپاچی در مسیر /var/log/apache2/error.log و در انجینایکس در مسیر /var/log/nginx/error.log قرار دارد.
اگر خطای 500 بهدلیل خطای fatal PHP نمایش داده میشود. میتوانید گزارش خطای PHP را با افزودن دستور زیر به فایل لاگ PHP فعال کنید.
ini_set(‘display_errors’, ۱);
ini_set(‘display_startup_errors’, ۱);
error_reporting(E_ALL);
همچین شاید نیاز باشد فایل php.ini خود را بهصورت زیر تغییر دهید:
display_errors = on
بررسی خطاهای اتصال به پایگاه داده
خطای اتصال به پایگاه داده میتواند باعث خطای 500 شود. در تصویر زیر مثالی از پیام «خطا در ایجاد اتصال پایگاه داده» آمده است:
صفحه خالی نشان از این دارد که اتصال بهدرستی کار نمیکند. این خطا نهتنها فرانتاند سایت شما را نابود میکند، بلکه از دسترسی شما به داشبورد وردپرس نیز جلوگیری میکند. دلایل رایج این اتفاق را در زیر میآوریم:
- اعتبارنامه ورود به پایگاه داده شما نادرست است.
- خراب شدن پایگاه داده وردپرس
- وجود فایلهای خراب در نصب وردپرس
- مشکلات دیگر با پایگاه داده سرور
افزونهها و پوستههای خود را بررسی کنید
افزونهها، پوستهها، اسکریپتهای شخص سوم (third-party) و غیره بهراحتی میتوانند خطای ۵۰۰ را ایجاد کنند. در این مرحله به مسیر پیشخوان وردپرس > افزونهها > افزونههای نصب شده بروید و یکی از افزونههای سایتتان را غیرفعال کنید و سایت را دوباره لود کنید اگر خطا برطرف نشده بود دوباره آن افزونه را فعال کنید و این روند را یکییکی برای افزونههای سایتتان انجام دهید تا زمانی که خطا رفع شود و متوجه شوید کدام افزونه باعث خطای 500 شده است.
نصب دوباره هسته وردپرس
گاهی فایلهای اصلی وردپرس (بهویژه در سایتهای قدیمی) خراب میشوند. آپلود دوباره هسته وردپرس بدون اینکه تاثیری روی افزونهها و قالب بگذارد میتواند خطای 500 را برطرف کند. قبل از این کار حتما یک نسخه پشتیبان (بکاپ) تهیه کنید.
خطای سطح دسترسی در فایل و پوشه
تعیین نادرست سطح دسترسی فایلها و پوشهها در وردپرس میتواند باعث خطای 500 شود. بهطورکلی سه نوع سطح دسترسی برای فایل و پوشه تعریف شده است:
خواندن (r)
نوشتن (w)
اجرا کردن (x)
شما میتوانید از طریق کنترل پنل یا FTP به سرور سایتتان متصل شوید و برای تغییر مجوزهای فایل و پوشه در وردپرس به روش زیر عمل کنید تا با خطای 500 روبهرو نشوید:
- سطح دسترسی همه فایلها باید 644 (-rw-r-r–) یا 640 باشد.
- سطح دسترسی همه دایرکتوریها باید 755 (drwxr-xr-x) یا 750 باشد.
- به هیچ دایرکتوری نباید سطح دسترسی ۷۷۷ داده شود، حتی دایرکتوریهای آپلود.
- سطح دسترسی فایل wp-config.php روی 440 یا 400 تنظیم شود تا سایر کاربران روی سرور نتوانند آن را بخوانند.
ویرایش فایل htaccess.
خطا در کدنویسی و مشکل در ساختار فایل htaccess. میتواند باعث خطای ۵۰۰ شود. فایل htaccess. را در دایرکتادمین از این مسیر File Manager –> public_html پیدا کنید و در سیپنل این فایل در پوشه public_html قرار دارد که به طور پیشفرض مخفی هست. در بالای صفحه سمت راست تنظیمات را انتخاب کنید و تیک گزینه «Show Hidden Files» را بزنید و ذخیره کنید. حالا نام فایل htaccess. را تغییر دهید و صفحه خطا را ریفرش کنید اگر خطا رفع شده بود میتوانید برای ساخت دوباره فایل htaccess. در بخش تنظیمات –> پیوندهای یکتا را انتخاب کنید سپس در انتهای صفحه روی گزینه ذخیره تغییرات کلیک کنید.
مشکلات سرور را با شرکت هاست خود در میان بگذارید
در پایان، از آنجاییکه خطای 500 نیز میتواند به دلیلهای مختلفی رخ دهد، همیشه میتوانید با شرکت هاست خود تماس بگیرید چون گاهی عیبیابی این خطاها بدون متخصص دشوار است.