آموزش رفع خطای ۵۰۰ – خطای سرور داخلی Internal server error

در این مقاله به آموزش رفع خطای ۵۰۰ در وردپرس می پردازیم. خطای سرور داخلی ۵۰۰ یکی از رایج ترین خطاهای وردپرس است که به عنوان مالک سایت وردپرسی با آن مواجه هستید و از آنجا که این خطا هیچ اطلاعاتی دیگری به شما نمی دهد و به ندرت خطای واقعی سرور است (معمولاً سرور خوب کار می کند)، ممکن است بسیار گیج کننده باشد.

در این آموزش به بررسی دلایل ایجاد خطای ۵۰۰ و چگونگی رفع آن می پردازیم.

خطای ۵۰۰ در وردپرس چیست و علت ایجاد آن چه چیز است؟

هنگامی که از یک وب سایت بازدید می کنید، مرورگر شما یک درخواست به سروری که سایت را میزبانی می کند، می فرستد. سرور این درخواست را گرفته و آن را پردازش می کند. سپس منابع درخواست شده (PHP ، HTML ، CSS و غیره) را همراه با یک هدر HTTP ارسال می کند. HTTP حاوی کد وضعیت HTTP نیز هست.

کد وضعیت راهی برای اطلاع دادن به شما در مورد وضعیت درخواست است و می تواند کد وضعیت ۲۰۰ به معنی خوب بودن همه چیز یا کد وضعیت ۵۰۰ به معنای رخ دادن خطا باشد.

انواع مختلفی از ارور ۵۰۰  (۵۰۰ ، ۵۰۱ ، ۵۰۲ ، ۵۰۳ ، ۵۰۴ و غیره) وجود دارد و همه آنها معنای متفاوتی می دهند. خطای ۵۰۰ سرور داخلی نشان می دهد که سرور با شرایط غیرمنتظره ای روبرو شده است که مانع از انجام عملکرد صحیح آن شده است.

به دلیل وجود سرورهای وب مختلف و سیستم عامل ها و مرورگرهای متفاوت، خطای ۵۰۰ می تواند خود را به چندین روش مختلف نشان دهد. اما همه آنها معنی یکسانی می دهند. در ادامه آموزش چند نمونه از خطاهای ۵۰۰ متداول را معرفی می کنیم:

  • ۵۰۰ Internal Server Error
  • HTTP 500
  • Internal Server Error
  • HTTP 500-Internal Server Error
  • ۵۰۰ Error

همچنین ممکن است پیامی مشابه شکل زیر مشاهده کنید.

هنگام رخ دادن خطای ۵۰۰ ممکن است یک صفحه سفید خالی مشاهده کنید. در مرورگرهایی مانند Firefox و Safari مشاهده یک صفحه خالی سفید هنگام رخ دادن ارور ۵۰۰ بسیار متداول است.

خطای سرور داخلی۵۰۰ ، مختص وردپرس نیست و می تواند برای هر وب سایتی که روی سرور وب اجرا می شود، اتفاق بیفتد. از آنجا که این خطا یک خطای عمومی است، اطلاعاتی راجع به آن به توسعه دهنده داده نمی شود.

خطای ۵۰۰ در وردپرس به دلایل مختلفی رخ می دهد. مهمترین دلایل ایجاد این خطا عبارتند از:

  • کش مرورگر
  • اعتبار نادرست لاگین دیتابیس
  • عیب در دیتابیس
  • خراب شدن فایل های نصب وردپرس
  • مشکلات مربوط به سرور دیتابیس
  • خراب شدن فایل های هسته وردپرس
  • خراب شدن فایل htaccess. و محدودیت حافظه PHP
  • مشکلات مربوط به قالب و افزونه ها
  • وقفه PHP یا خطاهای عمده در PHP با افزونه های شخص ثالث
  • سطح دسترسی اشتباه فایل ها و فولدرها
  • محدودیت حافظه PHP روی سرور
  • خطا در اسکریپت CGI و Perl

قسمت بعدی آموزش به بررسی نحوه رفع خطای ۵۰۰ اختصاص دارد.

آموزش رفع خطای ۵۰۰ در وردپرس

