
خطای 500 Internal Server Error چیست؟
خطای 500 Internal Server Error یک خطای رایج سرور وب است. این خطا مخصوص وردپرس نیست و میتواند در هر وبسایتی رخ دهد.
عدد 500 در پیام خطا در واقع یک کد خطای HTTP است. جستجوی این کد فقط توضیحات استاندارد آن را نشان میدهد:
“کد پاسخ 500 Internal Server Error نشان میدهد که سرور با یک وضعیت غیرمنتظرهای مواجه شده است که مانع از انجام درخواست شده است.”
این یک پیام خطای عمومی و فراگیر است، به این معنی که سرور قادر به اختصاص یک پیام خطای بهتر و مفیدتر هنگام مواجهه با مشکل نبوده است.
صفحه خطا بسته به نرمافزار سرور وب (Nginx یا Apache) و مرورگری که استفاده میکنید، متفاوت به نظر میرسد.
در اینجا نحوه نمایش صفحه خطای Apache آمده است:

اگر از Nginx و Google Chrome استفاده میکنید، ممکن است ظاهر متفاوتی داشته باشد.
همچنین اگر Google Chrome نتواند صفحهای برای نمایش خطا پیدا کند، ظاهر متفاوتی خواهد داشت.
این میتواند برای مبتدیان بسیار ناامیدکننده باشد. هیچ سرنخ یا پیامی آنها را به سمت درست برای رفع سریع آن هدایت نخواهد کرد.
پرسیدن نحوه رفع خطای سرور داخلی مانند این است که از پزشک خود بپرسید چگونه دردی را که تجربه میکنید بدون اینکه به او بگویید درد کجاست، برطرف کند.
از تجربه ما، یک رویکرد گام به گام رسیدگی به چنین خطاهایی را آسانتر میکند. ما شما را در حل علل رایج این خطا، یکی یکی، تا زمانی که حل شوند، راهنمایی خواهیم کرد.
چه عواملی باعث ایجاد خطای سرور داخلی در وردپرس می شوند؟
خطای سرور داخلی در وردپرس اغلب به دلیل فایل .htaccess خراب، افزونههای کدگذاری ضعیف یا قالب فعال وردپرس شما ایجاد میشود.
دیگر علل احتمالی خطای سرور داخلی در وردپرس، محدودیت حافظه PHP یا فایلهای هسته وردپرس خراب هستند.
در برخی شرایط، خطای سرور داخلی ممکن است فقط هنگام تلاش برای دسترسی به بخش مدیریت وردپرس ظاهر شود در حالی که بقیه سایت به خوبی کار میکند.
معمولاً این خطا قبل از بارگذاری وردپرس فعال میشود و سرور نمیتواند اطلاعات کافی در مورد اینکه چه چیزی آن را متوقف کرده است، دریافت کند.
برای درک بیشتر، مقاله ما را در مورد نحوه کار وردپرس در پشت صحنه ببینید.
با این حال، اکنون بیایید نگاهی به نحوه رفع خطای سرور داخلی در وردپرس بیندازیم.
رفع خطای 500 Internal Server Error در وردپرس
قبل از شروع عیبیابی، مطمئن شوید که یک نسخه پشتیبان کامل از وبسایت وردپرس خود تهیه کردهاید.
اگر به بخش مدیریت وردپرس دسترسی دارید، میتوانید از یک افزونه پشتیبانگیری وردپرس برای ایجاد یک نسخه پشتیبان کامل از وبسایت خود استفاده کنید.
ما استفاده از Duplicator را توصیه میکنیم. این افزونه نه تنها به شما کمک میکند تا به سرعت از وبسایت خود نسخه پشتیبان تهیه کنید، بلکه میتوانید نسخههای پشتیبان خود را در فضای ابری ذخیره کنید و مهمتر از همه، میتوانید وبسایت خود را از نسخه پشتیبان بازیابی کنید.
از سوی دیگر، اگر به بخش مدیریت وردپرس دسترسی ندارید، میتوانید با استفاده از phpMyAdmin و یک کلاینت FTP، یک نسخه پشتیبان دستی از وردپرس ایجاد کنید.
پس از آن، میتوانید مراحل زیر را برای عیبیابی و رفع خطای سرور داخلی در وبسایت خود دنبال کنید.
پاک کردن کش وردپرس و مرورگر
گاهی اوقات مرورگرها و افزونههای کش وردپرس شما ممکن است به اشتباه یک نسخه کششده از صفحه خطا را ذخیره کنند.
راحتترین راه برای رفع این مشکل، ابتدا پاک کردن کش مرورگر شماست.

