
وقتی سایت وردپرسی بهجای صفحه اصلی یا پیشخوان، پیام 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/
سعید
سلام من رو روکال هاست به این خطا برخوردم. من قبلا آدرسم localhost/wp بود که بنا به دلایلی به localhost تغییرش دادم کل پوشه وردپرس را هم منتقل کردم روی mysql هم آدرس عوض کردم ( در قسمت wp_option) در خود وردپرس تو تنظیمات هم ادرس عوض کردم . خود وردپرس بالا میاد. صفحه اصلی هم بالا میاد ولی برای برگه ها و نوشته ها خطای 500 میده
خطا این هست:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at postmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
xampp خاموش روشن کردم . کامپیوتر ریستارت کردم. کش مرورگر پاک کردم. ولی درست نشد حتی وقتی برگه جدید هم ایجاد می کنم همین خطا را میده. حتی وردپرس هم آپدیت کردم نشد که نشد
علی
درود به شما مشکل من با تغییر نام پوشه افزونه حل شد فقط من وقتی دوباره پوشه افزونه رو تغییر نام دادم حروف اولش بزرگ بود و لیست افزونهها نمیومد و کلی دردسر کشیدم تا تونستم بفهمم مشکل چیه و کلا حروف بصورت کوچیک نوشتم مشکل برطرف شد خواستم اطلاع رسانی کنم دوستان این اشتباه رو نکنن سپاس از مطلب مفیدتون عللی بود
علی
من تمام مراحل بالا رو انجام دادم بازم نتیجه نداد.. ممنون میشم راهنمایی کنید.
حسام رضائیان
سلام و خسته نباشید
من این مشکل رو هنگام باز کردن صفحه wp-admin باهاش رو به رو میشم
پویا
درود و سپاس
مشکل این بود که فقط یکی از صفحه های سایت امکان ویرایش نداشت
و فقط با تغییر نام پلاگین ها یعنی پوشه پلاگین موضوع برطرف شد.
تمامی موارد دیگه بی تاثیر بود.
واقعا ممنون که توضیحات رو زحمت کشیدید به اشتراک گذاشتید.
پیروز و تندرست باشید.
safa
من این مشکل رو در زمان نصب دارم چیکار کنم ؟
reza
با خطای اینترنال سرور مواجه شدم و وقتی به ارور لاگ سی پنل میرم ، ارور زیر رو نشون میده
ممنون میشم اگه کمکم کنین
[Mon May 21 02:27:59.641537 2018] [:error] [pid 22588] [client 80.66.181.226:57179] File does not exist:
MOHI
سلام من این ارور رو توی هاست تو فولدر EROOR-LOG HDاینو میبینم
[26-Mar-2018 09:53:54 UTC] PHP Fatal error: Call to undefined function get_bloginfo() in /home/agrafiki/public_html/wp-includes/class-wp-locale.php on line 231
و اینکه تمام هاگین های دید رو تغییر نام دادم
سجاد
عااااااااااااااااالی بوووووووووووووووووددددددددددددد.مشکلم حل شددددددددددددد.خسته نباشید.خیلی ساییتون عالیه. خداقوت
فاطمه میرزایی 9 سال عضو همیار وردپرس
باسلام خسته نباشید خدمت تیم همیاروردپرس
من سایتم رو بروزرسانی کردم ولی بروزرسانیenبود و سایت من fa
بعد ی دفعه با این ارور مواجه شدم حتی به ناحیه پیشخوان هم نمیتونم وارد بشم
اگه میشه لطفا راهنماییم کنید.