اگر هنگام ورود به سایت وردپرسی خود با خطای Internal Server Error مواجه شدهاید، احتمالاً اولین چیزی که به ذهنتان میرسد این است که «سایت خراب شده و نمیدانم از کجا باید شروع کنم!»
خطای 500 یکی از رایجترین خطاهای وردپرس است؛ اما نکته مهم اینجاست که این خطا معمولاً به یک دلیل مشخص اشاره نمیکند. سرور فقط اعلام میکند که هنگام پردازش درخواست، مشکلی غیرمنتظره رخ داده و نتوانسته پاسخ مناسبی به مرورگر ارسال کند.
خبر خوب این است که در بسیاری از موارد، رفع خطای 500 در وردپرس کار پیچیدهای نیست و با چند مرحله عیبیابی میتوان علت اصلی را پیدا کرد.
در این آموزش از جت پشتیبان قدمبهقدم بررسی میکنیم که خطای 500 چیست، چرا اتفاق میافتد و چطور میتوانید آن را در سایت وردپرسی خود برطرف کنید.
خطای 500 Internal Server Error چیست؟
خطای 500 Internal Server Error یک کد وضعیت HTTP است که نشان میدهد سرور هنگام پردازش درخواست کاربر با مشکلی مواجه شده است.
این خطا مختص وردپرس نیست و ممکن است در سایتهای مختلف با سیستمهای مدیریت محتوای متفاوت نیز دیده شود؛ اما در وردپرس معمولاً عواملی مانند افزونههای ناسازگار، فایل .htaccess خراب، کمبود حافظه PHP، مشکلات قالب یا فایلهای هسته وردپرس باعث ایجاد آن میشوند.
ممکن است این خطا را با عبارتهای مختلفی ببینید:
- 500 Internal Server Error
- HTTP 500 Error
- HTTP Error 500
- Internal Server Error
- 500 – Internal Server Error
ظاهر پیام ممکن است با توجه به نوع وبسرور و شرکت هاستینگ متفاوت باشد، اما مفهوم کلی یکسان است: سرور نتوانسته درخواست را به شکل صحیح پردازش کند.
چرا خطای 500 در وردپرس ایجاد میشود؟
خطای 500 یک علت واحد ندارد. به همین دلیل باید مرحلهبهمرحله عیبیابی کنید.
مهمترین دلایل عبارتاند از:
1. خراب شدن فایل .htaccess
فایل .htaccess یکی از فایلهای مهم در سایتهای وردپرسی است و در تنظیم قوانین بازنویسی URL و برخی تنظیمات سرور نقش دارد.اگر این فایل خراب شود یا دستورات نادرستی داخل آن قرار گرفته باشد، ممکن است کل سایت با خطای 500 مواجه شود.
2. کمبود حافظه PHP
وردپرس و افزونهها برای اجرای کدهای PHP به حافظه نیاز دارند.اگر یک افزونه، قالب یا فرآیند خاص مقدار زیادی از حافظه را مصرف کند و سایت به محدودیت تعیینشده برسد، ممکن است خطاهای مختلفی از جمله 500 ایجاد شوند.
3. افزونه ناسازگار یا خراب
گاهی بعد از نصب یا بهروزرسانی یک افزونه، سایت از دسترس خارج میشود.این اتفاق میتواند به دلیل ناسازگاری افزونه با نسخه وردپرس، PHP، قالب یا سایر افزونهها رخ دهد.
4. مشکل در قالب
قالب نیز میتواند باعث خطای سرور شود؛ مخصوصاً اگر کد PHP آن دارای خطا باشد یا با نسخه فعلی وردپرس یا PHP سازگار نباشد.
5. خراب شدن فایلهای اصلی وردپرس
در برخی شرایط، فایلهای هسته وردپرس ممکن است ناقص یا خراب شوند. این موضوع میتواند در اثر نصب ناقص، خطا هنگام بهروزرسانی یا تغییرات اشتباه در فایلهای سایت اتفاق بیفتد.
6. مشکل در سرور یا هاست
گاهی مشکل اصلاً از وردپرس نیست.مصرف بیش از حد منابع، خطاهای PHP، تنظیمات وبسرور، محدودیتهای هاست یا مشکلات موقت سرور میتوانند باعث ایجاد خطای 500 شوند.
قبل از رفع خطای 500 یک کار مهم انجام دهید
قبل از اینکه فایلهای وردپرس یا تنظیمات سرور را تغییر دهید، اگر امکانش را دارید یک نسخه پشتیبان کامل از سایت تهیه کنید.
اگر سایت شما فروشگاه ووکامرسی است، اهمیت بکاپ حتی بیشتر میشود؛ زیرا اطلاعات سفارشها، کاربران، محصولات و تنظیمات فروشگاه در دیتابیس قرار دارند.اگر به پیشخوان دسترسی ندارید، میتوانید از طریق پشتیبانی هاست بخواهید تا برای شما یک نسخه بکاپ از سایت تهیه کنند.
1. ابتدا صفحه را دوباره بارگذاری کنید
قبل از انجام تغییرات جدی، یک بار صفحه را Refresh کنید.گاهی اوقات خطای 500 به دلیل یک مشکل موقت در سرور یا افزایش لحظهای مصرف منابع ایجاد میشود.همچنین سایت را با یک مرورگر دیگر یا حالت Private/Incognito بررسی کنید.اگر خطا فقط برای شما نمایش داده میشود، احتمال دارد مشکل مربوط به کش مرورگر باشد.
2. کش مرورگر و وردپرس را پاک کنید
کش میتواند نسخهای قدیمی از صفحه یا حتی صفحه خطا را نگه دارد.
بنابراین بهتر است:
- کش مرورگر را پاک کنید.
- مرورگر را ببندید و دوباره باز کنید.
- سایت را در حالت ناشناس بررسی کنید.
- اگر از افزونه کش استفاده میکنید، کش وردپرس را نیز پاک کنید.
- در صورت استفاده از CDN، کش CDN را هم بررسی کنید.
اگر بعد از پاک کردن کش همچنان خطای 500 وجود داشت، سراغ مرحله بعد بروید.
3. فایل .htaccess را بررسی کنید
یکی از اولین فایلهایی که هنگام بروز خطای 500 در وردپرس باید بررسی شود، .htaccess است.این فایل معمولاً در پوشه اصلی وردپرس قرار دارد,برای دیدن مسیر اصلی یا همان ریشه هاست باید به کنترل پنل هاست مراجعه کنید.
فایل .htaccess ممکن است به دلیل نصب افزونه، تغییر تنظیمات، انتقال سایت یا ویرایش دستی خراب شود.
اگر به پیشخوان وردپرس دسترسی دارید
وارد مسیر زیر شوید:
پیشخوان وردپرس ← تنظیمات ← پیوندهای یکتا
بدون اینکه تنظیمات را تغییر دهید، روی ذخیره تغییرات کلیک کنید.وردپرس در بسیاری از موارد قوانین مربوط به پیوندهای یکتا را دوباره ایجاد یا بهروزرسانی میکند. مستندات رسمی وردپرس نیز این روش را یکی از راهکارهای اصلی برای مشکل .htaccess معرفی میکند.
حالا سایت را دوباره بررسی کنید.
اگر به پیشخوان دسترسی ندارید
از طریق File Manager که در کنترل پنل هاست شما وجود دارد فایل: .htaccessرا پیدا کنید.قبل از هر کاری بهتر است یک نسخه از آن نگه دارید و سپس نام فایل را مثلاً به: .htaccess_oldتغییر دهید.حالا سایت را بررسی کنید.اگر سایت دوباره بالا آمد، احتمال بسیار زیادی وجود دارد که مشکل از .htaccess بوده است.
بعد از ورود مجدد به پیشخوان، به مسیر: تنظیمات ← پیوندهای یکتا بروید و یک بار روی ذخیره تغییرات کلیک کنید تا قوانین استاندارد وردپرس دوباره ایجاد شوند.
نکته: اگر روی سایت خود قوانین امنیتی یا تنظیمات سفارشی در .htaccess داشتهاید، حذف کامل فایل بدون تهیه نسخه پشتیبان میتواند باعث از بین رفتن آن تنظیمات شود.
4. محدودیت حافظه PHP را بررسی کنید
یکی دیگر از دلایل رایج خطاهای وردپرس، محدودیت حافظه PHP است.وردپرس برای اجرای افزونهها، قالبها، پردازش تصاویر و عملیات مختلف به حافظه PHP نیاز دارد.اگر یک فرآیند حافظه زیادی مصرف کند، ممکن است سایت با خطا مواجه شود.برای نمونه، در برخی سایتها افزایش حافظه وردپرس به شکل زیر انجام میشود:
define( 'WP_MEMORY_LIMIT', '256M' );
این کد باید در فایل wp-config.php و قبل از خط مربوط به پایان ویرایش فایل قرار بگیرد.وردپرس نیز تنظیم WP_MEMORY_LIMIT را برای تعیین میزان حافظه قابل استفاده PHP توسط وردپرس ارائه میکند؛ البته محدودیت نهایی میتواند به تنظیمات سرور و هاست نیز وابسته باشد.
5. همه افزونهها را غیرفعال کنید
اگر .htaccess و حافظه PHP مشکلی نداشتند، یکی از مهمترین مراحل بعدی، بررسی افزونههاست.گاهی یک افزونه بهتنهایی یا در ترکیب با افزونه دیگری باعث خطای 500 میشود.
اگر به پیشخوان دسترسی دارید
به مسیر: افزونهها ← افزونههای نصبشده مراجعه کنید و افزونهها را غیرفعال کنی,.سپس سایت را بررسی کنید.
اگر خطای 500 برطرف شد، یعنی احتمالاً یکی از افزونهها عامل مشکل است.حالا افزونهها را یکییکی فعال کنید و بعد از فعال کردن هر افزونه سایت را بررسی کنید.وقتی دوباره خطای 500 ظاهر شد، احتمال زیادی دارد افزونهای که آخرین بار فعال کردهاید عامل مشکل باشد.
اگر به پیشخوان دسترسی ندارید
از طریق File Manager که پس از ورود به کنترل پنل هاست آن رامشاهده خواهید کرد, وارد پوشه زیر شوید: wp-contentسپس پوشه:pluginsرا پیدا کنید.
نام آن را موقتاً تغییر دهید؛ مثلاً:plugins_disabled وردپرس دیگر افزونهها را از این مسیر پیدا نمیکند و در نتیجه افزونهها غیرفعال میشوند.
حالا سایت را بررسی کنید.اگر سایت بالا آمد، نام پوشه را دوباره به:pluginsبرگردانید.
سپس از طریق پیشخوان، افزونهها را تکتک فعال کنید تا افزونه مشکلساز مشخص شود.
این روش یکی از روشهای استاندارد عیبیابی خطاهای وردپرس است.
6. قالب وردپرس را بررسی کنید
اگر غیرفعال کردن افزونهها نتیجهای نداشت، ممکن است مشکل از قالب باشد.برای تست، قالب فعلی را موقتاً با یکی از قالبهای پیشفرض وردپرس جایگزین کنید.اگر به پیشخوان دسترسی دارید: نمایش ← پوستهها و یکی از قالبهای پیشفرض نصبشده را فعال کنید.اگر بعد از تغییر قالب سایت درست شد، احتمالاً مشکل از قالب قبلی یا یکی از قابلیتهای آن است.
اگر به پیشخوان دسترسی ندارید
در این حالت میتوان از روشهای مدیریت فایل یا دیتابیس برای تغییر قالب فعال استفاده کرد؛ اما اگر با این بخشها آشنایی ندارید، بهتر است قبل از ایجاد تغییر در دیتابیس از پشتیبانی وردپرس استفاده کنید.
جمعبندی
خطای 500 Internal Server Error یکی از آزاردهندهترین خطاهایی است که ممکن است در یک سایت وردپرسی مشاهده کنید؛ اما در بیشتر مواقع با یک روند اصولی عیبیابی میتوان علت آن را پیدا کرد.
بهتر است برای رفع این خطا، بهجای تغییر تصادفی فایلهای سایت، از سادهترین موارد شروع کنید:
کش → .htaccess → حافظه PHP → افزونهها → قالب → فایلهای هسته → Debug Log → Error Log سرور اگر مشکل بعد از یکی از این مراحل برطرف شد، همان مرحله سرنخ مهمی برای پیدا کردن علت اصلی است.
همچنین به یاد داشته باشید که افزایش Memory Limit یا جایگزین کردن فایلها همیشه به معنی «حل ریشهای مشکل» نیست. اگر یک افزونه ناسازگار یا کدنویسی مشکلدار باعث مصرف بیش از حد منابع شده باشد، باید عامل اصلی نیز پیدا و اصلاح شود.
اگر مدیریت سایت برایتان مهم است، داشتن بکاپ منظم، بهروزرسانی اصولی وردپرس، استفاده از افزونههای معتبر و مانیتورینگ خطاهای سایت میتواند احتمال بروز مشکلات جدی را کاهش دهد.و اگر خطای 500 در سایت شما باعث شده به پیشخوان دسترسی نداشته باشید یا سایت فروشگاهیتان از دسترس خارج شده است، بهتر است قبل از انجام تغییرات حساس روی فایلها و دیتابیس، از یک متخصص پشتیبان وردپرس کمک بگیرید.
جت پشتیبان میتواند در شناسایی علت خطا، بررسی لاگها، عیبیابی افزونه و قالب، رفع مشکلات وردپرس و بررسی خطاهای سرور به شما کمک کند.