پس از آن، اگر به بخش مدیریت وردپرس وبسایت خود دسترسی دارید، میتوانید با مراجعه به صفحه تنظیمات افزونه کش خود، کش وردپرس را خالی کنید.
برای جزئیات بیشتر، به آموزش ما در مورد نحوه پاک کردن کش وردپرس مراجعه کنید.
بررسی فایل .htaccess برای خرابی
فایل .htaccess یک فایل پیکربندی سرور است که توسط وردپرس برای تنظیم ریدایرکتها استفاده میشود. یکی از رایجترین علل خطای سرور داخلی، خراب شدن فایل .htaccess است. سادهترین راه برای رفع این مشکل، صرفاً بازدید از صفحه تنظیمات » پیوندهای یکتا در بخش مدیریت وردپرس و سپس کلیک کردن روی دکمه «ذخیره تغییرات» بدون ایجاد هیچ تغییری است.

پس از آن، وردپرس سعی میکند فایل .htaccess شما را بهروزرسانی کند یا یک فایل جدید ایجاد کند. اکنون میتوانید به وبسایت خود مراجعه کنید تا ببینید آیا این مشکل خطای سرور داخلی را برطرف کرده است یا خیر.
اگر هنوز هم خطا را میبینید، باید مطمئن شوید که وردپرس توانسته است فایل .htaccess را ایجاد یا به آن بنویسد.
گاهی اوقات، به دلیل مجوزهای فایل و دایرکتوری، وردپرس ممکن است نتواند فایل .htaccess را ایجاد یا به آن بنویسد.
اکنون میتوانید سعی کنید فایل .htaccess را به صورت دستی جایگزین کنید. ابتدا باید با استفاده از FTP یا برنامه File Manager در کنترل پنل حساب هاستینگ خود به وبسایت خود وارد شوید.
سپس، باید فایل اصلی .htaccess خود را به چیزی مانند .htaccess_old تغییر نام دهید. این به شما امکان میدهد فایل را بهعنوان یک نسخه پشتیبان نگه دارید، اما وردپرس آن را تشخیص نمیدهد.
برای تغییر نام فایل .htaccess، باید با استفاده از FTP یا برنامه File Manager در داشبورد cPanel حساب هاستینگ خود به سایت خود وارد شوید.
پس از اتصال، فایل .htaccess در همان دایرکتوری قرار دارد که در آن پوشههایی مانند wp-content، wp-admin و wp-includes را مشاهده خواهید کرد.
سادهترین راه برای تغییر نام فایل .htaccess، راستکلیک کردن روی آن و تغییر نام آن به .htaccess_old است.

سپس، باید یک فایل .htaccess جدید ایجاد کنید.
در پوشه اصلی سایت خود، راستکلیک کنید و سپس گزینه «ایجاد فایل جدید» را در کلاینت FTP یا برنامه File Manager خود انتخاب کنید.

این فایل جدید را .htaccess نامگذاری کنید و روی «OK» کلیک کنید تا ذخیره شود.
اکنون، این فایل .htaccess در حال حاضر خالی است و شما باید قوانین بازنویسی پیشفرض وردپرس را به آن اضافه کنید.
بهسادگی روی فایل راستکلیک کنید و سپس «مشاهده/ویرایش» را در کلاینت FTP یا برنامه File Manager خود انتخاب کنید.

