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

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

خطای 500 چیست و چرا رخ می‌دهد؟

خطای 500 چیست

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

  • فایل .htaccess خراب یا ناقص: این فایل وظیفه کنترل تنظیمات سرور و نحوه تعامل آن با وب‌سایت شما را بر عهده دارد. یک اشتباه کوچک در آن می‌تواند باعث خطای 500 شود.
  • مشکل در افزونه‌ها یا پوسته‌ها: یک افزونه یا پوسته ناسازگار، قدیمی، دارای باگ یا تداخل با سایر عناصر سایت می‌تواند منجر به این خطا شود.
  • محدودیت حافظه PHP: وردپرس و افزونه‌ها برای عملکرد صحیح به مقدار مشخصی از حافظه PHP نیاز دارند. اگر این مقدار ناکافی باشد، سرور ممکن است قادر به پردازش درخواست‌ها نباشد.
  • فایل‌های اصلی وردپرس آسیب‌دیده یا گم شده: گاهی اوقات، فایل‌های اصلی وردپرس ممکن است در فرآیند به‌روزرسانی، انتقال سایت یا به دلایل دیگر آسیب ببینند یا ناپدید شوند.
  • مجوزهای اشتباه فایل‌ها و پوشه‌ها (File Permissions): مجوزهای نادرست می‌تواند باعث شود سرور نتواند به فایل‌های لازم برای اجرای صحیح وب‌سایت دسترسی پیدا کند.
  • ورژن‌های ناسازگار PHP: استفاده از یک ورژن PHP قدیمی یا ناسازگار با وردپرس و افزونه‌های نصب شده می‌تواند منجر به خطا شود.
  • خطاهای کدنویسی: گاهی اوقات خطاهای کوچکی در کد افزونه‌ها، پوسته‌ها یا حتی کد سفارشی شما می‌تواند باعث این مشکل شود.

گام‌های رفع خطای 500 (ترتیب پیشنهادی)

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

1. بررسی و بازسازی فایل .htaccess

فایل .htaccess یکی از رایج‌ترین دلایل خطای 500 است.

  1. اتصال به هاست: از طریق FTP (با استفاده از نرم‌افزارهایی مانند FileZilla) یا File Manager در کنترل پنل هاست خود (مانند cPanel یا DirectAdmin) به هاست متصل شوید.
  2. پیدا کردن فایل .htaccess: به پوشه اصلی وردپرس (معمولاً public_html یا www) بروید. فایل .htaccess را در آنجا پیدا خواهید کرد. توجه: این یک فایل مخفی است، بنابراین ممکن است لازم باشد گزینه “نمایش فایل‌های مخفی” (Show Hidden Files) را در نرم‌افزار FTP یا File Manager خود فعال کنید.
  3. تغییر نام فایل: نام فایل .htaccess را به چیزی مانند .htaccess_old تغییر دهید. این کار باعث می‌شود سرور این فایل را نادیده بگیرد و در نتیجه آن را موقتاً غیرفعال می‌کند.
  4. بررسی وب‌سایت: حالا وب‌سایت خود را رفرش کنید.
    • اگر وب‌سایت بالا آمد: مشکل از فایل .htaccess بوده است.
    • بازسازی فایل .htaccess جدید: برای بازسازی یک فایل .htaccess جدید و سالم، وارد پنل مدیریت وردپرس خود شوید (اگر می‌توانید) و به تنظیمات » پیوندهای یکتا (Permalinks) بروید. بدون انجام هیچ تغییری، روی دکمه ذخیره تغییرات (Save Changes) کلیک کنید. این کار یک فایل .htaccess جدید با تنظیمات پیش‌فرض وردپرس ایجاد می‌کند.
    • اگر وب‌سایت بالا نیامد: مشکل از فایل .htaccess نبوده است. نام فایل را به .htaccess اصلی برگردانید و به مرحله بعد بروید.

فایل .htaccess کجاست

2. افزایش محدودیت حافظه PHP (PHP Memory Limit)

