خطای 500 وردپرس چیست؟

خطای 500 وردپرس چیست؟

خطای 500 وردپرس یکی از خطاهای رایجی است که ممکن است هنگام باز کردن سایت، ورود به پیشخوان یا ذخیره تغییرات با آن مواجه شوید. در این وضعیت، سرور نمی‌تواند درخواست را به‌درستی پردازش کند و معمولا پیام 500 Internal Server Error نمایش داده می‌شود.

این خطا می‌تواند به دلایل مختلفی مانند خرابی فایل .htaccess، ناسازگاری افزونه‌ها، مشکل در قالب، خطای PHP یا محدودیت منابع سرور ایجاد شود. برای رفع خطای 500 وردپرس، بهتر است ابتدا علت مشکل را شناسایی و سپس متناسب با آن اقدام کنید.

در این راهنما، ۱۰ روش کاربردی برای رفع خطای 500 وردپرس را بررسی می‌کنیم، از راهکارهای ساده تا روش‌های فنی برای بررسی لاگ‌ها و تنظیمات سرور.

خطای 500 وردپرس چیست؟

خطای 500 یا Internal Server Error یک کد وضعیت HTTP است که نشان می‌دهد سرور هنگام پردازش درخواست با مشکلی غیرمنتظره مواجه شده است. این کد به‌تنهایی علت دقیق خطا را مشخص نمی‌کند، بنابراین برای تشخیص دلیل اصلی باید لاگ‌های وردپرس، PHP و وب‌سرور بررسی شوند.

این خطا ممکن است در شرایط مختلفی ظاهر شود:

  • صفحه اصلی سایت باز نمی‌شود.
  • هنگام ورود به پیشخوان وردپرس با خطا مواجه می‌شوید.
  • پس از نصب یا به‌روزرسانی افزونه، سایت از دسترس خارج می‌شود.
  • هنگام ویرایش برگه‌ها یا انتشار نوشته، خطای داخلی سرور نمایش داده می‌شود.
  • برخی صفحات باز می‌شوند، اما صفحات دیگر خطای 500 دارند.

خطای 500 با خطاهای 403، 404 و 503 تفاوت دارد. خطای 403 معمولا به محدودیت دسترسی، خطای 404 به پیدا نشدن منبع و خطای 503 به در دسترس نبودن موقت سرویس مربوط است. بااین‌حال، برای تشخیص علت واقعی باید شرایط سرور بررسی شود.

علت خطای 500 در وردپرس چیست؟

پیش از شروع مراحل رفع خطا، بهتر است با دلایل رایج آن آشنا شوید.

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

۱۰ روش رفع خطای 500 وردپرس

۱. کش مرورگر و کش سایت را بررسی کنید

گاهی پس از رفع مشکل سرور، مرورگر یا سیستم کش همچنان نتیجه قبلی را نمایش می‌دهد. در ویندوز می‌توانید از کلیدهای Ctrl + F5 استفاده کنید یا سایت را در یک پنجره ناشناس (Incognito) مرورگر باز کنید.

اگر از افزونه کش یا کش سمت سرور استفاده می‌کنید، پس از اطمینان از رفع علت اصلی، کش را پاک کنید. توجه داشته باشید که کش مرورگر معمولا علت اصلی خطای 500 نیست و این مرحله بیشتر برای اطمینان از مشاهده نتیجه واقعی مفید است.

۲. فایل htaccess. را بررسی کنید

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

  1. از طریق File Manager هاست یا اتصال SSH وارد پوشه اصلی وردپرس شوید.
  2. از فایل .htaccess بکاپ تهیه کنید.
  3. اگر شواهد نشان می‌دهد خطا به این فایل مربوط است، نام آن را به طور موقت به .htaccess-backup تغییر دهید.
  4. سایت را دوباره بررسی نمائید.

اگر سایت به حالت عادی برگشت، احتمالا یکی از قوانین فایل قبلی مشکل داشته است. برای بازسازی قوانین استاندارد وردپرس، وارد پیشخوان شده و از مسیر «تنظیمات ← پیوندهای یکتا» بدون تغییر تنظیمات روی «ذخیره تغییرات» کلیک کنید.

قوانین سفارشی موردنیاز، مانند قوانین امنیتی یا ریدایرکت‌ها، را نیز بررسی کنید تا هنگام بازسازی فایل از بین نروند. اگر تغییری ایجاد نشد، بکاپ را برگردانید.

۳. افزونه‌های وردپرس را غیرفعال کنید

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

اگر پیشخوان باز نمی‌شود، می‌توانید از طریق SSH و پس از ورود به مسیر واقعی نصب وردپرس، پوشه افزونه‌ها را به طور موقت تغییر نام دهید. پیش از این کار از فایل‌ها بکاپ داشته باشید.

cd /path/to/wordpress/wp-content
mv plugins plugins.disabled

به‌جای /path/to/wordpress مسیر واقعی نصب وردپرس را قرار دهید. این روش افزونه‌های عادی وردپرس را غیرفعال می‌کند و ممکن است قابلیت‌های سایت را به طور موقت از دسترس خارج کند.

پس از آزمایش، نام پوشه را به حالت قبلی برگردانید:

mv plugins.disabled plugins

اگر مشکل رفع شد، افزونه‌ها را به‌صورت مرحله‌ای فعال کنید تا افزونه مشکل‌ساز مشخص شود. افزونه‌های اجباری موجود در پوشه mu-plugins با این روش غیرفعال نمی‌شوند و در صورت نیاز باید جداگانه بررسی شوند.

۴. قالب فعال را بررسی کنید

قالب وردپرس هم می‌تواند به دلیل کد PHP معیوب یا ناسازگاری با نسخه فعلی وردپرس و PHP باعث خطای 500 شود. اگر به پیشخوان دسترسی دارید، به طور موقت یکی از قالب‌های پیش‌فرض وردپرس را فعال کنید.

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

اگر با تغییر قالب مشکل رفع شد، فایل‌های functions.php، کدهای سفارشی و سازگاری قالب اصلی و فرزند را بررسی کنید.

۵. نسخه PHP و خطاهای آن را بررسی کنید

ناسازگاری کدهای سایت با نسخه PHP یکی دیگر از علت‌های احتمالی خطای 500 است. برای مثال، ممکن است یک افزونه قدیمی از تابعی استفاده کند که در نسخه جدید PHP دیگر وجود ندارد.

در پنل هاست، نسخه PHP فعال دامنه را بررسی کنید. اگر مشکل پس از تغییر نسخه PHP شروع شده است، این تغییر را به‌عنوان یکی از سرنخ‌های اصلی در نظر بگیرید.

اگر به SSH دسترسی دارید، می‌توانید نسخه PHP خط فرمان را با دستور زیر مشاهده کنید:

php -v

توجه داشته باشید که نسخه PHP خط فرمان حتما با نسخه PHP مورد استفاده وب‌سایت یکسان نیست. برای تشخیص دقیق‌تر، لاگ خطاهای PHP را بررسی کنید. پیام‌هایی مانند Uncaught Error، Call to undefined function یا Parse error می‌توانند سرنخ مهمی برای پیدا کردن علت باشند.

نسخه PHP را به‌صورت تصادفی تغییر ندهید. نسخه مناسب باید با وردپرس، افزونه‌ها، قالب و تنظیمات سرور سازگار باشد.

۶. محدودیت حافظه PHP را بررسی کنید

اگر سایت هنگام انجام عملیات سنگین مانند پردازش تصاویر یا اجرای بعضی افزونه‌ها با خطای 500 مواجه می‌شود، محدودیت حافظه PHP می‌تواند یکی از عوامل احتمالی باشد.

برای بررسی این موضوع، لاگ خطا را مشاهده کنید. پیام Allowed memory size exhausted نشان می‌دهد اجرای PHP به محدودیت حافظه رسیده است.

در صورت نیاز و با توجه به سیاست میزبانی، می‌توانید مقدار حافظه تعریف‌شده برای وردپرس را در فایل wp-config.php تنظیم کنید:

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

این خط باید پیش از بخش پایانی فایل که عبارت That's all, stop editing! را دارد قرار بگیرد و نباید تعریف تکراری ایجاد شود. این تنظیم حتما محدودیت اصلی PHP یا وب‌سرور را افزایش نمی‌دهد، مقدار واقعی قابل استفاده به پیکربندی سرور بستگی دارد.

۷. لاگ خطاهای وردپرس و سرور را بررسی کنید

اگر روش‌های ساده نتیجه ندادند، بررسی لاگ‌ها یکی از موثرترین راه‌ها برای شناسایی علت واقعی خطای 500 است. ابتدا مسیر لاگ خطا را در پنل هاست بررسی کنید، خطاهای PHP و وب‌سرور ممکن است در فایل‌های جداگانه ثبت شوند.

در بعضی سیستم‌های مبتنی بر systemd و PHP-FPM، می‌توانید وضعیت سرویس را بررسی کنید. نام سرویس در هر سرور متفاوت است.

systemctl status php-fpm

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

tail -n 100 /var/log/nginx/error.log

مسیر بالا فقط یک نمونه است و ممکن است در سرور شما وجود نداشته باشد. در سرورهای Apache، LiteSpeed یا محیط‌های مبتنی بر پنل مدیریت، مسیر لاگ متفاوت است.

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

۸. مجوز فایل‌ها و پوشه‌ها را بررسی کنید

مجوزهای نامناسب فایل‌ها و پوشه‌ها ممکن است مانع دسترسی صحیح PHP یا وب‌سرور به فایل‌های وردپرس شوند. در بسیاری از نصب‌های استاندارد، مجوز 755 برای پوشه‌ها و 644 برای فایل‌ها نقطه شروع مناسبی است، اما مالکیت فایل‌ها و معماری میزبانی هم اهمیت دارند.

برای مشاهده اطلاعات یک فایل از طریق SSH می‌توانید از دستور زیر استفاده کنید:

stat wp-config.php

این دستور را در مسیر واقعی نصب وردپرس اجرا کنید. از تغییر کورکورانه مجوز تمام فایل‌های سایت خودداری کنید و برای رفع خطا، مجوز 777 تنظیم نکنید، چنین تغییری می‌تواند خطر امنیتی ایجاد کند.