فایل خالی در یک ویرایشگر متن ساده مانند Notepad یا TextEdit باز میشود.
اکنون، باید کد زیر را کپی کرده و داخل آن بچسبانید:
# BEGIN WordPress<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule># ENDWordPress
این کد مجموعه قوانین پیشفرض استفادهشده توسط وردپرس است. فراموش نکنید که تغییرات خود را ذخیره کرده و فایل را دوباره به سرور آپلود کنید.
اکنون میتوانید به وبسایت خود مراجعه کنید تا ببینید آیا این مشکل خطای سرور داخلی را برطرف کرده است یا خیر.
اگر این کار را انجام داد، به خودتان تبریک بگویید زیرا شما خطای سرور داخلی را برطرف کردید.
مهم: قبل از اینکه به کارهای دیگر بپردازید، مطمئن شوید که به صفحه تنظیمات » پیوندهای یکتا در بخش مدیریت وردپرس بروید و روی دکمه ذخیره کلیک کنید بدون اینکه هیچ تغییری ایجاد کنید. این کار قوانین بازنویسی مناسب را برای .htaccess شما بازسازی میکند تا اطمینان حاصل شود که صفحات پست شما خطای 404 را برنمیگرداند.
اگر بررسی راهحل فایل .htaccess خراب برای شما کار نکرد، باید به خواندن این مقاله ادامه دهید.
افزایش محدودیت حافظه PHP
گاهی اوقات، اگر یک اسکریپت تمام محدودیت حافظه PHP را مصرف کند، ممکن است خطای سرور داخلی رخ دهد.
راحتترین راه برای افزایش محدودیت حافظه PHP، ویرایش فایل wp-config.php است. اگر مبتدی هستید، هنگام انجام این کار مراقب باشید. باید این دستورالعملها را با دقت دنبال کنید زیرا حتی کوچکترین اشتباه در فایلهای اصلی وردپرس میتواند سایت شما را خراب کند.
برای شروع، به سادگی با استفاده از یک کلاینت FTP یا برنامه File Manager در پنل کنترل حساب هاستینگ خود به وبسایت وردپرس خود متصل شوید.
فایل wp-config.php را در پوشه اصلی وبسایت خود پیدا خواهید کرد. روی آن راست کلیک کرده و گزینه “دانلود” را انتخاب کنید. این کار اطمینان حاصل میکند که در صورت بروز مشکل، یک نسخه پشتیبان از فایل دارید.
پس از ذخیره آن، میتوانید روی آن راست کلیک کرده و گزینه “مشاهده/ویرایش” را انتخاب کنید.

در داخل فایل wp-config.php، باید کد زیر را درست بالای خطی که می گوید، “That’s all, stop editing! Happy publishing” اضافه کنید.
define( 'WP_MEMORY_LIMIT', '256M');
برای جزئیات بیشتر، به راهنمای ما در مورد نحوه افزایش محدودیت حافظه PHP در وردپرس مراجعه کنید.
توجه: اگر 256M مشکل را حل نکرد، آن را به 512M افزایش دهید.
اگر فقط هنگام تلاش برای ورود به مدیریت وردپرس یا آپلود تصویر در wp-admin با خطای سرور داخلی مواجه میشوید، باید با دنبال کردن این مراحل، محدودیت حافظه را افزایش دهید:
- یک فایل متنی خالی در رایانه خود ایجاد کنید و آن را php.ini نامگذاری کنید.
- این کد را در آنجا جایگذاری کنید: memory=256MB
- فایل را ذخیره کنید
- آن را با استفاده از FTP به پوشه /wp-admin/ خود آپلود کنید
اگر افزایش محدودیت حافظه مشکل شما را برطرف کرد، شما فقط مشکل را به طور موقت حل کرده اید. شما هنوز باید علت خستگی محدودیت حافظه را پیدا کنید.
این می تواند یک افزونه کدگذاری ضعیف یا حتی یک تابع قالب باشد. ما اکیداً توصیه می کنیم از شرکت میزبانی وب وردپرس خود بخواهید که به دنبال ورود به سیستم سرور برود تا به شما در یافتن تشخیص دقیق کمک کند.
اگر افزایش محدودیت حافظه PHP مشکل شما را برطرف نکرد، شما نیاز به عیب یابی بیشتری دارید.
تمام افزونه های وردپرس را غیرفعال کنید
اگر هیچ یک از راه حل های بالا برای شما کار نکرد، این خطا احتمالاً توسط یک افزونه خاص نصب شده در وب سایت شما ایجاد می شود.
همچنین ممکن است ترکیبی از افزونه هایی باشد که با هم خوب کار نمی کنند.
اگر می توانید به ناحیه مدیریت وردپرس وب سایت خود دسترسی داشته باشید، می توانید به سادگی به صفحه افزونه ها بروید و تمام افزونه های وردپرس را غیرفعال کنید.