بسیاری از کاربران پس از مشاهده ارور ۵۰۰ نمی دانند از کجا شروع به رفع مشکل کنند. معمولاً ارور ۵۰۰ روی سرور اتفاق می افتد اما تجربه نشان می دهد که این ارورها به دو دلیل ایجاد می شوند. اولین دلیل آن خطای کاربر و دومین دلیل آن مشکلات سمت سرور است. در ادامه آموزش به بررسی چگونگی رفع خطای ۵۰۰  می پردازیم.

بارگذاری مجدد صفحه

اولین و ساده ترین اقدامی که در مواجه با ارور ۵۰۰ باید انجام دهید این است که اندکی صبر کرده و بعد با فشردن کلید F5 یا Ctrl+F5 صفحه را مجدداً لود کنید. ممکن است در آن لحظه هاست یا سرور بیش از حد بارگذاری شده باشد (Overload) و چند دقیقه بعد با بارگیری مجدد سایت برگردد. همچنین می توانید یک مرورگر دیگر را امتحان کنید.

گاهی اوقات ارور ۵۰۰ بعد از بروزرسانی یک افزونه یا قالب وردپرس اتفاق می افتد و معمولاً مربوط به هاست هایی است که به درستی تنظیم نشده اند. به این ترتیب که بعد از بروزرسانی قالب یا افزونه یک وقفه موقت ایجاد می شود. کافی است چند لحظه صبر کنید و بعد مجدداً صفحه را بارگذاری نمایید.

کار دیگری که می توانید انجام دهید این است که وب سایت خود را در downforeveryoneorjustme.com وارد کنید. این وب سایت به شما می گوید که سایت از بین رفته است یا از سمت شما مشکلی پیش آمده است.

پاک کردن کش مرورگر

پاک کردن کش مرورگر یکی دیگر از مراحل عیب یابی است که بهتر است قبل از وارد شدن به مراحل پیشرفته تر عیب یابی آن را امتحان کنید. پاک کردن کش مرورگر به این صورت است که اگر در یک صفحه قرار دارید و می خواهید تنها کش آن صفحه را پاک کنید، از Ctrl+F5 استفاده کنید.

برای پاک کردن کل کش مرورگر باید به ترتیب زیر عمل کنید:

  • برای مرورگر گوگل کروم روی آیکون سه نقطه در گوشه سمت راست بالای صفحه کلیک کنید. سپس گزینه More Tools را پیدا کرده و از زیر منو Clear browsing data را انتخاب کنید.

  • برای مرورگر فایرفاکس روی آیکون Hamburger در گوشه سمت راست بالای صفحه مرورگر کلیک کرده و History را انتخاب کنید.

سپس در منوی ظاهر شدهClear Recent History را انتخاب کنید.

فعال کردن اشکال زدایی (Debugging) برای رفع خطای ۵۰۰

در مواجه با ارور ۵۰۰ قبل از اقدام به انجام هر کاری بهتر است اشکال زدایی (Debugging) خود را روشن کنید. انجام این کار اگرچه ممکن است مشکل شما را برطرف نکند اما باعث می شود دید بهتری نسبت به آنچه که اتفاق افتاده است پیدا کنید.

برای انجام این کار فایل wp-config.php سایت خود را که در دایرکتوری root قرار دارد، باز کنید. درون این فایل به دنبال WP_DEBUG بگردید. وقتی آن را پیدا کردید می توانید WP_DEBUG را از حالت FALSE به TRUE تغییر دهید.

اگر WP_DEBUG را پیدا نکردید باید خودتان آن را ایجاد کنید. در پایان باید خطی شبیه شکل زیر در فایل wp-config.php داشته باشید.

define( "WP_DEBUG", true );

پس از ذخیره کردن فایل، سایت خود را مجدداً بارگذاری کنید. اگر خوش شانس باشید ممکن است خطای ۵۰۰ ناپدید شده و با یک خطای دیگر جایگزین شده باشد. خطایی که به شما می گوید مشکل از کجاست.

حتی اگر با روشن کردن اشکال زدایی نتیجه مطلوب را نگیرید باز هم روشن کردن آن تا رفع مشکل توصیه می شود. فراموش نکنید که بعد از رفع مشکل، اشکال زدایی را خاموش کنید. برای انجام این کار کافی است WP_DEBUG را به حالت FALSE برگردانید.

بررسی کار کردن بخش ادمین سایت