کمبود حافظه PHP می‌تواند باعث از کار افتادن اسکریپت‌ها و بروز خطای 500 شود.

  1. ویرایش فایل wp-config.php: از طریق FTP یا File Manager به پوشه اصلی وردپرس بروید و فایل wp-config.php را پیدا کنید.

  2. افزایش حافظه: فایل را باز کنید و خط زیر را قبل از خط /* That's all, stop editing! Happy blogging. */ اضافه کنید:

    PHP

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

    در اینجا ‘256M’ به معنای 256 مگابایت است. می‌توانید این مقدار را بسته به نیاز خود افزایش دهید (مثلاً ‘512M’).

  3. ذخیره و بررسی: فایل را ذخیره کرده و وب‌سایت خود را بررسی کنید.

    نکته: اگر این روش جواب نداد، ممکن است هاست شما اجازه تغییر حافظه از طریق wp-config.php را ندهد. در این صورت، باید محدودیت حافظه را از طریق فایل php.ini یا user.ini در هاست خود افزایش دهید. برای این کار، خط memory_limit = 256M; را به آن فایل‌ها اضافه کنید. اگر به این فایل‌ها دسترسی ندارید یا مطمئن نیستید، با پشتیبانی هاست خود تماس بگیرید.

ویرایش فایل wp-config.php

3. غیرفعال کردن افزونه‌ها

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

  1. غیرفعال کردن همه افزونه‌ها:
    • اگر به پنل مدیریت وردپرس دسترسی دارید: به افزونه‌ها » افزونه‌های نصب‌شده (Plugins » Installed Plugins) بروید. همه افزونه‌ها را انتخاب کرده و از منوی کشویی “کارهای دسته جمعی (Bulk Actions)” گزینه “غیرفعال کردن (Deactivate)” را انتخاب و روی “اجرا (Apply)” کلیک کنید.
    • اگر به پنل مدیریت وردپرس دسترسی ندارید: از طریق FTP یا File Manager به پوشه wp-content بروید. پوشه plugins را پیدا کرده و نام آن را به plugins_old (یا هر نام دیگری) تغییر دهید. این کار باعث می‌شود وردپرس نتواند افزونه‌ها را پیدا کند و در نتیجه همه آنها غیرفعال می‌شوند.
  2. بررسی وب‌سایت: وب‌سایت خود را رفرش کنید.
    • اگر خطا رفع شد: مشکل از یکی از افزونه‌ها بوده است.
    • پیدا کردن افزونه مشکل‌ساز:
      • اگر پوشه plugins را تغییر نام داده‌اید: نام آن را به plugins برگردانید. سپس وارد پنل مدیریت وردپرس شوید و افزونه‌ها را یکی یکی فعال کنید. پس از فعال‌سازی هر افزونه، وب‌سایت را بررسی کنید. زمانی که با فعال کردن یک افزونه دوباره خطای 500 ظاهر شد، همان افزونه مشکل‌ساز است.
      • اگر افزونه‌ها را از طریق پنل مدیریت غیرفعال کرده‌اید: آن‌ها را نیز یکی یکی فعال کنید تا افزونه مشکل‌ساز را پیدا کنید.
  3. حذف یا جایگزینی: پس از یافتن افزونه مشکل‌ساز، آن را حذف کرده یا به دنبال جایگزینی برای آن باشید. قبل از حذف، همیشه سعی کنید آن را به‌روزرسانی کنید؛ شاید مشکل با یک به‌روزرسانی ساده حل شود.

4. تغییر پوسته وردپرس

مانند افزونه‌ها، پوسته فعال شما نیز می‌تواند باعث خطای 500 شود.

  1. تغییر پوسته:
    • اگر به پنل مدیریت وردپرس دسترسی دارید: به نمایش » پوسته‌ها (Appearance » Themes) بروید و یک پوسته پیش‌فرض وردپرس (مانند Twenty Twenty-Four, Twenty Twenty-Three) را فعال کنید.
    • اگر به پنل مدیریت وردپرس دسترسی ندارید: از طریق FTP یا File Manager به پوشه wp-content/themes بروید. پوشه پوسته فعال خود را پیدا کرده و نام آن را به چیزی مانند yourtheme_old تغییر دهید. وردپرس به طور خودکار به یک پوسته پیش‌فرض موجود (مانند Twenty Twenty-Four) تغییر می‌کند. اگر پوسته پیش‌فرضی نصب ندارید، می‌توانید آن را از وب‌سایت رسمی وردپرس دانلود کرده و از طریق FTP در پوشه themes آپلود کنید.
  2. بررسی وب‌سایت: وب‌سایت خود را رفرش کنید.
    • اگر خطا رفع شد: مشکل از پوسته شما بوده است.
  3. بررسی پوسته: اگر پوسته شما مشکل‌ساز بود، باید به دنبال به‌روزرسانی آن باشید یا با توسعه‌دهنده پوسته تماس بگیرید.

