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

خطای 500 در وردپرس

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

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

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

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

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

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

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

قبل از رفع خطای 500 چه کارهایی انجام دهیم؟

زمان شروع خطا، آخرین تغییرات سایت، URL مشکل‌دار و هر پیامی که در گزارش خطا ثبت شده را یادداشت کنید. اگر فروشگاه یا سایت پرترافیکی دارید، بهتر است تغییرات آزمایشی را ابتدا روی محیط Staging انجام دهید. برای سایت اصلی، از تغییر هم‌زمان چند گزینه بپرهیزید؛ چون تشخیص اینکه کدام اقدام مؤثر بوده دشوار می‌شود.

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

راهنمای سریع تشخیص علت خطای 500

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

نشانه خطا احتمال قابل بررسی اولین اقدام
خطا بلافاصله بعد از به‌روزرسانی افزونه رخ داده خطای PHP یا ناسازگاری افزونه بررسی لاگ و غیرفعال کردن موقت افزونه مشکوک
فقط پیشخوان خطای 500 می‌دهد کد مربوط به مدیریت یا افزونه امنیتی بررسی خطاهای ثبت‌شده برای مسیر wp-admin
بعد از تغییر پیوندهای یکتا خطا رخ داده قوانین نادرست .htaccess در Apache تغییر نام موقت فایل پس از تهیه نسخه پشتیبان
در لاگ عبارت Allowed memory size exhausted دیده می‌شود کمبود حافظه PHP بررسی memory_limit و مصرف حافظه افزونه‌ها
چند سایت یک هاست هم‌زمان مشکل دارند تنظیمات یا منابع سرور گرفتن گزارش خطا و تماس با پشتیبانی هاست

آموزش رفع خطای 500 در وردپرس

1. گزارش خطا را بررسی و اشکال‌زدایی را ایمن فعال کنید

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

برای ثبت خطاهای وردپرس می‌توانید با دسترسی به File Manager یا SFTP فایل wp-config.php را باز کنید. پس از تهیه نسخه پشتیبان، مقادیر زیر را پیش از خط توقف ویرایش فایل تنظیم کنید. اگر این ثابت‌ها از قبل تعریف شده‌اند، مقدار همان‌ها را تغییر دهید و تعریف تکراری اضافه نکنید:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

این تنظیمات تلاش می‌کنند خطاهای مرتبط را در wp-content/debug.log ذخیره کنند، بدون اینکه جزئیات فنی در صفحه عمومی سایت نمایش داده شود. اگر فایل لاگ ایجاد نشد، بررسی کنید خطا قبل از اجرای وردپرس رخ نداده باشد و دسترسی نوشتن لاگ وجود داشته باشد. گزارش خطای هاست در این حالت مهم‌تر است. فایل لاگ ممکن است اطلاعات حساس داشته باشد؛ آن را عمومی نکنید و بعد از عیب‌یابی، حالت Debug را غیرفعال کنید.

2. افزونه‌ها را به‌صورت موقت غیرفعال کنید

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

اگر پیشخوان باز نمی‌شود، در File Manager یا SFTP به wp-content/plugins بروید و پوشه افزونه مشکوک را موقتاً تغییر نام دهید. این کار ممکن است افزونه را غیرفعال کند. برای آزمایش همه افزونه‌های معمولی نیز امکان تغییر نام موقت پوشه plugins وجود دارد، اما روی سایت فعال ممکن است عملکرد فروشگاه، امنیت یا فرم‌ها مختل شود؛ بنابراین با آگاهی از پیامدها و نسخه پشتیبان انجام دهید. افزونه‌های Must-Use مسیر جداگانه‌ای دارند و با این اقدام لزوماً غیرفعال نمی‌شوند.

راهنمای انتخاب افزونه وردپرس؛ قبل از نصب افزونه به این 12 نکته توجه کنید

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

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

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

اگر پنل مدیریت در دسترس نیست، تغییر نام پوشه قالب از مسیر wp-content/themes در بعضی شرایط می‌تواند موجب جایگزینی قالب شود، اما تنها وقتی قالب پیش‌فرض مناسب نصب شده باشد. اگر مطمئن نیستید، این کار را با پشتیبانی هاست انجام دهید.

4. فایل .htaccess را بدون حذف دائمی آزمایش کنید

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

اگر مشکل برطرف شد، علت احتمالاً به یکی از قوانین فایل مربوط است. در صورت دسترسی به پیشخوان، قسمت تنظیمات ← پیوندهای یکتا را بررسی کنید و تنظیمات را ذخیره کنید تا وردپرس در محیط‌های سازگار قوانین موردنیاز را بازسازی کند. قوانین امنیتی، ریدایرکت‌ها و تنظیمات اختصاصی را از نسخه پشتیبان بررسی و به‌صورت کنترل‌شده برگردانید. روی Nginx، تغییر نام این فایل معمولاً همان اثر را ندارد؛ زیرا تنظیمات اصلی در پیکربندی سرور قرار دارند.

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

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

در وردپرس نیز ثابت WP_MEMORY_LIMIT وجود دارد؛ برای نمونه:

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

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

6. در صورت نیاز فایل‌های اصلی وردپرس را سالم‌سازی کنید

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

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

7. اگر خطا ادامه دارد، اطلاعات دقیق را به پشتیبانی هاست بدهید

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

اگر خطای 500 فقط در wp-admin رخ می‌دهد چه کنیم؟

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

چگونه از بازگشت خطای 500 جلوگیری کنیم؟

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

جمع‌بندی

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

منبع: https://themeisle.com/blog/wordpress-internal-server-error-fix/

سوالات متداول

خطای 500 در وردپرس درواقع زمانی اتفاق می‌افتد که پروتکل Http یافت نشود؛ یعنی سرور به درخواست Http پاسخ دهد ولی نتواند آن را بازیابی کند. خطایinternal server error 500 فقط مختص وردپرس نیست و همان‌طور که از نامش پیدا است، به دلیل عدم ناسازگاری در کدهای سایت رخ می‌دهد.
طی ۶ مرحله این کار امکانپذیر است: حالت اشکال زدایی را روشن کنید. همه افزونه ها را غیرفعال کرده و تم ها را تغییر دهید. فایل htaccess خود را بررسی کنید. حافظه خود را افزایش دهید. از هاست یا میزبان خود بپرسید. وردپرس را دوباره نصب کنید.
خطاهایی که در دستورات مختلف ظاهر می‌شوند اما جای نگرانی نیست زیرا تمامی ین خطاها با عملکردهایی کاملا برطرف شده و مشکل رفع می‌شود.
آیا این مقاله برای شما مفید بود؟
تقریبا
خیر

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

ارسال دیدگاه به معنی این است که شما ابتدا قوانین ارسال دیدگاه را مطالعه کرده‌اید و با آن موافق هستید.

دیدگاه‌های این نوشته جدید ترین ها شاخص

  1. 11 سال عضو همیار وردپرس

    سلام خسته نباشید
    یک قالب خریداری کردم و از ایسنتالر نصبش کردم اجرا شد ولی زمان ورود به مدیریت ارور کوکی داد هر کاری که کردم درست نشد هاستینگ میگه وردپرس قالب باید بروز رسانی بشه از پشتیبانی قالب درخواست کنید تا رفع کنه ولی پشتیبانی چند روز جواب نمیده به نظرتون چطوری میشه این مشکل حل کنم ؟

  2. با سلام.دیروز هاستم را تغییر دادم و امروز dns ها ست شده اند.وردپرس را بر روی هاست آپلود کردم ومراحل نصب آن را نیز انجام دادم.اما هنگام انتشار نوشته یا ذخیره تنظیمات همگانی در وردپرس ،مرورگر به صفحه ی wp-admin/post.php و wp-admin/options.php هدایت می شود و نوشته ی برگه پیدا نشد در بالای تب مرورگر ظاهر می شود.
    (در ضمن وردپرس را چند بار نصب و حذف کردم اما مشکل همچنان پابرجاست.)
    لطفا راهنمایی فرمایید

    • 13 سال عضو همیار وردپرس

      سلام
      آدرس پنل ادمین وردپرس رو توی یه مرورگر دیگه تست کنید.

  3. سلام چند روزی هست به صورت مرتب سایتم خطای از Function.php وردپرس نشون میده، که پک وردپرس رو Extract که می کنم مشکل حل میشه ولی بعد از چند ساعت دوباره این مشکل نشون داده میشه، چیکار کنم ،
    خطاها به شکل زیر هستند.
    Parse error: syntax error, unexpected $end, expecting ‘(‘ in /home/public_html/wp-includes/functions.php on line 4229

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting ‘)’ in /home/public_html/wp-includes/functions.php on line 3570

    Parse error: syntax error, unexpected ‘}’ in /home/public_html/wp-includes/functions.php on line 586
    Fatal error: Call to undefined function wp_allowed_protocols() in /home/public_html/wp-includes/formatting.php on line 3445
    Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in /home/public_html/wp-includes/functions.php on line 4617

    Parse error: syntax error, unexpected $end in /home/public_html/wp-includes/functions.php on line 1316

  4. ببحشید من در هنگام بارگذاری قالب با ارور خواهشمندیم دو باره تلاش کنید رو برو میشم .مشکل کجاست؟؟؟
    ممنون میشم راهنمایی کنید

    • 13 سال عضو همیار وردپرس

      سلام
      دقیقا فایل قالب باید بارگذاری بشه

  5. سلام ، این مشکل رو وقتی میخوام یک آلبوم جدید در افزونه Global flash gallery ایجاد کنم میده، باید چیکار کنم؟ ممنون میشم کمک کنید . ارور: 1. Table ‘richhel1_00.wp_flgallery_albums’ doesn’t exist

  6. 11 سال عضو همیار وردپرس

    سلام.
    سایت من نسخه رایانش ارور 500 میده اما وقتی با موبایل وارد سایت میشم هیچ اخطاری نمیاد. به نظر شما مشکل از کجاس؟

  7. سلام
    من دامینمو عوض کردم ورد پرس هم روی ساب دامین نصب بود
    بعد از تغییر دامین وردپرس دیگه بالا نمیاد و خطای پونصد میده روش های بالا هم جواب نداد
    لطفا راهنمایی کنید
    جایی باید تغییر خاصی می دادم بعد از تغییر دامین ؟

  8. سلام..ممنون از راهنماییتون…میخواستم در مورد خطای 324 بپرسم/با طراح سایت هم تماس گرفتم گفتن مشکل از سروره..ولی هنوز رهنماییم نکردن..باید چیکار کنم؟

  9. با سلام
    من افزونه wp-statistics رو از سایت دانلود کردم و تو قسمت افزونه ها نصب کردم،بعد نصب اون ارور 500 رو داد و الان سایت بالا نمیاد،توضیحات شما خوب بود ولی کافی نبود لطفا یکم بیشتر راهنمایی بفرمایید،مشکل سایت من افزونه هست،لطفا راهنمایی بفرمایید.باتشکر از زحماتتان.

  10. سلام بنده ورد پرس رو موقع نصب از پوشه wordprees nخارج کردم و نصب کردم الان موقع نصب پلاگین با پوسته پیام میده گه پوشه wp-content یافت نشد.