وارد بخش مدیریت سایت خود به آدرس http://yoursite.com/wp-admin شوید. اگر این صفحه به درستی بارگذاری شده و به شما امکان ورود به سیستم را بدهد می توانید مطمئن باشید مشکل از یک افزونه یا قالب است.

غیرفعال کردن همه افزونه ها و تغییر دادن قالب سایت

اگر به داشبورد خود دسترسی دارید، تمام افزونه های خود را غیرفعال کنید. اگر وب سایت شما بدون خطای سرور بارگیری شود، مشکل از طرف یکی از افزونه های شما بوده است. می توانید آنها را یک به یک فعال کنید تا بفهمید کدام یک باعث ایجاد مشکل شده است.

اگر مشکل از افزونه ها نبود، قالب سایت خود را عوض کرده و به یک قالب پیش فرض و بدون تغییر وردپرس مانند قالب ۲۰۱۷ سوئیچ کنید. اگر سایت بدون خطای ۵۰۰ بارگیری شود، قالب شما مشکل ساز بوده است.

افزایش میزان حافظه برای رفع خطای ۵۰۰

گاهی اوقات خطای سرور داخلی ۵۰۰ به خاطر تجاوز از حد حافظه PHP رخ می دهد. اگر خطای ۵۰۰ را هنگام وارد شدن به بخش ادمین وردپرس یا آپلود کردن تصویر در wp-admin مشاهده می کنید باید حافظه خود را افزایش دهید.

برای انجام این کار فایل wp-config.php سایت وردپرسی خود را باز کنید. این فایل در دایرکتوری root قرار دارد. سپس دنبال WP_MEMORY_LIMIT بگردید. در صورت وجود، مقدار را به چیزی مانند ۶۴M تغییر دهید.

اگر WP_MEMORY_LIMIT را پیدا نکردید باید آن را ایجاد کنید. در نهایت باید خطی مشابه زیر در فایل wp-config.php داشته باشید.

define('WP_MEMORY_LIMIT', '64M');

روش دیگر برای افزایش حافظه PHP این است که وارد File Manager هاست خود شده و به مسیر public_html/wp-admin بروید. حال در این فولدر یک فایل جدید با نام PHP.ini ساخته و کد زیر را داخل فایل قرار دهید.

memory=64MB

این کد به وردپرس می گوید که حافظه PHP را به ۶۴M افزایش دهد. پس از انجام این کار تغییرات را ذخیره کرده و سایت را مجدداً بارگذاری کنید. اگر ارور ۵۰۰ رفع شده بود باید بدانید که مشکل به صورت موقت حل شده است. این احتمال وجود دارد که یک کد خراب در جایی از سایت شما (مانند یک افزونه خوب کد گذاری نشده) وجود دارد که منابع باارزش شما را مصرف می کند. توصیه می شود از شرکت هاستینگ وب خود بخواهید به بررسی پرونده های وب بپردازد تا به شما در عیب یابی بهتر کمک کند.

بررسی فایل htaccess.

فایل htaccess. شامل قوانینی است که به سرور می گوید در شرایط خاص چه کاری انجام دهد. این فایل معمولاً برای بازنویسی URL ها، ممانعت از هکرها برای دسترسی به سایت، فعال سازی فشرده سازی gzip، تغییر حداکثر اندازه بارگذاری و بسیاری موارد دیگر استفاده می شود.

فایل htaccess. فایل حساسی است و برای ویرایش آن باید احتیاط های لازم را به عمل آورید. به عنوان مثال فراموش کردن یک فاصله می تواند خطای ۵۰۰ ایجاد کرده و سایت شما (شامل ناحیه ادمین) را متوقف کند.

برای بررسی این موضوع که ارور ۵۰۰ به خاطر خطا در فایل htaccess. ایجاد شده است یا خیر، فایل htaccess. سایت خود که در فولدر root وردپرس قرار دارد را باز کنید. یک نسخه پشتیبان از آن تهیه کرده و سپس تمام کدهای داخل صفحه یا کل فایل را پاک کنید.

اگر با پاک کردن فایل htaccess ارور ۵۰۰ رفع شده باشد، مشکل از این فایل بوده است. می توانید فایل را بازیابی کرده و خط به خط آن را بررسی کنید تا مشکل را پیدا کنید. یا از یک توسعه دهنده بخواهید به شما کمک کند.

