خطای ۵۰۰ یا Internal Server Error یه خطای خیلی مخوفه که همیشه آدم رو مخصوصاً در وردپرس غافلگیر میکنه! اگه تا حالا تجربه روبرو شدن با این خطا رو داشتین حتماً کلی نگران شدین و خودتون رو به آب و آتیش زدین که یه راه حلی برای رفع خطای ۵۰۰ در وردپرس پیدا کنین و سایت خودتون رو به حالت آنلاین برگردونین.

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

خطای داخلی سرور یا Internal Server Error چیست؟

قبل از یاد گرفتن روش‌های رفع ارور ۵۰۰ در وردپرس بهتره یاد بگیریم اصلاً این ارور چیه!

وقتی شما وارد یه سایت میشین، مرورگر خودتون یه درخواستی رو به سرور محل نگهداری سایت ارسال میکنه. سرور هم این درخواست رو دریافت میکنه، اون رو پردازش میکنه و منابع خواسته شده (Css, HTML, PHP و غیره) رو به همراه یه هدر HTTP ارسال میکنه. این هدر شامل مواردیه که بهش میگن کد موقعیتی HTTP. این کد موقعیت یه راهیه برای این که از وضعیت درخواست خودتون آگاه بشین.

این کد میتونه کد ۲۰۰ باشه که یعنی داره به شما میگه همه چی اوکیه میتونه هم یه کد ۵۰۰ باشه که یعنی یه جای کار میلنگه!

همونطور که میدونین انواع مختلفی از ارور ۵۰۰ مثل ۵۰۱، ۵۰۲، ۵۰۳، ۵۰۴ و غیره وجود داره که هر کدومشون معنی خاصی دارن و خبر از وجود مشکل تو یه قسمت از سایت رو میدن. اما خطای ۵۰۰ نشون میده که سرور با یه شرایط غیرمنتظره‌ای روبرو شده و نمیتونه به درستی کارش رو انجام بده.

خطای 500

انواع خطای سرور داخلی

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

-“۵۰۰ Internal Server Error”

-“HTTP 500”

-“Internal Server Error”

-“HTTP 500 – Internal Server Error”

-“۵۰۰ Error”

-“HTTP Error 500”

-“۵۰۰ – Internal Server Error”

-“۵۰۰ Internal Server Error. Sorry something went wrong.”

-“۵۰۰. That’s an error. There was an error. Please try again later. That’s all we know.”

-“The website cannot display the page – HTTP 500.”

-“Is currently unable to handle this request. HTTP ERROR 500.”

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

خطای سرور داخلی

در موارد دیگه ممکنه یه صفحه سفید خالی ببینین که معمولاً این اتفاق در مرورگرهایی مثل فایرفاکس و سافاری خیلی معموله.

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

صفحه شخصی سازی شده خطا

صفحه شخصی سازی شده خطا

حتی یوتیوب قدرتمند هم از این خطا در امان نیست!

خطای 500 در یوتیوب

اگه یه سرور قوی‌تر یا ویندوز IIS 7.0 داشته باشین، یه کد HTTP اضافی برای این که نشون بده علت خطا از چیه و این خودش باعث میشه تا رفع خطای ۵۰۰ در وردپرس برای شما راحت‌تر باشه؛ این پیام‌ها به شرح زیره:

 

-500.0 – Module or ISAPI error occurred.

-500.11 – Application is shutting down on the web server.

-500.12 – Application is busy restarting on the web server.

-500.13 – Web server is too busy.

-500.15 – Direct requests for global.asax are not allowed.

-500.19 – Configuration data is invalid.

-500.21 – Module not recognized.

-500.22 – An ASP.NET httpModules configuration does not apply in Managed Pipeline mode.

-500.23 – An ASP.NET httpHandlers configuration does not apply in Managed Pipeline mode.

-500.24 – An ASP.NET impersonation configuration does not apply in Managed Pipeline mode.

-500.50 – A rewrite error occurred during RQ_BEGIN_REQUEST notification handling. A configuration or inbound rule execution error occurred.

-500.51 – A rewrite error occurred during GL_PRE_BEGIN_REQUEST notification handling. A global configuration or global rule execution error occurred.

-500.52 – A rewrite error occurred during RQ_SEND_RESPONSE notification handling. An outbound rule execution occurred.

-500.53 – A rewrite error occurred during RQ_RELEASE_REQUEST_STATE notification handling. An outbound rule execution error occurred. The rule is configured to be executed before the output user cache gets updated.

-500.100 – Internal ASP error.

تاثیر خطای ۵۰۰ بر سئو

به نظرتون چرا باید دنبال راهی برای رفع خطای ۵۰۰ در وردپرس باشیم؟ آیا این خطا تاثیری روی سئو سایت هم میذاره؟

برخلاف خطای ۵۰۳ که به گوگل میگه فعلاً سراغش نیاد ویه چند دقیقه دیگه برگرده، خطای ۵۰۰ در صورت برطرف نشدن میتونه خیلی سریع روی سئو تاثیر منفی بذاره. اگه مثلاً سایت شما فقط ۱۰ دقیقه داون باشه و خزنده بیاد سراغش خب میتونه از نسخه کش استفاده کنه و شما هم مشکلی نخواهید داشت!

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

پس برای این کار خوبه که از روش‌های رفع مشکل خطای ۵۰۰ در وردپرس باشیم.

روش‌های رفع خطای ۵۰۰ در وردپرس

وقتی خطای ۵۰۰ سرور داخلی در سایت وردپرس خودتون مشاهده میکنین، ممکنه یکم سردرگم بشین که عیب یابی رو باید از کجا شروع کنین؛ خب بذارین بهتون بگم که این خطا معمولاً از دوتا چیز سرچمشه میگیره که یکیش از سمت کاربر است و دومی از سمت سرور!

۱. بارگیری مجدد صفحه

اولین روشی که ما برای رفع خطای داخلی سرور به شما پیشنهاد میکنیم اینه که صفحه خودتون رو مجدداً بارگیری کنین CTRL+F5. این ساده‌ترین کاریه که میتونین انجام بدین. حتی میتونین یه مرورگر دیگه رو امتحان کنین که میتونه خیلی بهتون کمک کنه و سریعاً مشکل رو برطرف کنه.

یه کار دیگه هم که میتونین انجام بدین اینه که وبسایت رو در downforeveryoneorjustme.com وارد کنین و این سایت به شما میگه که آیا این یه مشکل از سمت کاربره یا وبسایت داون شده و کد موقعیتی HTTP که از سرور برگشته رو بررسی میکنه و اگه واقعاً یه مشکلی وجود داشته باشه یه علامت داون شدن برای شما ارسال میکنه.

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

۲. پاک کردن کش مرورگر

یکی از روش‌های خیلی معروف رفع خطای Internal Server Error در وردپرس اینه که کش مرورگر خودتون رو پاک کنین. برای انجام مراحل این کار میتونین مقاله‌ای که ما در این باره نوشتیم رو مطالعه کنیم.

۳. چک کردن لاگ‌های سرور

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

اگه میزبان شما ابزاری برای ورود به سیستم نداره میتونین با افزودن کد زیر به پرونده wp-config.php خودتون، حالت اشکال زدایی وردپرس رو فعال کنین.


            define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
                            

لاگ های مربوطه معمولاً در دایرکتوری wp-config.php قرار دارن.

 

بررسی لاگ ها

همچنین میتونین پرونده‌های گزارش رو در Apache و Nginx که معمولاً در اینجا قرار دارن هم بررسی کنین:

-Apache: /var/log/apache2/error.log
-Nginx: /var/log/nginx/error.log

4. بررسی اتصال به پایگاه داده

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

در زیر نمونه‌ای از پیام “error establishing a database connection” که در مرورگر شما اتفاق میفته وجود داره. کل صفحه خالیه چون اتصالی برقرار نیست و هیچ داده ای برای ارائه وجود نداره! این اتفاق نه تنها سایت شما رو در فرانت اند خراب میکنه بلکه از دسترسی شما به داشبورد ادمین وردپرس هم جلوگیری میکنه!

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

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

  • اعتبار ورود به سیستم پایگاه داده شما نادرسته، سایت وردپرس شما برای اتصال به پایگاه داده MySQL از اطلاعات ورود جداگونه‌ای استفاده میکنه.
  • پایگاه داده WordPress شما خرابه، با حذف و نصب‌های زیادی که تو قسمت‌های تم و پللاگین ها اتفاق میفته گاهی اوقات پایگاه داده خراب میشه. این اتفاق میتونه در نتیجه گم شدن یه جدول یا خراب شدن اون باشه، یا شاید هم بعضی از اطلاعات به طور تصادفی پاک شدن.
  • ممکنه در هنگام نصب وردپرس یه پرونده خراب وجود داشته باشه، این اتفاق حتی میتونه گاهی اوقات زیر سر هکرها هم باشه.
  • مشکلات مربوط به پایگاه داده میتونه به وب هاستینگ شما مربوط باشه، این مشکل معمولاً در هاست های اشتراکی خیلی رایجه چون همه کاربران دارن از یه سرور مشترک استفاده میکنن.

۵. بررسی پلاگین ها و تم ها

افزونه ها و تم های شخص ثالث به راحتی میتونن باعث ایجاد خطای ۵۰۰ سرور داخلی بشن! خیلی اوقات بلافاصله بعد از نصب یا به روز رسانی یه افزونه یا تم با این مشکل روبرو میشین. پس برای همینه که همیشه توصیه میکنیم از یه مرحله استقرار در سایت استفاده کنین.

راه حلی که برای رفع خطای Internal Server Error در وردپرس تو این مرحله وجود داره اینه اول از همه هرچی پلاگین دارین غیرفعال کنین.

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

یه راه سریع برای غیرفعال کردن اونها اینه که وارد قسمت “Plugins” بشین و همه پلاگین ها انتخاب کنین. بعد گزینه “Deactive” رو انتخاب کنین. حالا همه افزونه های شما غیرفعال شدن.

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

اگه این کار باعث رفع مشکل خطای ۵۰۰ شد یعنی همه این مشکلات زیر سر یکی از افزونه های شماست. پس یکی یکی اونها رو فعال کنین تا متوجه بشین سر کدوم یکی باز خطا برمیگرده و اون افزونه رو حذف یا جایگزین کنین.

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

کلاینت FTP

۶. نصب مجدد هسته WordPress

بعضی اوقات هم راه حل رفع خطای Internal Server Error در وردپرس اینه که هسته وردپرس رو مجدداً نصب کنین. فایل‌های اصلی وردپرس به ویژه در سایت های قدیمی میتونن خراب بشن! در واقع بارگذاری مجدد هسته وردپرس بدون این که روی افزونه ها یا تم های شما تاثیر بذاره بسیار کار راحت و سریعیه که میتونین خودتون هم از پسش بربیاین.

۷. خطا در مجوزها

یه خطای مجوز در پرونده یا فایل سرور شما میتونه باعث Internal Error Server بشه. در اینجا یه سری توصیه‌های معمولی برای مجوزهای فایل براتون آماده کردیم که با رعایت کردنشون میتونین باعث رفع خطای ۵۰۰ در وردپرس بشین:

  • کلیه پرونده‌ها باید ۶۴۴ یا ۶۴۰ (-rw-r-r-) باشن.
  • همه دایرکتوری‌ها باید ۷۵۵ یا ۷۵ (drwxr-xr-r) باشن.
  • هیچ دایرکتوری نباید ۷۷۷ باشه حتی اونهایی که بارگذاری شذن.

شما به راحتی میتونین مجوزهای پرونده خودتون رو با یه کلاینت FTP مشاهده کنین. همچنین میتونین به تیم پشتیبانی میزبان وردپرس خودتون دسترسی پیدا کنین و از اونها بخواین که به سرعت مجوزهای مربوط به پرونده GREP رو در پوشه ها و پرونده‌های بررسی کنن تا مطمئن بشن که اونها درستن تنظیم شدن.

خطای مجوزها

۸. محدودیت حافظه PHP

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

افزایش حافظه PHP در cPanel

اگه وب هاستینگ شما از cPanel استفاده میکنه، میتونین به راحتی این مقدار رو از طریق UI تغییر بدین. زیر Software روی گزینه “Select PHP Version” کلیک کنین.

cPanel

حالا روی “Switch to PHP Options” کلیک کنین.

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

سپس میتونین روی “memory-limit attribute” کلیک کنین و مقدار اون رو تغییر بدین و در آخر هم دکمه “Save” رو بزنین.رفع خطای 500 در وردپرس

افزایش حافظه PHP در Apache

پرونده htaccess. یه فایل پنهان ویژه است که شامل تنظیمات مختلفیه و میتونین برای تغییر رفتار سرور ازش استفاده کنین. ابتدا از طریق FTP یا SSH وارد سایت خودتون بشین و سپس یه نگاهی به فهرست اصلی بندازین و ببینین که آیا این فایل htaccess. در اونجا قرار داره یا نه.

 

افزایش حد php

در صورت وجود پرونده میتونین اون رو ویرایش کنین و حد لازم حافظه PHP رو تغییر بدین.

افزایش حافظه PHP در پرونده php.ini

اگه موارد بالا برای رفع خطای ۵۰۰ در وردپرس برای شما کار نمیکنه میتونین برین سراغ پرونده php.ini و اون رو ویرایش کنین. برای این کار هم باید از طریق FTP یا SSH وارد سایت خودتون بشین و سپس به دایرکتوری اصلی برین و یه فایل php.ini ایجاد یا اگه از قبل هست، اونو باز کنین.

PHP.INI

اگه پرونده قبلاً وجود داشته که فقط کافیه “three settings” رو سرچ کنین و اونها رو اصلاح کنین ولی اگه همین الان میخواین یه فایلی بسازین، یا این که همچین تنظیماتی براتون وجود نداشته، میتونین از کد زیر استفاده کنین:


            memory_limit = 128M

                            

بعضی از هاست های اشتراکی ممکنه ازرتون بخوان دستورالعمل suPHP رو در فایل htaccess. خودتون برای این که تنظیمات php.ini کار کنه وارد کنین. برای انجام این کار میتونین فایل htaccess. خودتون که در Root سایت خودتون قرار داره رو ویرایش کنین و کد زیر رو در بالای پرونده اضافه کنین:


            <IfModule mod_suphp.c> 
suPHP_ConfigPath /home/yourusername/public_html
</IfModule>
                            

اگه این مورد هم برای شما جواب نداد و نتونستین باعث رفع خطای ۵۰۰ سرور داخلی در وردپرس بشین، ممکنه میزبان شما تنظیمات رو قفل کرده و در عوض از پرونده‌های user.ini استتفاده میکنه. پس برای ویرایش این پرونده‌ها از طریق FTP یا SSH وارد سایت خودتون بشین و یه پرونده user.ini رو باز کنین و کد زیر رو در اون جایگذاری کنین:


            memory_limit = 128M
                            

افزایش حافظه PHP در wp-config.php

گزینه آخر هم که ما زیاد پیشنهاد نمیکنیم اینه که از طریق FTP یا SSH وارد سایت خودتون بشین و پرونده wp-config.php رو باز کنین (معمولاً داخل Root سایت است).

افزایش حافظه PHP

کد زیر رو به این پرونده اضافه کنین:


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

9. مشکلات مربوط به htaccess.

اگه از هاستینگی مثل Apache استفاده میکنین خوبه که بدونین برای رفع خطای ۵۰۰ در وردپرس که به دلیل خرابی پرونده htaccess. به وجود اومده، میتونین ابتدا از طریق کلاینت FTP یا SSH وارد سایت خودتون بشین و فایل رو تغییر نام بدین.

 

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

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


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


                            

10. خطاهای کدنویسی یا خطای نحوی در CGI/Perl Script

این خطای پر دردسر داستان ما میتونه بخاطر اشتباهات نحوی یا کدنویسی غلط در CGI هم اتفاق بیفته که البته یه مورد نادر ولی ممکنه!

چندتا نکته برای کار با اسکریپت‌های CGI که رعایت کردنشون یاعث رفع خطای ۵۰۰ در وردپرس میشه:

  • هنگام ویرایش حتماً از ویرایشگر متن ساده مثل Sublime یا Notpad استفاده کنین که کدها در قالب ASCII بمونن.
  • مطمئن بشین که مجوزهای صحیح از chomd 755 در اسکریپت‌ها و دایرکتوری های CGI استفاده شده.
  • اسکریپت های CGI رو در حالت ASCII در دایرکتوری cgi-bin روی سرور خودتون بارگذاری کنین.
  • تایید کنین که ماژول‌های Perl مورد نیاز اسکریپت شما نصب و پشتیبانی میشن.

خب خب اینم از رفع خطای ۵۰۰ در وردپرس با چندتا نکته خفن و جالب! حالا نوبت شماست که از ما حمایت کنین و اگه از پست خوشتون اومده اون رو به اشتراک بذارین.