راهنمای کامل رفع خطای ۵۰۰ Internal Server Error در وردپرس و سرور — گام‌به‌گام تا حل قطعی

آخرین بروزرسانی در تاریخ آگوست 8, 2026 توسط PersiaWebAdmin

ارور ۵۰۰ دقیقاً چیست؟ (تعریف ساده برای درک فوری)

کد وضعیت HTTP یا همان Status Code، زبان استانداردی است که سرورها با مرورگرها صحبت می‌کنند. وقتی مرورگر شما درخواستی (مثلاً باز کردن یک صفحه) به سرور می‌فرستد، سرور پاسخ می‌دهد: «۲۰۰» یعنی همه چیز خوب است، «۴۰۴» یعنی صفحه پیدا نشد، و «۵۰۰» یعنی یک خطای داخلی در سرور رخ داده که مانع از پاسخ‌گویی درست شده است.

به زبان ساده: مرورگر درخواست را درست فرستاده، سرور سعی کرده آن را پردازش کند، اما وسط راه به مشکل خورده و نتوانسته پاسخ را تحویل دهد. مشکل از سمت کاربر نیست — مشکل در سمت سرور است. اما «کجای سرور» سوالی است که جوابش در ادامه همین مقاله است.

نکته طلایی: برخلاف خطاهای ۴۰۴ که می‌گویند «صفحه نیست»، ارور ۵۰۰ می‌گوید «سرور قاطی کرده، خودت بگرد ببین کجاش!» و به همین دلیل است که عیب‌یابی آن نیازمند یک متد مشخص و گام‌به‌گام است.

پیشنهاد مطالعه : تگ noindex چیست

انواع مختلف ارورهای سری ۵۰۰ — کد وضعیت‌هایی که باید بشناسید

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

کد وضعیتتوضیح سادهشایع‌ترین علت
500 Internal Server Errorخطای عمومی و نامشخص سرورخطای کدنویسی، افزونه معیوب، یا فایل .htaccess خراب
501 Not Implementedسرور این نوع درخواست را پشتیبانی نمی‌کندماژول سرور غیرفعال یا نسخه قدیمی نرم‌افزار
502 Bad Gatewayپاسخ نادرست از یک سرور واسطه (پروکسی یا گیت‌وی)ارتباط ناموفق بین سرورها، معمولاً هنگام استفاده از CDN یا پروکسی معکوس
503 Service Unavailableسرور موقتاً در دسترس نیستفشار بیش از حد ترافیک، عملیات نگهداری، یا اتمام منابع
504 Gateway Timeoutاتصال بین سرورها زمان‌بر یا قطع شدهمشکل در شبکه، DNS، یا تنظیمات فایروال
505 HTTP Version Not Supportedنسخه HTTP پشتیبانی نمی‌شودسرور قدیمی یا پیکربندی ناسازگار

اگر دقیقاً کد وضعیت را می‌بینید (مثلاً ۵۰۲ یا ۵۰۳)، مستقیماً به سراغ همان ردیف بروید. اما اگر فقط عبارت «Internal Server Error» را می‌بینید، به احتمال زیاد با ۵۰۰ عمومی روبرو هستید و باید گام‌های بعدی را دقیقاً دنبال کنید.

شش دلیل اصلی ارور ۵۰۰ — مقصران را بشناسید

قبل از شروع عیب‌یابی، بیایید با شش متهم اصلی آشنا شویم. ذهن شما باید آماده باشد که کدام بخش‌ها را بررسی کند:

۱. فایل .htaccess خراب یا دارای کد اشتباه

این فایل متنی کوچک که در ریشه سایت قرار دارد، دستورات حیاتی برای آپاچی (و گاهی Nginx) را نگه می‌دارد. یک خطای کوچک تایپی یا یک ریدایرکت نامعتبر در آن، می‌تواند کل سایت را از کار بیندازد. این شایع‌ترین علت ارور ۵۰۰ در هاست‌های اشتراکی است.

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

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

۳. افزونه یا قالب معیوب (مخصوص وردپرس)

نصب یک افزونه ناسازگار، به‌روزرسانی ناقص، یا حتی تداخل بین دو افزونه می‌تواند یک خطای PHP Fatal ایجاد کند و سایت را به صفحه ۵۰۰ ببرد.

