رفع خطای ۵۰۰ وردپرس زمانی مهم میشود که بهجای سایت، صفحه سفید یا پیام 500 Internal Server Error میبینید. این اتفاق نگرانکننده است، مخصوصاً اگر فروشگاه دارید و کاربران نمیتوانند سفارش ثبت کنند. خبر خوب این است که در بسیاری از مواقع میتوان با پیدا کردن گزارش خطا و بررسی تغییرات اخیر، بدون دستکاری گسترده سایت، علت را مشخص کرد.
در این راهنما قدمبهقدم نشان میدهیم از کجا شروع کنید؛ چه افزونه یا فایلی را بررسی کنید، چه زمانی تنظیمات PHP اهمیت دارد و چطور از خطر حذف اطلاعات جلوگیری کنید. برای هر راهکار هم توضیح میدهیم چه زمانی بهدرد میخورد و چه احتیاطی لازم است.
خطای ۵۰۰ وردپرس چیست؟
کد HTTP 500 یا Internal Server Error یعنی سرور هنگام رسیدگی به درخواست با مشکلی مواجه شده، اما توضیح دقیق علت را در پاسخ عمومی به مرورگر ارائه نکرده است. گاهی فقط یک صفحه خاص باز نمیشود؛ گاهی هم همزمان پیشخوان و صفحه اصلی از دسترس خارج میشوند. حتی ممکن است بهجای عبارت 500، پیام «یک خطای مهم در این وبسایت رخ داده است» دیده شود.
برای رفع خطای ۵۰۰ وردپرس، اول باید بدانیم که این پیام الزاماً به معنای خرابشدن کامل سایت نیست. یک افزونه ناسازگار، خطای PHP، تنظیمات بازنویسی نشانیها یا محدودیت منابع میتواند چنین وضعیتی ایجاد کند. به همین دلیل پیدا کردن علت، از امتحانکردن راهحلهای تصادفی مهمتر است.
قبل از شروع عیبیابی چه کار کنیم؟
اگر سایت فروشگاهی یا پرترافیک دارید، اولین قدم برای رفع خطای ۵۰۰ وردپرس تهیه نسخه پشتیبان قابل بازیابی از فایلها و دیتابیس است. در صورتی که به پیشخوان دسترسی ندارید، میتوانید از File Manager کنترلپنل، سامانه بکاپ هاست یا پشتیبانی سرویس استفاده کنید. صرف دانلود چند فایل وردپرس، جایگزین بکاپ کامل نیست.
زمان شروع مشکل را یادداشت کنید و به این سؤال پاسخ دهید: درست قبل از خطا افزونه یا قالبی بروزرسانی شده؟ نسخه PHP تغییر کرده؟ انتقال هاست انجام شده؟ پاسخ این سؤالها معمولاً زمان عیبیابی را کوتاه میکند. اگر دسترسی دارید، اول تغییرات اخیر را بررسی کنید، اما چیزی را بدون نسخه پشتیبان حذف نکنید.
رفع خطای ۵۰۰ وردپرس؛ مرحله اول: بررسی لاگ PHP و وبسرور
در بسیاری از موارد، دقیقترین سرنخ برای رفع خطای ۵۰۰ وردپرس در Error Log قرار دارد. اگر از cPanel استفاده میکنید، بخش Metrics → Errors یا گزارشهای خطای مربوط به دامنه را بررسی کنید. بسته به پیکربندی هاست، خطاهای PHP ممکن است در فایلهای دیگری مانند error_log یا گزارشهای وبسرور ثبت شوند. روی سرور اختصاصی، مسیر لاگ به Apache، LiteSpeed، Nginx و PHP-FPM بستگی دارد.
به دنبال عباراتی مانند PHP Fatal error، Allowed memory size exhausted، Uncaught Error یا خطای بارگذاری یک فایل باشید. نام فایل و زمان وقوع را با خطایی که در مرورگر دیدهاید تطبیق دهید. چند خط قدیمی و نامرتبط، لزوماً علت مشکل فعلی نیستند.
اگر گزارش واضحی ندارید، اشکالزدایی وردپرس را میتوان بهطور موقت فعال کرد، اما برای سایت عملیاتی نباید پیامهای خطای حساس را به بازدیدکنندگان نشان داد. قبل از تغییر فایل wp-config.php از آن بکاپ بگیرید. اگر این ثابتها از قبل تعریف شدهاند، مقدار همانها را ویرایش کنید؛ تعریف تکراری ایجاد نکنید.
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);
این گزینهها باید پیش از خط /* That's all, stop editing! */ قرار گیرند. اگر خطا به مرحله راهاندازی وردپرس برسد، معمولاً در wp-content/debug.log ثبت میشود؛ بااینحال بعضی خطاهای زودهنگام یا سطح وبسرور در این فایل دیده نخواهند شد. بعد از پایان بررسی، حالت دیباگ را خاموش کنید و فایل لاگ را از نظر اطلاعات حساس بررسی کنید. برای توضیحات بیشتر، راهنمای فعالکردن دیباگ وردپرس را ببینید.
رفع خطای ۵۰۰ وردپرس؛ مرحله دوم: بررسی افزونهها بدون حذف اطلاعات
اگر خطای ۵۰۰ بلافاصله بعد از نصب یا بروزرسانی یک افزونه ظاهر شده، همان افزونه مظنون اولیه است؛ در این شرایط رفع خطای ۵۰۰ وردپرس را با بررسی تغییر اخیر شروع کنید. اگر پیشخوان باز میشود، افزونه مورد نظر را موقتاً غیرفعال کنید. در غیر این صورت، در File Manager به مسیر wp-content/plugins بروید و پوشه همان افزونه را به نامی موقت مانند plugin-name.disabled تغییر دهید. سپس دوباره سایت را آزمایش کنید.
اگر افزونه مشخصی در ذهن ندارید، با نسخه پشتیبان و آگاهی از اثر روی سرویس، میتوانید نام پوشه plugins را موقتاً به plugins.disabled تغییر دهید. این کار همه افزونههای معمولی داخل آن پوشه را از دسترس وردپرس خارج میکند. اگر مشکل برطرف شد، پوشه را به نام اصلی برگردانید و افزونهها را کنترلشده و تکبهتک بررسی کنید.
توجه: غیرفعالسازی موقت افزونههای پرداخت، عضویت، امنیت یا فروشگاه میتواند عملکرد مهم سایت را مختل کند. افزونههای must-use در mu-plugins نیز با تغییر نام پوشه افزونههای معمولی غیرفعال نمیشوند. بررسی روی محیط آزمایشی (Staging) در صورت امکان بهتر است.
مرحله سوم: احتمال ناسازگاری قالب را بررسی کنید
اگر تغییر افزونهها اثری نداشت و خطا بعد از بروزرسانی پوسته شروع شده، فایلهای قالب یا کدهای سفارشی آن را بررسی کنید. رفع خطای ۵۰۰ وردپرس پس از تغییر قالب، معمولاً با بررسی گزارش PHP و آخرین تغییرات کد آغاز میشود. در محیط آزمایشی میتوانید به یک قالب پیشفرض سازگار وردپرس تغییر وضعیت دهید و سایت را دوباره تست کنید. اگر پیشخوان باز نمیشود، برای تغییر پوسته با پشتیبانی هماهنگ کنید؛ تغییر دستی پوشه قالب بدون اطمینان از وجود قالب جایگزین ممکن است سایت را از دسترس خارج نگه دارد.
اگر از چایلدتم استفاده میکنید، تغییرات تازه در functions.php، اسنیپتها و وابستگیهای قالب را هم در نظر بگیرید. صرف اینکه قالب سالها بدون مشکل کار کرده، ناسازگاری آن با نسخه تازه PHP را منتفی نمیکند.
مرحله چهارم: فایل .htaccess و قوانین بازنویسی را بررسی کنید
در هاستهایی که Apache یا LiteSpeed از قوانین .htaccess استفاده میکنند، دستور نامعتبر یا ناسازگار میتواند خطای ۵۰۰ ایجاد کند. در این وضعیت، رفع خطای ۵۰۰ وردپرس به شناسایی قانون مشکلساز و بازگرداندن تنظیم صحیح آن بستگی دارد. ابتدا از فایل موجود نسخه پشتیبان بگیرید؛ سپس برای آزمایش کوتاه، نام آن را مثلاً به .htaccess.backup تغییر دهید و صفحه را دوباره بارگذاری کنید. اگر سایت باز شد، مشکل احتمالاً در یکی از قوانین فایل بوده است؛ نسخه سالم و موردنیاز سایت را با دقت بازسازی کنید.
اگر پیشخوان در دسترس است، مراجعه به تنظیمات → پیوندهای یکتا و ذخیره مجدد میتواند قوانین پایه وردپرس را برای پیکربندیهای پشتیبانیشده بازنویسی کند. این کار ممکن است قوانین اختصاصی امنیتی یا ریدایرکت شما را بازسازی نکند. روی Nginx، فایل .htaccess نقشی در پیکربندی وبسرور ندارد؛ بنابراین راهحل این بخش به Nginx قابل تعمیم نیست.
مرحله پنجم: PHP، حافظه و محدودیتهای هاست را کنترل کنید
بعضی خطاهای ۵۰۰ به ناسازگاری نسخه PHP، افزونه PHP موردنیاز، خطای بحرانی در کد یا اتمام حافظه فرایند مربوط میشوند. برای رفع خطای ۵۰۰ وردپرس در این شرایط، باید دلیل ثبتشده در لاگ را با تنظیمات PHP تطبیق داد. در cPanel بخش انتخاب نسخه PHP یا MultiPHP Manager را ببینید و نسخه مورد پشتیبانی قالب و افزونهها را با آن مقایسه کنید. نسخه PHP را صرفاً برای آزمون و بدون بررسی سازگاری روی سایت عملیاتی تغییر ندهید.
اگر گزارش خطا صریحاً Allowed memory size exhausted نشان میدهد، ابتدا مشخص کنید مصرف زیاد حافظه از کدام افزونه یا عملیات است. در شرایط مناسب میتوان مقدار حافظه مجاز وردپرس را با مقدار متناسب با محدودیت واقعی هاست تنظیم کرد:
define('WP_MEMORY_LIMIT', '256M');
این خط باید در wp-config.php و تنها در صورتی استفاده شود که مقدار قبلیِ همان ثابت وجود نداشته باشد یا اصلاح شود. توجه کنید این مقدار درخواست وردپرس برای حافظه است؛ تنظیم memory_limit در PHP و سقفهای سرویس میزبانی همچنان تعیینکنندهاند. افزایش بیهدف حافظه، خطای برنامهنویسی یا نشت حافظه را رفع نمیکند.
در هاستهای CloudLinux، رسیدن به بعضی محدودیتهای LVE ممکن است موجب کندی یا خطا شود و بهتر است آمار Resource Usage و پیامهای خطای واقعی بررسی شوند؛ خطای ۵۰۰ لزوماً به معنای کمبود منابع نیست. برای آشنایی با موارد فنی مرتبط، مقاله اکستنشنهای PHP را نیز بخوانید.
مرحله ششم: فایلهای هسته و بروزرسانیهای نیمهتمام را بررسی کنید
اگر مشکل هنگام بروزرسانی وردپرس رخ داده و لاگ به فایلهای اصلی اشاره میکند، احتمال ناقصبودن فایلهای هسته را بررسی کنید. در این حالت، رفع خطای ۵۰۰ وردپرس ممکن است به تکمیل امن بروزرسانی نیاز داشته باشد. ابتدا از فایلها و دیتابیس بکاپ بگیرید و نسخه دقیق وردپرس را مشخص کنید. فایلهای هسته را فقط از منبع رسمی WordPress تهیه کنید و طبق روش ایمن بروزرسانی دستی جایگزین کنید؛ فایل wp-config.php و پوشه wp-content نباید بهصورت کورکورانه جایگزین شوند.
اگر سایت پس از بروزرسانی در حالت تعمیر و نگهداری مانده، این وضعیت را با خطای واقعی HTTP 500 اشتباه نگیرید. نمایش پیام Maintenance الزاماً خطای سرور نیست و باید جداگانه بررسی شود.
اگر پیشخوان وردپرس هم باز نمیشود چه کنیم؟
وقتی /wp-admin هم با خطای ۵۰۰ مواجه میشود، مسیر کار کمی متفاوت است. رفع خطای ۵۰۰ وردپرس بدون ورود به پیشخوان هم ممکن است، چون میتوان ابتدا از لاگها و ابزار مدیریت فایل هاست کمک گرفت. ابتدا به File Manager یا FTP/SFTP هاست وارد شوید و زمان شروع مشکل را با خطاهای PHP مقایسه کنید. سپس با توجه به تغییرات اخیر، افزونه مشکوک را موقتاً کنار بگذارید یا تنظیمات ناسازگار را با نسخه پشتیبان برگردانید. در این سناریو نیازی نیست برای تشخیص اولیه وارد دیتابیس شوید.
اگر به هیچکدام از ابزارهای هاست دسترسی ندارید، از پشتیبانی بخواهید کد وضعیت واقعی HTTP، لاگ زمان خطا، نسخه PHP، وضعیت وبسرور و محدودیت منابع حساب را بررسی کند. ارسال تصویر صفحه خطا بهتنهایی معمولاً کافی نیست؛ زمان دقیق وقوع هم اهمیت دارد.
تفاوت خطای ۵۰۰ با ۵۰۲، ۵۰۳ و ۵۰۴ چیست؟
این کدها شبیه به هم دیده میشوند، اما معنای یکسانی ندارند. خطای 500 نشاندهنده خطای داخلی سرور هنگام انجام درخواست است. خطای 502 Bad Gateway معمولاً به پاسخ نامعتبر از سرور بالادستی مربوط میشود؛ 503 Service Unavailable یعنی سرویس موقتاً قادر به پاسخگویی نیست؛ و 504 Gateway Timeout معمولاً به پایان مهلت انتظار یک واسط از سرور بالادستی اشاره میکند.
اگر از CDN مانند Cloudflare استفاده میکنید، کد دقیق و اینکه صفحه خطا توسط کدام سامانه نمایش داده شده اهمیت دارد. برای آشنایی با نقش CDN و پروکسی، مقاله کلودفلر چیست؟ را مطالعه کنید.
چطور از تکرار خطای ۵۰۰ جلوگیری کنیم؟
یک برنامه بکاپ منظم با امکان بازیابی واقعی، بهروزرسانی کنترلشده افزونهها و قالب، محیط آزمایشی برای تغییرات مهم و پایش گزارش خطاها معمولاً جلوی بسیاری از قطعیهای قابل پیشگیری را میگیرد. بهتر است بعد از هر بروزرسانی، صفحه اصلی، فرمها، ورود کاربران و در فروشگاهها سبد خرید و پرداخت را آزمایش کنید.
به همان اندازه مهم است که خطاها را پنهان نکنیم: خاموشکردن نمایش عمومی خطا برای امنیت مناسب است، اما ثبت گزارش فنی باید بهشکلی امن ادامه داشته باشد. همچنین یک هاست وردپرس پایدار با نسخه PHP مناسب، بکاپ و دسترسی به لاگ، تشخیص مشکل را سادهتر میکند.
سؤالات متداول درباره رفع خطای ۵۰۰ وردپرس
آیا خطای ۵۰۰ به معنای هکشدن سایت است؟
خیر. خطا میتواند از افزونه، قالب، تنظیمات PHP یا وبسرور ناشی شود. اگر در لاگ یا فایلها نشانه مشکوک دیدید، بررسی امنیتی جداگانه انجام دهید.
آیا افزایش حافظه PHP همیشه خطای ۵۰۰ را رفع میکند؟
خیر. فقط وقتی خطا واقعاً ناشی از محدودیت حافظه باشد ممکن است کمک کند. بدون بررسی لاگ، تغییر حافظه میتواند علت اصلی را پنهان کند.
آیا حذف همه افزونهها راهحل مناسبی است؟
خیر. برای تشخیص تداخل، غیرفعالسازی موقت و برگشتپذیر بهتر از حذف فایلها و دادههای افزونههاست.
اگر بعد از بروزرسانی سایت خطای ۵۰۰ داد چه کنم؟
اول لاگ خطا و تغییرات اخیر را بررسی کنید. سپس با نسخه پشتیبان، افزونه یا پوسته تغییرکرده را آزمایش کنید؛ اگر مشکل ادامه داشت از پشتیبانی بخواهید خطای PHP مرتبط را بررسی کند.
رفع خطای ۵۰۰ وردپرس چقدر زمان میبرد؟
زمان مشخصی ندارد. اگر خطای دقیق و زمان وقوع در لاگ وجود داشته باشد، تشخیص معمولاً سادهتر است؛ اما مشکلات چندلایه در PHP، افزونهها یا سرور میتوانند نیازمند بررسی بیشتری باشند.
جمعبندی: بهترین روش رفع خطای ۵۰۰ وردپرس چیست؟
وقتی سایت خطای Internal Server Error نشان میدهد، بهترین کار این نیست که پشت سر هم تنظیمات مختلف را تغییر دهید. ابتدا بکاپ بگیرید، گزارش خطا را پیدا کنید و تغییرات اخیر را با آن تطبیق دهید. بعد از آن سراغ افزونهها، قالب، تنظیمات بازنویسی و نسخه PHP بروید. هر بار فقط یک متغیر را تغییر دهید تا معلوم شود چه چیزی مشکل را برطرف کرده است.
این راهنما یک مسیر عیبیابی عمومی است. اگر سایت فروشگاهی یا حیاتی دارید و ریشه خطا مشخص نیست، هماهنگی با پشتیبانی هاست قبل از تغییرات سنگین گزینه امنتری خواهد بود.
منابع اصلی: مستندات رسمی Debugging وردپرس، WordPress Troubleshooting FAQ و راهنمای رسمی بروزرسانی وردپرس.
نظرات و دیدگاه کاربران (0 نظر)
هنوز نظری ثبت نشده است. اولین نفری باشید که نظر میدهد!
دیدگاه خود را بنویسید