همچنین می توانید در پیشخوان وردپرس به مسیر تنظیمات » پیوندهای یکتا رفته و بدون آنکه تغییری در این صفحه ایجاد کنید روی دکمه ذخیره کلیک کنید. این کار باعث ساخت یک فایل htaccess. جدید با قوانین بازنویسی مناسب می شود.

آپلود مجدد فایل های هسته وردپرس برای رفع خطای ۵۰۰

اگر با تمام ترفندهای فوق موفق به رفع خطای ۵۰۰ نشدید ممکن است خطا به خاطر یک فایل خراب در هسته وردپرس باشد. بهتر است فولدرهای wp-admin و wp-includes را مجدداً آپلود کنید. نگران نباشید این کار باعث از بین رفتن اطلاعات شما نمی شود.

ابتدا باید با رفتن به وب سایت WordPress.org و کلیک روی دکمه Download یک نسخه جدید وردپرس را دانلود کنید.

با این کار فایل zip وردپرس در کامپیوتر شما نصب می شود. شما باید این فایل zip را استخراج کرده و فولدر wordpress را پیدا کنید.

سپس دسترسی به سایت وردپرس از طریق FTP با استفاده از یک FTP client مانند FileZilla ایجاد کنید.. سپس به فولدر root وب سایت خود بروید. این فولدر شامل فولدرهای wp-admin، wp-includes و wp-content است.

در ستون سمت چپ فولدر wordpress را در کامپیوتر خود باز کنید. سپس فولدرهای wp-admin و wp-includes را انتخاب کرده و روی آنها کلیک راست کنید. پس از آن گزینه Upload را انتخاب کنید.

FTP client شما این فولدرها را به سمت سرور ارسال می کند. سپس از شما می پرسد که می خواهید این فایل ها را بازنویسی کنید یا خیر. گزینه Overwrite و پس از آن Always use this action را انتخاب کنید.

حال فایل های جدید جایگزین فایل های قدیمی وردپرس شده و اگر خطای ۵۰۰ به دلیل اشکال در فایل های قدیمی ایجاد شده باشد، این خطا برطرف می شود.

استفاده از نسخه جدید PHP

اگرچه نسخه های قدیمی PHP معمولاً باعث ایجاد ارور ۵۰۰ نمی شوند با این حال قبل از صرف وقت و هزینه بهتر است با هاست خود صحبت کرده و از آنها بخواهید از جدیدترین نسخه PHP استفاده کنند.PHP 7 برخی از ویژگی های نسخه های قبلی را از بین برده بنابراین ممکن است یک افزونه از تابعی استفاده کند که در نسخه های قدیمی PHP در دسترس نباشد.

خطای سطح دسترسی

خطای دسترسی برای یک فایل یا فولدر در سایت شما می تواند باعث ایجاد ارور ۵۰۰ شود. در این قسمت از آموزش توصیه های مختصری برای تنظیم درست سطح دسترسی فایل ها و فولدرها در وردپرس ارائه می دهیم. در مقاله آموزش سطح دسترسی فایل ها و فولدرها در وردپرس می توانید اطلاعات مفصلی در این مورد به دست آورید.

  • همه فایل ها باید سطح دسترسی ۶۴۴  (-rw-r-r) یا ۶۴۰ داشته باشند.
  • همه دایرکتوری ها باید دارای سطح دسترسی ۷۵۵  (drwxr-xr-x) یا ۷۵۰ باشند.
  • به هیچ دایرکتوری نباید سطح دسترسی ۷۷۷ داده شود ، حتی دایرکتوری های آپلود.
  • wp-config.php می تواند روی سطح دسترسی ۴۴۰ یا ۴۰۰ تنظیم شود تا سایر کاربران روی سرور نتوانند آن را بخوانند.

اگر تمام روش های ذکر شده در این آموزش نتوانند خطای ۵۰۰ ایجاد شده در وب سایت شما را برطرف کنند، با تیم پشتیبانی هاستینگ وب خود تماس بگیرید و از آنها کمک بخواهید. تیم پشتیبانی قادر خواهند بود تا سوابق سرور را بررسی کرده و علت اصلی خطا را بیابند.