۴. دسترسی‌های فایلی (Permissions) نادرست

اگر مجوز یک فایل یا پوشه خیلی باز باشد (مثلاً ۷۷۷)، برخی سرورها به دلایل امنیتی آن را مسدود می‌کنند و خطای ۵۰۰ رخ می‌دهد.

۵. خطای Syntax در کدهای PHP

یک نقطه‌ویرگول جاافتاده، یک پرانتز بسته‌نشده، یا یک تابع اشتباه در فایل functions.php قالب، برای ایجاد خطای ۵۰۰ کافی است. این خطا معمولاً بعد از ویرایش دستی کدها رخ می‌دهد.

۶. اختلال در ماژول‌های سرور یا پیکربندی PHP

در سرورهای اختصاصی، فعال یا غیرفعال کردن نادرست یک ماژول Apache یا PHP می‌تواند کل سرویس را مختل کند.

پیشنهاد مطالعه : بودجه خزش (Crawl Budget) چیست؟

نحوه رفع ارور ۵۰۰ — فرایند گام‌به‌گام (از ساده به پیچیده)

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

گام ۱: فایل‌های لاگ را بررسی کنید (چشم بسته نمی‌شود عمل کرد!)

اولین و حیاتی‌ترین اقدام، نگاه کردن به Error Log است. این فایل دقیقاً به شما می‌گوید خطا در کدام فایل و در کدام خط رخ داده است. بدون این اطلاعات، عملاً در تاریکی قدم برمی‌دارید.

کجا لاگ را پیدا کنیم؟

  • در هاست‌های cPanel یا DirectAdmin: وارد File Manager شوید، به پوشه /public_html/ (یا ریشه سایت) بروید و فایل error_log را باز کنید. گاهی یک پوشه بالاتر (در root) هم یک فایل error_log وجود دارد.
  • در هاست‌های دارای کنترل پنل اختصاصی: معمولاً از بخش «Logs» یا «Error Logs» قابل مشاهده است.
  • در سرور اختصاصی Apache: مسیر /var/log/apache2/error.log را بررسی کنید.
  • در سرور اختصاصی Nginx: مسیر /var/log/nginx/error.log را ببینید.

یک خطای معمول در لاگ چیزی شبیه این خواهد بود:

[13-Mar-2026 08:15:23 UTC] PHP Parse error: syntax error, unexpected 'endif' in /home/user/public_html/wp-content/themes/mytheme/functions.php on line 47

این پیام طلایی دقیقاً به شما می‌گوید: «برو به فایل functions.php، خط ۴۷، یک خطای نگارشی داری!» با این اطلاعات، مستقیماً به سراغ فایل مورد نظر بروید و خطا را اصلاح کنید.

گام ۲: فایل .htaccess را تست و بازنشانی کنید

اگر لاگ پیام واضحی ندارد یا اولین جایی که می‌خواهید چک کنید، اینجاست. فایل .htaccess مثل سیمِ برق اصلی سایت شماست — یک اتصالی ساده، همه جا را خاموش می‌کند.

روش تست سریع:

  1. وارد File Manager هاست خود شوید و به پوشه /public_html/ بروید.
  2. فایل .htaccess را پیدا کرده و نام آن را به .htaccess_old تغییر دهید.
  3. سایت خود را رفرش کنید. اگر سایت باز شد و خطا ناپدید شد، یعنی مشکل دقیقاً از همین فایل بوده است.
  4. حالا می‌توانید یک فایل .htaccess جدید و سالم ایجاد کنید. در وردپرس، کافی است به «تنظیمات > پیوندهای یکتا» بروید و بدون تغییر، فقط دکمه «ذخیره تغییرات» را بزنید — وردپرس خودکار یک .htaccess پیش‌فرض سالم می‌سازد.

اگر به هر دلیل نمی‌توانید از وردپرس استفاده کنید، یک فایل .htaccess خالی بسازید و این کد استاندارد را در آن قرار دهید:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

اگر مشکل حل نشد و فایل .htaccess مقصر نبود، نام فایل را دوباره به .htaccess برگردانید و به گام بعدی بروید.

گام ۳: افزایش محدودیت حافظه PHP (Memory Limit)

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