تغییر پوسته وردپرس

5. بررسی و جایگزینی فایل‌های اصلی وردپرس

فایل‌های اصلی وردپرس ممکن است آسیب دیده یا ناقص باشند.

  1. دانلود آخرین نسخه وردپرس: از وب‌سایت رسمی وردپرس (wordpress.org) آخرین نسخه وردپرس را دانلود کنید.
  2. باز کردن فایل فشرده: فایل فشرده دانلود شده را در کامپیوتر خود باز کنید.
  3. حذف و جایگزینی فایل‌ها: از طریق FTP، فایل‌های wp-admin و wp-includes را از هاست خود حذف کرده و سپس نسخه‌های جدید (که از فایل فشرده دانلود شده استخراج کرده‌اید) را آپلود کنید.
  4. بررسی فایل‌های ریشه: فایل‌های موجود در پوشه اصلی (مانند index.php, wp-login.php و غیره) را با فایل‌های جدید جایگزین کنید. مهم: فایل wp-config.php خود را به هیچ عنوان جایگزین نکنید، زیرا حاوی اطلاعات اتصال به پایگاه داده شماست.
  5. بررسی وب‌سایت: وب‌سایت خود را بررسی کنید.

6. بررسی مجوزهای فایل‌ها و پوشه‌ها (File Permissions)

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

  • پوشه‌ها: باید روی 755 تنظیم شوند.
  • فایل‌ها: باید روی 644 تنظیم شوند.

می‌توانید مجوزها را از طریق نرم‌افزار FTP (معمولاً با کلیک راست روی فایل/پوشه و انتخاب “File Permissions” یا “Change Permissions”) یا File Manager در کنترل پنل هاست خود تنظیم کنید. این کار را برای تمامی پوشه‌ها و فایل‌های وردپرس انجام دهید.

7. بررسی لاگ‌های سرور (Server Error Logs)

لاگ‌های خطا (Error Logs) سرور می‌توانند اطلاعات بسیار مفیدی در مورد علت اصلی خطای 500 و رفع خطای 500 در وردپرس ارائه دهند.

  1. دسترسی به لاگ‌ها: معمولاً می‌توانید به لاگ‌های سرور از طریق کنترل پنل هاست خود (معمولاً در بخش “Errors” یا “Logs”) دسترسی پیدا کنید. اگر نتوانستید، با پشتیبانی هاست خود تماس بگیرید و از آن‌ها بخواهید که لاگ‌های خطای PHP را در اختیار شما قرار دهند.
  2. تحلیل لاگ‌ها: به دنبال پیام‌های خطا باشید که به مشکل شما اشاره می‌کنند. این پیام‌ها معمولاً مسیر فایل و خط کد مشکل‌ساز را نشان می‌دهند و می‌توانند به شما در تشخیص اینکه کدام افزونه، پوسته یا اسکریپت باعث خطا شده است، کمک کنند.

8. تماس با پشتیبانی هاست

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

پیشگیری از خطای 500

  • به‌روزرسانی منظم: همیشه وردپرس، افزونه‌ها و پوسته‌های خود را به آخرین نسخه پایدار به‌روز نگه دارید.
  • پشتیبان‌گیری منظم: همیشه قبل از انجام هر گونه تغییر عمده (مانند به‌روزرسانی‌ها، نصب افزونه‌های جدید یا تغییرات کدی) از وب‌سایت خود پشتیبان تهیه کنید.
  • استفاده از منابع معتبر: فقط از افزونه‌ها و پوسته‌هایی استفاده کنید که از منابع معتبر، با پشتیبانی خوب و دارای بررسی‌های مثبت هستند.
  • تست در محیط توسعه: اگر تغییرات عمده‌ای در سایت خود ایجاد می‌کنید، بهتر است ابتدا آنها را در یک محیط توسعه (Staging Environment) تست کنید.
  • نظارت بر لاگ‌ها: به صورت دوره‌ای لاگ‌های خطای سرور خود را بررسی کنید تا مشکلات احتمالی را قبل از تبدیل شدن به خطای 500 شناسایی کنید.