با این حال، اگر قادر به دسترسی به ناحیه مدیریت وردپرس نیستید، می توانید تمام افزونه های وردپرس را با استفاده از FTP غیرفعال کنید.
به سادگی با استفاده از یک مشتری FTP یا برنامه مدیر فایل در پنل کنترل حساب میزبانی خود به وب سایت وردپرس خود متصل شوید.
پس از اتصال، به پوشه /wp-content/ بروید و نام پوشه افزونه ها را به plugins.deactivated تغییر دهید.

وردپرس به دنبال افزونه ها در پوشه افزونه ها است. اگر پوشه افزونه ها پیدا نشود، به طور خودکار تمام افزونه ها را غیرفعال می کند.
اکنون می توانید سعی کنید از وب سایت خود بازدید کنید تا ببینید آیا این مشکل خطای سرور داخلی را در وب سایت شما برطرف کرده است یا خیر.
برای بازیابی تمام افزونه های خود، می توانید به سادگی نام پوشه ‘plugins.deactivated’ را به plugins تغییر دهید.
اکنون افزونه های شما بازیابی می شوند، اما همچنان غیرفعال خواهند ماند.
اکنون می توانید افزونه ها را به صورت جداگانه فعال کنید و از وب سایت خود بازدید کنید تا مشخص کنید کدام افزونه باعث خطای سرور داخلی می شود.
برای جزئیات بیشتر، به راهنمای ما در مورد نحوه غیرفعال کردن تمام افزونه های وردپرس بدون wp-admin مراجعه کنید.
اگر غیرفعال کردن همه افزونه ها خطای سرور داخلی را در وب سایت شما برطرف نکرد، ادامه مطلب را بخوانید.
تغییر به یک تم پیشفرض وردپرس
یکی از دلایل احتمالی خطای سرور داخلی میتواند کدی در تم وردپرس شما باشد.
برای تعیین اینکه آیا این مورد است، باید تم خود را به یک تم پیشفرض وردپرس تغییر دهید.
اگر به ناحیه مدیریت وردپرس دسترسی دارید، به صفحه ظاهر » پوستهها بروید. اگر یک تم پیشفرض قبلاً نصب شده است، میتوانید به سادگی روی دکمه فعالسازی کلیک کنید تا تم را تغییر دهید.

اگر یک تم پیشفرض نصب نشده دارید، میتوانید روی دکمه «افزودن جدید» در بالا کلیک کنید و یک تم پیشفرض (بیست و سه، بیست و دو و غیره) نصب کنید.
اگر به ناحیه مدیریت وردپرس دسترسی ندارید، هنوز هم میتوانید به یک تم پیشفرض تغییر دهید.
به سادگی با استفاده از یک مشتری FTP به وب سایت وردپرس خود متصل شوید و به پوشه /wp-content/ بروید.
روی راست کلیک کنید تا پوشه تمها را انتخاب کنید و آن را به عنوان پشتیبان به رایانه خود دانلود کنید.

سپس، باید پوشه تمها را از وبسایت خود حذف کنید. پس از حذف آن، میتوانید یک پوشه تم جدید ایجاد کنید.
پوشه تم جدید شما کاملاً خالی خواهد بود، به این معنی که در حال حاضر هیچ تم وردپرسی نصب نشده است.
سپس، باید به دایرکتوری تمهای وردپرس مراجعه کرده و یک تم پیشفرض وردپرس را به رایانه خود دانلود کنید.

