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

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

قبل از رفع خطای 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 مسیر جداگانهای دارند و با این اقدام لزوماً غیرفعال نمیشوند.
برای آشنایی با بخشهای مدیریت سایت، میتوانید راهنمای پیشخوان وردپرس را مطالعه کنید.
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/
tahaansari42 11 سال عضو همیار وردپرس
وبسایتم را از یک هاست به هاست دیگر منتقل کردم انتقال پیدا کرد ارور 500 میده وقتی میخوام دسترسی به مدیریت پنل پیدا کنم. همه این کارها را هم کردم اما بازم درست نشد.
وقتی htaccess را تغییر میدادم میومد اما وقتی میخوام وارد صفحه بعد بشم دوباره ارور میده
بهاره کوهستانی 13 سال عضو همیار وردپرس
سلام
اگه میتونید وارد پنل ادمین بشید افزونه broken link نصب کنید تا لینک های خراب رو بررسی کنه.
mohammad lotfi 9 سال عضو همیار وردپرس
سلام من هاستم و تازه تغییر دادم و این ارور برای سایت میاد باید چیکار کنم
تموم مراحل بالا رو هم رفتم
پشتیبانی هم پاسخگو نیستند
لطفا کمک کنید
بهاره کوهستانی 13 سال عضو همیار وردپرس
سلام
مسلما از هاستتون هست.
جمشیدی
سلام وقتتون بخیر
تونستم با کد محدودیت حافظه مشکل رو رفع کنم ولی سرعت پنل افت کرده.میشه بهبودش داد؟
بهاره کوهستانی 13 سال عضو همیار وردپرس
سلام
بهتره از افزونه های optimize وردپرس استفاده کنید.
جمشیدی
با سپاس
aliabtrpi 10 سال عضو همیار وردپرس
سلام
من همه این کارا را کردم نشد
بعد فهمیدم که مشکل از این بوده ک من یه کد مسخره اضافه کرده بودم
و به خاطر کد نویسی من بوده
کدی که برای اضافه نمودن ادامه مطلب بود
به هر حال گفتم شما هم بزاریدش در مطلبتون
ممنون
از آموزش های خوبتون
تشکر فراوان
بدرود
نگار
سلام …ببخشید میخواستم بدونم این مشکلو از کجا باید حل کنم:
Bad Request: can’t parse message text: Expected end tag at byte offset 76
ممنون میشم اگه راهنماییم کنید……
ارمان باقری 10 سال عضو همیار وردپرس
سلام ممنون مشکلم حل شد دمتون گرم ک همیشه هستید عشقییییییییییییییییید عشق
مهدی
هیچ تفاوتی نکرد
memarc 11 سال عضو همیار وردپرس
با سلام بنده وبسایتم رو روی یک هاست رایگان خارجی نصب کرده ام ولی وقتی میخواهم با دامنه اختصاصی وارد شوم در فایرفاکس با خطای:
Error code: SSL_ERROR_BAD_CERT_DOMAIN
لطفا بگویید چه طور این مشکل را در سایتم حل کنم؟
چون در غیر اینصورت کاربرانم را از دست میدهم
نادر
سلام
ممنون از راهنماییتون ، با کمک اطلاعاتتون مشکلم حل شد
علی
درود
htaccess را تغییر نام دادم خطا رفع شد. اما الان قالب بهم ریخته انگار بدون css ه. چندتا قالبم عوض کردم باز به هم ریختس. لطفا راهنمایی کنید.