خطای 500 یا Internal Server Error یه خطای خیلی مخوفه که همیشه آدم رو مخصوصاً در وردپرس غافلگیر میکنه! اگه تا حالا تجربه روبرو شدن با این خطا رو داشتین حتماً کلی نگران شدین و خودتون رو به آب و آتیش زدین که یه راه حلی برای رفع خطای 500 در وردپرس پیدا کنین و سایت خودتون رو به حالت آنلاین برگردونین.
درسته که وقتی با همچین خطاهایی مواجه میشین کلی از بازدید کنندگان و مشتریان خودتون رو از دست میدین، اما دیگه زمان نگرانی و استرس به سر رسیده چون قراره امروز بهترین و راحتترین روشهای رفع این خطا رو به شما یاد بدیم.
خطای داخلی سرور یا Internal Server Error چیست؟
قبل از یاد گرفتن روشهای رفع ارور 500 در وردپرس بهتره یاد بگیریم اصلاً این ارور چیه!
وقتی شما وارد یه سایت میشین، مرورگر خودتون یه درخواستی رو به سرور محل نگهداری سایت ارسال میکنه. سرور هم این درخواست رو دریافت میکنه، اون رو پردازش میکنه و منابع خواسته شده (Css, HTML, PHP و غیره) رو به همراه یه هدر HTTP ارسال میکنه. این هدر شامل مواردیه که بهش میگن کد موقعیتی HTTP. این کد موقعیت یه راهیه برای این که از وضعیت درخواست خودتون آگاه بشین.
این کد میتونه کد 200 باشه که یعنی داره به شما میگه همه چی اوکیه میتونه هم یه کد 500 باشه که یعنی یه جای کار میلنگه!
همونطور که میدونین انواع مختلفی از ارور 500 مثل 501، 502، 503، 504 و غیره وجود داره که هر کدومشون معنی خاصی دارن و خبر از وجود مشکل تو یه قسمت از سایت رو میدن. اما خطای 500 نشون میده که سرور با یه شرایط غیرمنتظرهای روبرو شده و نمیتونه به درستی کارش رو انجام بده.
انواع خطای سرور داخلی
با توجه به سرورهای مختلف وب، سیستم عاملها و مرورگرها، یه خطای 500 سرور داخلی میتونه خودش رو به چندتا روش مختلف نشون بده. اما یادتون باشه که همه اونها دارن از یه مشکل خبر میدن پس معنی پیامشون و روشهای رفع خطای 500 در وردپرس همه اونها باهم مشابهه.
-“500 Internal Server Error”
-“HTTP 500”
-“Internal Server Error”
-“HTTP 500 – Internal Server Error”
-“500 Error”
-“HTTP Error 500”
-“500 – Internal Server Error”
-“500 Internal Server Error. Sorry something went wrong.”
-“500. 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.”
همچنین ممکنه با خطایی مثل خطای زیر هم روربرو بشین:
در موارد دیگه ممکنه یه صفحه سفید خالی ببینین که معمولاً این اتفاق در مرورگرهایی مثل فایرفاکس و سافاری خیلی معموله.
حتی شما میتونین این پیام رو برای سایت خودتون شخصی سازی کنین، خیلی از برندهای بزرگ این کار رو انجام دادن و صفحات جالبی برای این ارور ساختن، به مثالهای زیر نگاه کنین:
حتی یوتیوب قدرتمند هم از این خطا در امان نیست!
اگه یه سرور قویتر یا ویندوز IIS 7.0 داشته باشین، یه کد HTTP اضافی برای این که نشون بده علت خطا از چیه و این خودش باعث میشه تا رفع خطای 500 در وردپرس برای شما راحتتر باشه؛ این پیامها به شرح زیره:
-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.
تاثیر خطای 500 بر سئو
به نظرتون چرا باید دنبال راهی برای رفع خطای 500 در وردپرس باشیم؟ آیا این خطا تاثیری روی سئو سایت هم میذاره؟
برخلاف خطای 503 که به گوگل میگه فعلاً سراغش نیاد ویه چند دقیقه دیگه برگرده، خطای 500 در صورت برطرف نشدن میتونه خیلی سریع روی سئو تاثیر منفی بذاره. اگه مثلاً سایت شما فقط 10 دقیقه داون باشه و خزنده بیاد سراغش خب میتونه از نسخه کش استفاده کنه و شما هم مشکلی نخواهید داشت!
ولی اگه سایت شما برای چند ساعت داون بمونه چی؟!! به نظرتون اون موقع هم همه چی به همین راحتی حل و فصل میشه؟! معلومه که نه! این اتفاق میتونه خیلی راحت روی رتبه بندی شما تاثیر منفی بذاره پس علاوه بر از دست دادن کاربر و مشتری، رتبه گوگل و سئو سایت شما هم افت پیدا میکنه و واقعاً یه ضرر حسابی بهتون وارد میکنه.
پس برای این کار خوبه که از روشهای رفع مشکل خطای 500 در وردپرس باشیم.
روشهای رفع خطای 500 در وردپرس
وقتی خطای 500 سرور داخلی در سایت وردپرس خودتون مشاهده میکنین، ممکنه یکم سردرگم بشین که عیب یابی رو باید از کجا شروع کنین؛ خب بذارین بهتون بگم که این خطا معمولاً از دوتا چیز سرچمشه میگیره که یکیش از سمت کاربر است و دومی از سمت سرور!
1. بارگیری مجدد صفحه
اولین روشی که ما برای رفع خطای داخلی سرور به شما پیشنهاد میکنیم اینه که صفحه خودتون رو مجدداً بارگیری کنین CTRL+F5. این سادهترین کاریه که میتونین انجام بدین. حتی میتونین یه مرورگر دیگه رو امتحان کنین که میتونه خیلی بهتون کمک کنه و سریعاً مشکل رو برطرف کنه.
یه کار دیگه هم که میتونین انجام بدین اینه که وبسایت رو در downforeveryoneorjustme.com وارد کنین و این سایت به شما میگه که آیا این یه مشکل از سمت کاربره یا وبسایت داون شده و کد موقعیتی HTTP که از سرور برگشته رو بررسی میکنه و اگه واقعاً یه مشکلی وجود داشته باشه یه علامت داون شدن برای شما ارسال میکنه.
البته ما متوجه شدیم که گاهی اوقات این خطا میتونه بلافاصله بعد از به روز رسانی یه افزونه یا تم سایت وردپرسی شما هم رخ بده. اما به طور معمول این دلیل مربوط به هاست هایی میشه که به درستی تنظیم نشدن و معمولاً هم خیلی سریع برطرف میشن و فقط کافیه صفحه رو رفرش کنین.
2. پاک کردن کش مرورگر
یکی از روشهای خیلی معروف رفع خطای Internal Server Error در وردپرس اینه که کش مرورگر خودتون رو پاک کنین. برای انجام مراحل این کار میتونین مقالهای که ما در این باره نوشتیم رو مطالعه کنیم.
3. چک کردن لاگهای سرور
سومین راه حل برای رفع ارور 500 در وردپرس اینه از سوابق خطای سایت خودتون استفاده کنین. این کار به شما کمک میکنه تا خیلی سریع مشکل و دلیل اون رو متوجه بشین.
اگه میزبان شما ابزاری برای ورود به سیستم نداره میتونین با افزودن کد زیر به پرونده 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. بررسی اتصال به پایگاه داده
ارور 500 ممکنه به خاطر خطای اتصال به پایگاه داده هم اتفاق بیفته. بسته به مرورگر شما ممکنه خطاهای مختلفی رو ببینین. اما هر دو بدون توجه به گزارشهای سرور شما، کد وضعیت HTTP 500 رو تولید میکنن.
در زیر نمونهای از پیام “error establishing a database connection” که در مرورگر شما اتفاق میفته وجود داره. کل صفحه خالیه چون اتصالی برقرار نیست و هیچ داده ای برای ارائه وجود نداره! این اتفاق نه تنها سایت شما رو در فرانت اند خراب میکنه بلکه از دسترسی شما به داشبورد ادمین وردپرس هم جلوگیری میکنه!
به نظرتون چرا همچین اتفاقی میفته؟ ما به چندتا از دلایل رایج اون تو موارد زیر اشاره میکنیم و اینطوری شما هم با دونستن این موارد میتونین خیلی بهتر از پس رفع خطای 500 در وردپرس بر بیاین:
- اعتبار ورود به سیستم پایگاه داده شما نادرسته، سایت وردپرس شما برای اتصال به پایگاه داده MySQL از اطلاعات ورود جداگونهای استفاده میکنه.
- پایگاه داده WordPress شما خرابه، با حذف و نصبهای زیادی که تو قسمتهای تم و پللاگین ها اتفاق میفته گاهی اوقات پایگاه داده خراب میشه. این اتفاق میتونه در نتیجه گم شدن یه جدول یا خراب شدن اون باشه، یا شاید هم بعضی از اطلاعات به طور تصادفی پاک شدن.
- ممکنه در هنگام نصب وردپرس یه پرونده خراب وجود داشته باشه، این اتفاق حتی میتونه گاهی اوقات زیر سر هکرها هم باشه.
- مشکلات مربوط به پایگاه داده میتونه به وب هاستینگ شما مربوط باشه، این مشکل معمولاً در هاست های اشتراکی خیلی رایجه چون همه کاربران دارن از یه سرور مشترک استفاده میکنن.
5. بررسی پلاگین ها و تم ها
افزونه ها و تم های شخص ثالث به راحتی میتونن باعث ایجاد خطای 500 سرور داخلی بشن! خیلی اوقات بلافاصله بعد از نصب یا به روز رسانی یه افزونه یا تم با این مشکل روبرو میشین. پس برای همینه که همیشه توصیه میکنیم از یه مرحله استقرار در سایت استفاده کنین.
راه حلی که برای رفع خطای Internal Server Error در وردپرس تو این مرحله وجود داره اینه اول از همه هرچی پلاگین دارین غیرفعال کنین.
یه راه سریع برای غیرفعال کردن اونها اینه که وارد قسمت “Plugins” بشین و همه پلاگین ها انتخاب کنین. بعد گزینه “Deactive” رو انتخاب کنین. حالا همه افزونه های شما غیرفعال شدن.
اگه این کار باعث رفع مشکل خطای 500 شد یعنی همه این مشکلات زیر سر یکی از افزونه های شماست. پس یکی یکی اونها رو فعال کنین تا متوجه بشین سر کدوم یکی باز خطا برمیگرده و اون افزونه رو حذف یا جایگزین کنین.
اگه نمیتونین وارد پنل خودتون بشین میتونین از کلاینت FTP استفاده کنین.
6. نصب مجدد هسته WordPress
بعضی اوقات هم راه حل رفع خطای Internal Server Error در وردپرس اینه که هسته وردپرس رو مجدداً نصب کنین. فایلهای اصلی وردپرس به ویژه در سایت های قدیمی میتونن خراب بشن! در واقع بارگذاری مجدد هسته وردپرس بدون این که روی افزونه ها یا تم های شما تاثیر بذاره بسیار کار راحت و سریعیه که میتونین خودتون هم از پسش بربیاین.
7. خطا در مجوزها
یه خطای مجوز در پرونده یا فایل سرور شما میتونه باعث Internal Error Server بشه. در اینجا یه سری توصیههای معمولی برای مجوزهای فایل براتون آماده کردیم که با رعایت کردنشون میتونین باعث رفع خطای 500 در وردپرس بشین:
- کلیه پروندهها باید 644 یا 640 (-rw-r-r-) باشن.
- همه دایرکتوریها باید 755 یا 75 (drwxr-xr-r) باشن.
- هیچ دایرکتوری نباید 777 باشه حتی اونهایی که بارگذاری شذن.
شما به راحتی میتونین مجوزهای پرونده خودتون رو با یه کلاینت FTP مشاهده کنین. همچنین میتونین به تیم پشتیبانی میزبان وردپرس خودتون دسترسی پیدا کنین و از اونها بخواین که به سرعت مجوزهای مربوط به پرونده GREP رو در پوشه ها و پروندههای بررسی کنن تا مطمئن بشن که اونها درستن تنظیم شدن.
8. محدودیت حافظه PHP
خطای 500 سرور داخلی میتونه با کمبود حد حافظه PHP روی سرور شما ایجاد بشه. البته شما میتونین حد مجاز این حافظه رو افزایش بدین. من یه سری دستور العمل براتون آوردم که بهتره ازشون برای انجام این کار کمک بگیرین.
افزایش حافظه PHP در cPanel
اگه وب هاستینگ شما از cPanel استفاده میکنه، میتونین به راحتی این مقدار رو از طریق UI تغییر بدین. زیر Software روی گزینه “Select PHP Version” کلیک کنین.
حالا روی “Switch to PHP Options” کلیک کنین.
سپس میتونین روی “memory-limit attribute” کلیک کنین و مقدار اون رو تغییر بدین و در آخر هم دکمه “Save” رو بزنین.
افزایش حافظه PHP در Apache
پرونده htaccess. یه فایل پنهان ویژه است که شامل تنظیمات مختلفیه و میتونین برای تغییر رفتار سرور ازش استفاده کنین. ابتدا از طریق FTP یا SSH وارد سایت خودتون بشین و سپس یه نگاهی به فهرست اصلی بندازین و ببینین که آیا این فایل htaccess. در اونجا قرار داره یا نه.
در صورت وجود پرونده میتونین اون رو ویرایش کنین و حد لازم حافظه PHP رو تغییر بدین.
افزایش حافظه PHP در پرونده php.ini
اگه موارد بالا برای رفع خطای 500 در وردپرس برای شما کار نمیکنه میتونین برین سراغ پرونده php.ini و اون رو ویرایش کنین. برای این کار هم باید از طریق FTP یا SSH وارد سایت خودتون بشین و سپس به دایرکتوری اصلی برین و یه فایل php.ini ایجاد یا اگه از قبل هست، اونو باز کنین.
اگه پرونده قبلاً وجود داشته که فقط کافیه “three settings” رو سرچ کنین و اونها رو اصلاح کنین ولی اگه همین الان میخواین یه فایلی بسازین، یا این که همچین تنظیماتی براتون وجود نداشته، میتونین از کد زیر استفاده کنین:
memory_limit = 128M
بعضی از هاست های اشتراکی ممکنه ازرتون بخوان دستورالعمل suPHP رو در فایل htaccess. خودتون برای این که تنظیمات php.ini کار کنه وارد کنین. برای انجام این کار میتونین فایل htaccess. خودتون که در Root سایت خودتون قرار داره رو ویرایش کنین و کد زیر رو در بالای پرونده اضافه کنین:
suPHP_ConfigPath /home/yourusername/public_html
اگه این مورد هم برای شما جواب نداد و نتونستین باعث رفع خطای 500 سرور داخلی در وردپرس بشین، ممکنه میزبان شما تنظیمات رو قفل کرده و در عوض از پروندههای user.ini استتفاده میکنه. پس برای ویرایش این پروندهها از طریق FTP یا SSH وارد سایت خودتون بشین و یه پرونده user.ini رو باز کنین و کد زیر رو در اون جایگذاری کنین:
memory_limit = 128M
افزایش حافظه PHP در wp-config.php
گزینه آخر هم که ما زیاد پیشنهاد نمیکنیم اینه که از طریق FTP یا SSH وارد سایت خودتون بشین و پرونده wp-config.php رو باز کنین (معمولاً داخل Root سایت است).
کد زیر رو به این پرونده اضافه کنین:
define('WP_MEMORY_LIMIT', '128M');
9. مشکلات مربوط به htaccess.
اگه از هاستینگی مثل Apache استفاده میکنین خوبه که بدونین برای رفع خطای 500 در وردپرس که به دلیل خرابی پرونده htaccess. به وجود اومده، میتونین ابتدا از طریق کلاینت FTP یا SSH وارد سایت خودتون بشین و فایل رو تغییر نام بدین.
به طور معمول برای باز آفرینی این فایل میتونین مجدداً پیوند یکتا خودتون رو در وردپرس ذخیره کنین. با این اگه شما در خطای 500 سرور داخلی گیر افتادین، به احتمال زیاد نمیتونین به پنل ادمین خودتون دسترسی داشته باشین پس یه فایل جدید htaccess. ایجاد کنین و کد زیر رو وارد کنین و سپس پرونده رو در سرور خودتون بارگذاری کنین:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
10. خطاهای کدنویسی یا خطای نحوی در CGI/Perl Script
این خطای پر دردسر داستان ما میتونه بخاطر اشتباهات نحوی یا کدنویسی غلط در CGI هم اتفاق بیفته که البته یه مورد نادر ولی ممکنه!
چندتا نکته برای کار با اسکریپتهای CGI که رعایت کردنشون یاعث رفع خطای 500 در وردپرس میشه:
- هنگام ویرایش حتماً از ویرایشگر متن ساده مثل Sublime یا Notpad استفاده کنین که کدها در قالب ASCII بمونن.
- مطمئن بشین که مجوزهای صحیح از chomd 755 در اسکریپتها و دایرکتوری های CGI استفاده شده.
- اسکریپت های CGI رو در حالت ASCII در دایرکتوری cgi-bin روی سرور خودتون بارگذاری کنین.
- تایید کنین که ماژولهای Perl مورد نیاز اسکریپت شما نصب و پشتیبانی میشن.
خب خب اینم از رفع خطای 500 در وردپرس با چندتا نکته خفن و جالب! حالا نوبت شماست که از ما حمایت کنین و اگه از پست خوشتون اومده اون رو به اشتراک بذارین.