روش افزایش حافظه در وردپرس (ساده‌ترین راه):


  • فایل wp-config.php را که در ریشه وردپرس قرار دارد، باز کنید.
  • دقیقاً قبل از خطی که می‌گوید /* That's all, stop editing! Happy blogging. */، این خط را اضافه کنید:

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

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

برای سرورهای اختصاصی یا کاربران پیشرفته: می‌توانید مستقیماً فایل php.ini را ویرایش کنید و این خط را اضافه یا اصلاح کنید:

memory_limit = 256M

سپس Apache یا PHP-FPM را ریستارت کنید.

گام ۴: غیرفعال‌سازی تمام افزونه‌ها (مخصوص وردپرس)

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

چطور تمام افزونه‌ها را یکجا غیرفعال کنیم (حتی اگر به داشبورد دسترسی نداریم):


  1. وارد File Manager هاست شوید یا با FTP (مثلاً FileZilla) به سایت متصل شوید.
  2. به مسیر /public_html/wp-content/ بروید.
  3. پوشه plugins را پیدا کنید و نام آن را موقتاً به plugins_disabled تغییر دهید.
  4. حالا سایت را رفرش کنید. اگر سایت باز شد، یعنی قطعاً یکی از افزونه‌ها مقصر بوده است.

حالا چطور مقصر اصلی را پیدا کنیم؟


  • نام پوشه را دوباره به plugins برگردانید.
  • این بار به داخل پوشه plugins بروید و نام تک‌تک پوشه‌های افزونه‌ها را (یکی‌یکی) با اضافه کردن مثلاً _disable تغییر دهید و هر بار سایت را تست کنید.
  • وقتی با غیرفعال کردن یک افزونه خاص، سایت بالا آمد، مقصر را یافته‌اید. آن افزونه را حذف کنید، با نویسنده‌اش تماس بگیرید، یا به دنبال جایگزین بگردید.

گام ۵: بررسی مجوزهای فایل و پوشه (Permissions)

دسترسی‌های بسیار باز (مثلاً ۷۷۷) یک ریسک امنیتی است و برخی سرورها به همین دلیل خطای ۵۰۰ می‌دهند. مجوزهای بسیار بسته هم ممکن است مانع اجرای اسکریپت‌ها شوند.

اعداد استاندارد و امن برای وردپرس:

  • فایل‌ها: 644

  • پوشه‌ها: 755

در File Manager هاست، می‌توانید مجوزها را به صورت انبوه اصلاح کنید. پوشه‌های حساس مثل wp-admin و wp-includes را حتماً با همین مقادیر تنظیم کنید. فایل wp-config.php را روی ۴۴۰ یا ۴۰۰ تنظیم کنید تا امن‌تر باشد.

گام ۶: بازگردانی نسخه پشتیبان (آخرین راه‌حل قطعی)

اگر هیچ‌کدام از گام‌های بالا جواب نداد و همچنان سایتتان پایین است، زمان آن رسیده که از آخرین نسخه پشتیبان سالم استفاده کنید. یک بک‌آپ کامل (فایل‌ها + دیتابیس) مربوط به قبل از بروز خطا را از هاست یا افزونه بک‌آپ‌گیری خود (مثل UpdraftPlus) بازیابی کنید. سایت باید به وضعیت پایدار قبلی برگردد. سپس با احتیاط، یک‌به‌یک تغییرات اخیر را اعمال کنید تا بفهمید کدام اقدام باعث خطا شده است.

پیشنهاد مطالعه : ریدایرکت از http به https

رفع ارور ۵۰۰ برای سناریوهای خاص وردپرس

برخی ارورهای ۵۰۰ در وردپرس، الگوهای مشخصی دارند. جدول زیر شما را مستقیماً به راه‌حل می‌رساند:

چه زمانی ارور را می‌بینید؟ محتمل‌ترین دلیل اقدام فوری
بعد از نصب یا به‌روزرسانی یک افزونه ناسازگاری افزونه با نسخه PHP یا وردپرس گام ۴ را اجرا کنید (غیرفعال‌سازی افزونه‌ها از FTP)
بعد از تعویض یا به‌روزرسانی قالب توابع ناسازگار در functions.php قالب با FTP به /wp-content/themes/ بروید، پوشه قالب فعلی را مثلاً به mytheme_backup تغییر نام دهید تا وردپرس به قالب پیش‌فرض برگردد.
فقط هنگام ورود به داشبورد (پیشخوان) کش یا کوکی خراب مرورگر، یا مشکل در فایل .htaccess ابتدا کش مرورگر را پاک کنید و با یک مرورگر دیگر تست کنید. اگر نشد، گام ۲ را اجرا کنید.
هنگام آپلود فایل یا تصویر محدودیت حافظه PHP یا مجوز نادرست پوشه uploads گام ۳ (افزایش Memory Limit) و گام ۵ (بررسی مجوز پوشه wp-content/uploads روی ۷۵۵) را انجام دهید.
بعد از ویرایش دستی فایل‌های قالب خطای نگارشی (Syntax Error) در PHP فوراً فایل لاگ را چک کنید (گام ۱). خط و فایل مشخص شده را به حالت قبل برگردانید.

رفع ارور ۵۰۰ در سرورهای Apache و Nginx (برای مدیران سرور)

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

در Apache:


  • وضعیت ماژول mod_rewrite را چک کنید (دستور sudo a2enmod rewrite).

  • فایل پیکربندی Apache (/etc/apache2/apache2.conf) و .htaccess را برای تداخل بررسی کنید.

  • پس از تغییرات، سرویس را ریستارت کنید: sudo systemctl restart apache2

در Nginx:


  • فایل پیکربندی اصلی /etc/nginx/nginx.conf و فایل‌های سایت در /etc/nginx/sites-available/ را بررسی کنید.

  • لاگ خطاها در /var/log/nginx/error.log اطلاعات دقیق می‌دهد.

  • اگر از PHP-FPM استفاده می‌کنید، ممکن است نیاز به افزایش بافرها داشته باشید. این خطوط را به بخش location ~ \.php$ اضافه کنید:

fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;

سپس با sudo systemctl restart nginx سرور را ریستارت کنید.

نمایش جزئیات خطا در PHP (فقط برای محیط توسعه)

اگر روی لوکال‌هاست یا سرور تست هستید و می‌خواهید خودِ PHP خطاها را مستقیم نشان دهد (به‌جای صفحه ۵۰۰ خالی)، می‌توانید در ابتدای اسکریپت خود این کد را اضافه کنید:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

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

استراتژی پیشگیری — کاری کنید ارور ۵۰۰ دیگر سراغتان نیاید

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

  1. همیشه قبل از به‌روزرسانی، بک‌آپ کامل بگیرید. افزونه‌هایی مثل UpdraftPlus می‌توانند این کار را خودکار انجام دهند و فایل بک‌آپ را به Google Drive یا فضای ابری دیگر بفرستند.

  2. تغییرات کدنویسی را ابتدا روی سایت لوکال یا استیج (Staging) تست کنید. هرگز فایل functions.php سایت اصلی را مستقیم ویرایش نکنید. هاست‌های خوب مثل لیموهاست یا ابر آروان قابلیت Staging با یک کلیک دارند.

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

  4. از یک هاست معتبر با منابع کافی استفاده کنید. هاست‌های اشتراکی شلوغ که CPU و RAM محدودی دارند، در اثر فشار ترافیک خطای ۵۰۳ یا ۵۰۰ می‌دهند. اگر سایتتان رشد کرده، به فکر ارتقا به هاست نیمه‌اختصاصی یا ابری باشید.

  5. فایل لاگ را به طور منظم (مثلاً هفتگی) بررسی کنید. گاهی اوقات خطاهای کوچک قبل از تبدیل شدن به یک ۵۰۰ تمام‌عیار، در لاگ ثبت می‌شوند. آن‌ها را زودتر شکار کنید.

  6. تعداد افزونه‌ها را به حداقل ممکن برسانید. هر افزونه اضافی، یک نقطه شکست بالقوه است. افزونه‌های غیرضروری را حذف کنید.

چک‌لیست سریع رفع ارور ۵۰۰ (ذخیره کنید برای مواقع اضطراری)

این چک‌لیست را در جایی در دسترس داشته باشید. وقتی سایتتان داون شد و استرس دارید، دقیقاً همین ترتیب را اجرا کنید:

اولویت اقدام اگر حل شد، متوقف شو ✓
۱ فایل error_log را باز کن و خطای ثبت‌شده را بخوان. مستقیماً خط مشخص شده را رفع کن.
۲ فایل .htaccess را با تغییر نام موقتاً غیرفعال کن. فایل جدید بساز یا پیوندهای یکتا را ذخیره کن.
۳ محدودیت حافظه PHP را در wp-config.php به ۲۵۶M افزایش بده. مشکل کمبود حافظه حل می‌شود.
۴ تمام افزونه‌ها را با تغییر نام پوشه plugins غیرفعال کن. افزونه مقصر را شناسایی و حذف کن.
۵ مجوز فایل‌ها (۶۴۴) و پوشه‌ها (۷۵۵) را بررسی و اصلاح کن. مشکل دسترسی حل می‌شود.
۶ آخرین نسخه پشتیبان سالم را بازیابی کن. سایت به وضعیت پایدار قبل برمی‌گردد.

جمع‌بندی — ارور ۵۰۰ غول بی‌شاخ و دمی نیست

ارور ۵۰۰ Internal Server Error شاید در نگاه اول ترسناک به نظر برسد — یک صفحه سفید بدون هیچ توضیحی — اما حقیقت این است که در ۹۰٪ موارد، مشکل از یکی از همان شش دلیلی است که بررسی کردیم. با یک روش منظم و گام‌به‌گام، می‌توانید در کمتر از ۳۰ دقیقه دلیل اصلی را پیدا و سایتتان را دوباره زنده کنید.

اصل طلایی عیب‌یابی: همیشه از فایل‌های لاگ شروع کنید، تغییرات را یکی‌یکی و با آزمون انجام دهید، و هرگز چندین متغیر را هم‌زمان تغییر ندهید. صبوری و متدلوژی، برنده این بازی است.

همین الان فایل error_log سایتتان را چک کنید — شاید یک اخطار کوچک در آن باشد که اگر امروز به آن رسیدگی کنید، از فاجعه فردا جلوگیری شود. اگر هم اکنون سایتتان داون است، از گام ۱ شروع کنید و تا آخر پیش بروید.

پرشیا وب

اشتراک بگذارید :

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

از سال ۲۰۱۳ فعالیت حرفه‌ای خود را در حوزه طراحی وب آغاز کرد و تاکنون بیش از 300 پروژه طراحی سایت و بهینه‌سازی سئو در صنایع مختلف اجرا کرده است. تجربه عملی او در پروژه‌های واقعی، به ویژه در کسب‌وکارهای ایرانی، موجب شده است بتواند راهکارهایی کاملاً کاربردی و بومی برای رشد آنلاین ارائه دهد.

طراحی و توسعه وب‌سایت‌های شرکتی، فروشگاهی و شخصی با تمرکز بر سرعت، امنیت و تجربه کاربری (UX)
استراتژی‌های سئو فنی، on-page و off-page برای افزایش رتبه در نتایج گوگل
تحلیل رقبا، تحقیق کلمات کلیدی و اجرای کمپین‌های تولید محتوا
مشاوره و اجرای رپورتاژ آگهی و لینک‌سازی هدفمند برای بهبود اعتبار دامنه
طراحی کمپین‌های دیجیتال مارکتینگ یکپارچه برای برندهای نوپا و فعال
مطالب آموزشی و مقالات سئویی که توسط بنیامین ولادوست در وبلاگ “پرشیا وب” منتشر می‌شوند، بر پایه جدیدترین الگوریتم‌های گوگل و استانداردهای جهانی تدوین شده‌اند. او به عنوان متخصص مورد اعتماد در حوزه دیجیتال مارکتینگ، تاکنون در بیش از ۲۰ مجموعه آموزشی و ورکشاپ تخصصی سخنرانی و تدریس داشته است. بسیاری از کسب‌وکارهای آنلاین موفق، مسیر رشد خود را با آموزش‌ها و راهنمایی‌های او آغاز کرده‌اند.

تمام راهکارها و خدماتی که توسط بنیامین ولادوست و تیم “پرشیا وب” ارائه می‌شوند، بر پایه صداقت، شفافیت و تحلیل داده‌های واقعی بنا شده‌اند. هدف او ارائه مشاوره‌ای است که نه بر اساس تبلیغات، بلکه بر پایه داده و عملکرد واقعی کسب‌وکارها باشد.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا