خطای 500 در وردپرس یا Internal Server Error یکی از خطاهای رایج و گاهی مبهم است؛ چون معمولاً بهجای نمایش علت دقیق، فقط یک پیام کلی از سمت سرور نشان داده میشود. این خطا میتواند هنگام باز شدن سایت، ورود به پیشخوان، ذخیره نوشته، نصب افزونه یا حتی فقط در بعضی صفحات رخ دهد.
در این راهنما یک مسیر عیبیابی مرحلهبهمرحله را دنبال میکنیم تا بدون حدسزدن، علت خطای 500 را پیدا کنید؛ از بررسی افزونه و قالب گرفته تا فایل .htaccess، نسخه PHP، محدودیت حافظه، سطح دسترسی فایلها و لاگ خطای هاست.
خطای 500 وردپرس چیست؟
خطای 500 یعنی سرور هنگام پردازش درخواست با مشکلی روبهرو شده، اما نمیتواند جزئیات دقیق آن را در مرورگر نمایش دهد. در وردپرس این مشکل معمولاً به کدنویسی افزونه یا قالب، تنظیمات نادرست سرور، فایل .htaccess، کمبود منابع هاست یا ناسازگاری نسخه PHP مربوط میشود.
پیامهایی که ممکن است ببینید عبارتاند از:
- 500 Internal Server Error
- HTTP Error 500
- Internal Server Error
- This page isn’t working
- سایت با خطای 500 باز نمیشود
قبل از شروع عیبیابی چه کار کنیم؟
قبل از هر تغییر مهم، اگر به هاست دسترسی دارید از فایلها و دیتابیس بکاپ بگیرید. اگر سایت کاملاً از دسترس خارج شده، بهتر است از طریق کنترلپنل هاست یا فایلمنیجر، یک نسخه از فایلهای مهم مانند wp-config.php و پوشه wp-content ذخیره کنید.
همچنین بهتر است بررسی کنید خطا برای همه کاربران رخ میدهد یا فقط برای شما. مرورگر دیگر، حالت ناشناس مرورگر و اینترنت دیگر را هم تست کنید تا مشکل کش مرورگر یا شبکه شخصی با خطای واقعی سرور اشتباه گرفته نشود.
چکلیست سریع رفع خطای 500 در وردپرس
| مرحله | اقدام پیشنهادی | هدف |
|---|---|---|
| 1 | بررسی لاگ خطای هاست | پیدا کردن فایل، افزونه یا خطای PHP مرتبط |
| 2 | غیرفعالکردن افزونهها | تشخیص تداخل یا خرابی افزونه |
| 3 | تغییر موقت قالب | بررسی خطای قالب فعال |
| 4 | بازسازی فایل .htaccess | رفع خطای ناشی از قوانین نادرست ریدایرکت و پیوند یکتا |
| 5 | بررسی نسخه PHP و محدودیت حافظه | رفع ناسازگاری یا کمبود منابع |
| 6 | بررسی سطح دسترسی فایلها | جلوگیری از خطای Permission |
| 7 | تماس با پشتیبانی هاست | بررسی خطاهای سمت سرور و محدودیت منابع |
1. لاگ خطای هاست را بررسی کنید
بهترین نقطه شروع برای رفع خطای 500، بررسی لاگ خطاست. چون پیام مرورگر معمولاً کلی است، اما لاگ سرور یا لاگ PHP میتواند مسیر فایل، نام افزونه، خطای حافظه یا خطای سینتکس را نشان دهد.
در کنترلپنلهای هاست معمولاً بخشی با عنوانهایی مانند Error Log، Raw Access، Metrics یا Logs وجود دارد. اگر از هاست اشتراکی استفاده میکنید و لاگ کامل در دسترس نیست، از پشتیبانی هاست بخواهید خطای دقیق مربوط به دامنه و زمان وقوع مشکل را بررسی کند.
اگر خطا به فایل یک افزونه یا قالب اشاره میکند، مرحلههای بعدی را با همان افزونه یا قالب شروع کنید.
2. همه افزونهها را موقتاً غیرفعال کنید
یکی از رایجترین دلایل خطای 500 در وردپرس، تداخل یا خطای افزونههاست. اگر به پیشخوان دسترسی دارید، از بخش افزونهها همه افزونهها را غیرفعال کنید و سایت را بررسی کنید. اگر سایت بالا آمد، افزونهها را یکییکی فعال کنید تا افزونه مشکلساز مشخص شود.
اگر به پیشخوان دسترسی ندارید، از فایلمنیجر هاست یا FTP وارد مسیر wp-content شوید و نام پوشه plugins را موقتاً تغییر دهید؛ مثلاً به plugins-disabled. با این کار وردپرس افزونهها را غیرفعال میکند. سپس سایت را تست کنید.
اگر مشکل رفع شد، نام پوشه را به plugins برگردانید و افزونهها را مرحلهبهمرحله بررسی کنید. افزونه مشکلدار را بهروزرسانی، جایگزین یا حذف کنید.
3. قالب فعال را موقتاً تغییر دهید
اگر غیرفعالکردن افزونهها نتیجه نداد، احتمال دارد مشکل از قالب فعال باشد. خطای PHP، فایل functions.php، قالبهای صفحه یا ناسازگاری قالب با نسخه PHP میتواند باعث خطای 500 شود.
اگر به پیشخوان دسترسی دارید، یک قالب پیشفرض و سالم وردپرس را فعال کنید. اگر به پیشخوان دسترسی ندارید، از طریق هاست وارد wp-content/themes شوید و نام پوشه قالب فعال را تغییر دهید. در صورتی که یک قالب پیشفرض نصب باشد، وردپرس ممکن است به آن برگردد.
اگر با تغییر قالب مشکل حل شد، فایلهای اخیراً ویرایششده قالب، نسخه قالب و سازگاری آن با وردپرس و PHP را بررسی کنید.
4. فایل .htaccess را بازسازی کنید
فایل .htaccess در سایتهای وردپرسی روی سرورهای Apache یا سازگار با آن، برای پیوندهای یکتا، ریدایرکتها و برخی تنظیمات امنیتی استفاده میشود. یک قانون اشتباه در این فایل میتواند باعث خطای 500 شود.
برای تست، وارد ریشه نصب وردپرس شوید و نام فایل .htaccess را موقتاً تغییر دهید؛ مثلاً به .htaccess-old. سپس سایت را باز کنید. اگر سایت بدون خطا باز شد، مشکل احتمالاً از همین فایل بوده است.
بعد از ورود به پیشخوان وردپرس، به بخش تنظیمات و سپس پیوندهای یکتا بروید و بدون تغییر خاصی، تنظیمات را ذخیره کنید تا وردپرس فایل .htaccess تازه بسازد. اگر افزونه امنیتی، کش یا ریدایرکت دارید، تنظیمات آن را هم بررسی کنید.
5. محدودیت حافظه PHP را بررسی کنید
کمبود حافظه PHP میتواند هنگام اجرای افزونههای سنگین، پردازش صفحهسازها، واردکردن اطلاعات یا اجرای درخواستهای مدیریتی باعث خطای 500 شود. در لاگ خطا معمولاً عبارتی مشابه memory exhausted دیده میشود.
برای بررسی اصولی، ابتدا از کنترلپنل هاست مقدار memory_limit را ببینید یا از پشتیبانی هاست بخواهید آن را بررسی کند. افزایش بیقاعده محدودیت حافظه راهحل دائمی نیست؛ اگر یک افزونه یا اسکریپت بیش از حد منابع مصرف میکند، باید علت اصلی هم پیدا شود.
6. نسخه PHP و سازگاری افزونهها را کنترل کنید
ناسازگاری نسخه PHP با قالب یا افزونهها یکی دیگر از علتهای رایج خطای 500 است. برای مثال ممکن است یک افزونه قدیمی با نسخه جدید PHP سازگار نباشد یا برعکس، سایت روی نسخه قدیمی PHP اجرا شود و افزونههای جدید خطا بدهند.
از بخش مدیریت PHP در هاست، نسخه فعلی PHP را بررسی کنید. قبل از تغییر نسخه PHP، حتماً بکاپ بگیرید و اگر سایت فروشگاهی یا پرترافیک است، بهتر است تغییر را در زمان کمترافیک انجام دهید. پس از تغییر نسخه، سایت، پیشخوان، فرمها و صفحات مهم را تست کنید.
7. سطح دسترسی فایلها و پوشهها را بررسی کنید
سطح دسترسی نادرست فایلها و پوشهها ممکن است باعث شود سرور نتواند فایلهای وردپرس را بخواند یا اجرا کند. بهصورت رایج، پوشهها معمولاً با سطح دسترسی 755 و فایلها با 644 تنظیم میشوند؛ اما تنظیم دقیق میتواند به نوع سرور و سیاست امنیتی هاست هم وابسته باشد.
از تغییر سطح دسترسی به مقادیر بسیار باز مانند 777 خودداری کنید، مگر اینکه پشتیبانی هاست در شرایط خاص و موقت آن را توصیه کرده باشد. سطح دسترسی نادرست میتواند مشکل امنیتی ایجاد کند.
8. فایلهای اصلی وردپرس را بررسی یا جایگزین کنید
اگر پس از بهروزرسانی ناقص، انتقال سایت یا آلودگی امنیتی با خطای 500 روبهرو شدهاید، ممکن است بعضی فایلهای اصلی وردپرس خراب یا ناقص باشند. در این حالت میتوانید از پیشخوان، وردپرس را دوباره نصب کنید؛ البته این گزینه فایلهای محتوایی و تنظیمات را حذف نمیکند، اما قبل از انجام آن بکاپ ضروری است.
اگر به پیشخوان دسترسی ندارید، جایگزینی دستی فایلهای اصلی وردپرس باید با دقت انجام شود. پوشه wp-content و فایل wp-config.php را حذف یا جایگزین نکنید، مگر اینکه دقیقاً بدانید چه کاری انجام میدهید.
9. افزونه کش، امنیت و ریدایرکت را بررسی کنید
افزونههای کش، امنیت، فایروال، بهینهسازی و ریدایرکت گاهی قوانین اضافهای در .htaccess یا تنظیمات سرور ایجاد میکنند. اگر خطای 500 بعد از فعالسازی یا تغییر تنظیمات یکی از این افزونهها رخ داده، همان افزونه را در اولویت بررسی قرار دهید.
پاککردن کش افزونه، غیرفعالکردن موقت قوانین فشردهسازی، ترکیب فایلها یا ریدایرکتهای پیچیده میتواند در تشخیص علت کمک کند. اگر سایت از CDN استفاده میکند، کش CDN را هم موقتاً پاک یا دور بزنید.
10. اگر خطا فقط در پیشخوان وردپرس رخ میدهد
گاهی سایت برای کاربران باز میشود، اما هنگام ورود به پیشخوان یا ذخیره تنظیمات با خطای 500 مواجه میشوید. در این حالت افزونههای مدیریتی، صفحهسازها، محدودیت حافظه، خطاهای AJAX و نسخه PHP را بیشتر بررسی کنید.
اگر مشکل شما بیشتر به ورود مربوط است، مطالعه راهنمای رفع مشکل ورود به پیشخوان وردپرس میتواند مسیر عیبیابی را کاملتر کند. همچنین اگر بهجای خطای 500 با پیام خطای بحرانی روبهرو هستید، راهنمای رفع خطای بحرانی وردپرس مرتبطتر است.
11. اگر سایت سفید شده یا خطا نمایش داده نمیشود
گاهی بهجای نمایش خطای 500، فقط صفحه سفید میبینید. این حالت میتواند به خطای PHP، کمبود حافظه یا غیرفعال بودن نمایش خطا مربوط باشد. در چنین شرایطی بررسی لاگ خطا مهمتر از هر چیز است.
برای این سناریو میتوانید از چکلیست رفع خطای صفحه سفید وردپرس هم استفاده کنید، چون بسیاری از مراحل عیبیابی با خطای 500 مشترک هستند.
12. چه زمانی با پشتیبانی هاست تماس بگیریم؟
اگر با غیرفعالکردن افزونهها، تغییر قالب و بازسازی .htaccess مشکل حل نشد، احتمالاً لازم است وضعیت سرور بررسی شود. خطاهای مربوط به محدودیت منابع، ماژولهای PHP، تنظیمات وبسرور، WAF، ModSecurity یا محدودیتهای امنیتی هاست معمولاً از سمت کاربر قابل تشخیص کامل نیستند.
هنگام ارسال تیکت، این اطلاعات را ارائه دهید:
- آدرس دقیق صفحهای که خطای 500 میدهد
- زمان تقریبی شروع خطا
- آخرین تغییرات انجامشده در سایت، افزونه یا قالب
- اینکه خطا در کل سایت است یا فقط پیشخوان و صفحات خاص
- درخواست بررسی Error Log و خطاهای PHP مربوط به دامنه
جمعبندی
برای رفع خطای 500 در وردپرس بهتر است از مسیر ساده و کمریسک شروع کنید: ابتدا لاگ خطا را بررسی کنید، سپس افزونهها و قالب را موقتاً غیرفعال کنید، فایل .htaccess را بازسازی کنید و بعد سراغ نسخه PHP، محدودیت حافظه، سطح دسترسی فایلها و تنظیمات هاست بروید.
این خطا معمولاً با یک تغییر اخیر، افزونه ناسازگار، قانون اشتباه در .htaccess یا محدودیت سمت سرور ارتباط دارد. اگر مرحلهها را منظم انجام دهید، احتمال پیدا کردن علت واقعی بسیار بیشتر از آزمونوخطای پراکنده خواهد بود.