سپس مرورگر شما تم را به صورت فایل زیپ به رایانه شما دانلود میکند.
فایل را در رایانه خود پیدا کنید و سپس آن را از حالت فشرده خارج کنید. کاربران ویندوز میتوانند با راستکلیک کردن روی فایل و سپس انتخاب «Extract All» فایل را از حالت فشرده خارج کنند. کاربران مک میتوانند برای استخراج فایل، روی فایل زیپ دوبار کلیک کنند.

اکنون یک پوشه حاوی تم وردپرس خود را مشاهده خواهید کرد.
به مشتری FTP یا File Manager خود بازگردید و این پوشه را به پوشه خالی تمها آپلود کنید.

پس از آپلود، وردپرس به طور خودکار شروع به استفاده از تم پیش فرض می کند.
اکنون می توانید از وب سایت خود بازدید کنید تا ببینید آیا این مشکل خطای سرور داخلی را برطرف کرده است.
اگر این کار نکرد، می توانید تم های وردپرس خود را از پشتیبان دوباره آپلود کنید یا به تم قبلی خود بازگردید.
نگران نباش. چند کار دیگر نیز برای رفع خطا می توانید انجام دهید.
بارگذاری مجدد فایل های هسته
اگر گزینه های افزونه و تم خطای سرور داخلی را برطرف نکرد، ارزش دارد پوشه های /wp-admin/ و /wp-includes/ را از یک نصب جدید وردپرس دوباره آپلود کنید.
این کار هیچ یک از اطلاعات شما را حذف نمی کند، اما ممکن است در صورت خرابی هر فایلی مشکل را حل کند.
ابتدا باید به وب سایت WordPress.org مراجعه کرده و روی دکمه “دانلود” کلیک کنید.

این فایل زیپ وردپرس را به رایانه شما دانلود می کند.
فایل زیپ را استخراج کنید. در داخل آن، یک پوشه وردپرس پیدا خواهید کرد.

سپس، باید با استفاده از یک مشتری FTP به وب سایت وردپرس خود متصل شوید.
پس از اتصال، به پوشه ریشه وب سایت خود بروید. این پوشه ای است که پوشه های wp-admin، wp-includes و wp-content را در داخل خود دارد.
در ستون سمت چپ، پوشه وردپرس را در رایانه خود باز کنید.
اکنون باید تمام فایل های داخل پوشه وردپرس را انتخاب کرده و آنها را به وب سایت خود آپلود کنید.

مشتری FTP شما اکنون این پوشه ها را به سرور شما منتقل می کند.
از شما سوال خواهد شد که آیا می خواهید فایل ها را بازنویسی کنید. گزینه “Overwrite” را انتخاب کنید، سپس “Always use this action” را انتخاب کنید و کادر “Apply to current queue only” را علامت بزنید.

مشتری FTP شما اکنون فایلهای قدیمی وردپرس شما را با نسخههای جدید و تازه جایگزین میکند.
اگر فایلهای وردپرس شما خراب شده بودند، این مرحله خطای سرور داخلی را برای شما برطرف میکند.
فعال کردن لاگهای دیباگ در وردپرس
وردپرس دارای یک سیستم داخلی برای نگهداری لاگها برای دیباگینگ است.
میتوانید آن را با استفاده از افزونه WP Debugging روشن کنید. برای جزئیات بیشتر، به راهنمای ما در مورد نحوه نصب یک افزونه وردپرس مراجعه کنید.
پس از فعالسازی، افزونه لاگهای دیباگ را در وبسایت وردپرس شما روشن میکند.
اگر به ناحیه مدیریت وبسایت وردپرس خود دسترسی ندارید، میتوانید با افزودن کد زیر به فایل wp-config.php خود، دیباگینگ را روشن کنید:
define( 'WP_DEBUG', true);
define( 'WP_DEBUG_LOG', true);
پس از فعال کردن لاگهای دیباگ، میتوانید با استفاده از یک مشتری FTP و پیمایش به پوشه /wp-content/ آنها را مشاهده کنید.

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