۹. محدودیت منابع و تنظیمات وب‌سرور را بررسی کنید

گاهی علت خطای 500 خارج از خود وردپرس است. محدودیت پردازش‌های PHP، مصرف بالای CPU یا RAM، تنظیمات FastCGI، قوانین امنیتی یا خطای پیکربندی وب‌سرور می‌توانند در بروز مشکل نقش داشته باشند.

اگر دسترسی مدیریتی به سرور دارید، وضعیت سرویس وب‌سرور، مصرف منابع در زمان بروز خطا، لاگ‌های PHP و قوانین امنیتی را بررسی کنید.

systemctl status nginx

این دستور فقط برای سرورهایی کاربرد دارد که از Nginx استفاده می‌کنند. اگر وب‌سرور شما Apache یا LiteSpeed است، باید سرویس و ابزارهای مربوط به همان محیط را بررسی کنید.

در هاست اشتراکی، ممکن است دسترسی به این اطلاعات در اختیار شما نباشد. در این شرایط، از پشتیبانی هاست بخواهید لاگ‌های وب‌سرور و PHP را در زمان بروز خطا بررسی کند.

۱۰. فایل‌های اصلی وردپرس را بررسی کنید

اگر خطای 500 همچنان ادامه دارد، ممکن است بعضی فایل‌های اصلی وردپرس آسیب دیده باشند یا تغییرات ناخواسته‌ای در آن‌ها ایجاد شده باشد.

پیش از هر اقدامی، از فایل‌ها و دیتابیس بکاپ تهیه کنید. سپس نسخه وردپرس را بررسی کرده و در صورت نیاز، فایل‌های اصلی را از یک بسته رسمی و معتبر همان نسخه جایگزین کنید. پوشه wp-content و فایل wp-config.php را بدون بررسی جایگزین نکنید.

اگر از SSH و WP-CLI استفاده می‌کنید، دستور زیر برای بررسی صحت فایل‌های هسته مفید است:

wp core verify-checksums

این دستور باید در مسیر صحیح نصب وردپرس و در محیطی اجرا شود که WP-CLI در آن نصب و پیکربندی شده است. همچنین همه فایل‌های سفارشی یا افزونه‌ها را بررسی نمی‌کند، هدف آن بررسی فایل‌های هسته در برابر چک‌سام‌های رسمی است.

اگر خطای 500 وردپرس رفع نشد، چه کار کنیم؟

اگر تمام مراحل بالا را بررسی کرده‌اید و مشکل همچنان باقی است، بهتر است از تغییرات بیشتر و آزمایش‌های تصادفی خودداری کنید. در این مرحله، بررسی لاگ‌ها و مقایسه وضعیت سایت با زمان قبل از بروز خطا اهمیت بیشتری دارد.

برای عیب‌یابی دقیق‌تر، این موارد را آماده کنید:

  • زمان تقریبی شروع خطا
  • آخرین تغییر انجام‌شده روی سایت، مانند نصب افزونه یا تغییر نسخه PHP
  • اینکه خطا در کل سایت رخ می‌دهد یا فقط در یک صفحه
  • پیام‌های مرتبط از لاگ PHP یا وب‌سرور
  • وضعیت منابع سرور و سرویس‌های مربوطه

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

در سایت افزون، خدمات مرتبط با رفع خطاهای وردپرس، بررسی مشکلات PHP، عیب‌یابی سرور و بهینه‌سازی عملکرد سایت می‌تواند برای مواقعی مفید باشد که مشکل با راهکارهای معمول برطرف نمی‌شود.

جمع‌بندی

خطای 500 وردپرس یک پیام کلی است و علت دقیق آن را مشخص نمی‌کند. خرابی فایل .htaccess، ناسازگاری افزونه یا قالب، خطاهای PHP، محدودیت حافظه و مشکلات وب‌سرور از عوامل احتمالی آن هستند.

برای رفع خطای 500 وردپرس، ابتدا تغییرات اخیر سایت را بررسی کنید، سپس فایل‌های پیکربندی و افزونه‌ها را به‌صورت کنترل‌شده آزمایش کنید و در صورت نیاز به سراغ لاگ‌های PHP و وب‌سرور بروید.

مهم‌ترین نکته این است که به‌جای تغییر هم‌زمان چند تنظیم، هر مرحله را جداگانه انجام دهید و نتیجه را بررسی کنید. به این ترتیب، علت مشکل سریع‌تر مشخص می‌شود و احتمال ایجاد خطاهای جدید کاهش پیدا می‌کند.

اگر خطای 500 سایت شما با این روش‌ها رفع نشد، بررسی تخصصی لاگ‌ها و تنظیمات سرور می‌تواند به شناسایی علت اصلی کمک کند.

دیدگاهتان را بنویسید

برای حل مشکلات فنی سایت آماده‌اید؟

درخواست یا مشکل خود را با ما در میان بگذارید تا راهکار مناسب برای وب‌سایت، وردپرس یا زیرساخت شما را بررسی کنیم.

درخواست مشاوره