رفع خطای داخلی سرور (خطای ۵۰۰) در وردپرس

امتیاز 5.00 ( 1 رای )

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

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

لیست کدهای وضعیت (کدهای خطای) HTTP

در اینجا به مهم‌ترین خطاها و وضعیت‌های HTTP وبسایت‌های وردپرسی اشاره خواهیم کرد.

پاسخ x 100 (پاسخ موقت)

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

این نوع پاسخ‌ها ارتباطی با خطاها ندارند و معمولاَ برای نشان دادن برقرار بودن اتصالات استفاده میشوند. آنها کدهای پاسخِ وضعیت به اتصالات هستند.

پاسخ x 200 (موفقیت‌آمیز)

این نوع پاسخ همیشه نشان دهنده موفقیت است. این بدان معنی است که یا سرور بطور موفقیت‌آمیز اتصال را برایتان برقرار کرده و منابع درخواست شده به درستی ارائه شده‌اند و یا اینکه اتصال پروکسی برقرار شده است.

کد وضعیت OK 200، شایع‌ترین کد موفق شناخته شده میباشد.

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

کد وضعیت OK 200 همیشه در اولین درخواست انجام شده دریافت میشود.

پاسخ x 300 (تغییرمسیرها)

این نوع پاسخ‌ها تغییرمسیرها را نشان میدهند. اگر لینک ارائه شده به یک صفحه ریدایرکشن (تغییر مسیر داده) هدایت شود، این کدها مشاهده میشوند.

کدهای وضعیت ۳۰۰ نشاندهنده یک تغییر مسیر موفق هستند و بعنوان خطا شناخته نمیشوند.

پاسخ x 400 (خطاهای کارخواه یا کلاینت)

این گروه از کدها نشاندهنده‌ی این هستند که خطایی در “درخواست” رخ داده که این نیز منجر به عدم پردازش درخواست توسط سرور میشود.

پاسخ ۵۰۰ x (خطاهای کارگزار یا سرور)  

این گروه از خطاها نشاندهنده این است که سرور با خطای داخلی روبرو شده و این خطاها ناشی از “درخواست” نیست بلکه از طرف سرور میباشند.

پاسخ ۵۰۳ x (سرویس در دسترس نیست)

بطور کلی این خطا نشاندهنده یک وضعیتِ موقتی است. در این نوع خطا سرور بدلیل تعمیر از دسترس خارج میشود و یا از کار می‌افتد.

پاسخ ۵۰۲ x (درگاه خراب)

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

این خطا تقریباَ همیشه در هنگام قطع اتصال PHP FPM رخ میدهد که این نیز میتواند بدلیل تنظیمات اشتباه یا توقف فرآیند باشد. این باعث میشود که وب‌سرور با یک درگاه خراب پاسخ دهد.

آسانترین روش برای رفع این خطا، بررسی دقیق PHP FPM است. این خطا بیشتر با وب‌سرور اِنجین‌اِکس رخ میدهد تا آپاچی و تقریباَ هرگز در سرویس‌های هاستینگ ارائه شده توسط سی‌پنل یاپلسک اتفاق نمی‌افتد.

در مقالات آینده در مورد روش‌های شناسایی و رفع خطاهای مربوط به هر کدام از این کدهای وضعیت صحبت خواهیم کرد.

خطای داخلی سرور (خطای ۵۰۰)

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

دلایل ایجاد خطای داخلی سرور (خطای ۵۰۰) و چگونگی رفع خطا

عوامل مختلفی میتوانند منجر به ایجاد این خطا شوند که این عومل تقریباَ همیشه به “شکست‌ها در اجرای کد” مربوط میشوند.

در این مقاله به ۳ مورد از این عوامل اشاره خواهیم کرد که میتوانند به شما در شناسایی و رفع خطای ۵۰۰ کمک کنند:

خطا ۵۰۰ هنگام انتقال سایت قدیمی‌تر به هاستینگ جدیدتر

خطا ۵۰۰ هنگام پیکربندی آپاچی در فایل htaccess

خطا هنگام اجرای کد پی‌اپ‌پی

انتقال سایت به هاست جدید

این نوع خطا با بکارگیری چندین روش‌ ایجاد میشود اما شایع‌ترین روش ایجاد کننده این نوع خطا مربوط به نسخه‌ی PHP است که به وب‌سرور‌ شما متصل است.

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

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

اگر سایتتان اخیراَ بروزرسانی نشده است، یک افزونه قدیمی نیز ممکن است این خطا را ایجاد کند.

را‌ه‌حل رفع خطای داخلی سرور (خطای ۵۰۰)

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

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

با آپلود مجدد افزونه‌ها میتوانید دریابید که کدام افزونه باعث ایجاد مشکل شده بود.

این نوع خطاها تقریباَ همیشه هنگام انتقال سایت با پی‌اچ‌پی ۵٫۶ و ۵٫۴ به هاستینگ جدید با پی‌اچ‌پی ۷٫۰ و ۷٫۱ و ۷٫۲ رخ میدهد.

در مورد قالب‌ها نیز موارد گفته شده صادق است زیرا قالب‌ها میتوانند کد اضافی پی‌اچ‌پی در فایل‌های functions.php، single.php، و page.php را اجرا کنند.

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

خطای مربوط به پیکربندی فایل htaccess  آپاچی

فرض کنید در حال پیکربندی یک افزونه هستید و ناگهان همه چیز ازکار می‌افتد.

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

از آنجایی که وب سرور آپاچی میتواند بی‌درنگ باپیکربندی توابع درفایل htaccess (که تقریباَ همیشه پنهان است) اصلاح شود، یک پیکربندی (کانفیگوریشن) بد میتواند سایتتان را متوقف سازد.

راه‌حل رفع خطای مربوط به پیکربندی فایل htaccess

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

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

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

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

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

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

خطای مربوط به اجرای کد PHP

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

بعنوان مثال، اگر یک پلاگین قدیمی که برای ۵٫۶ یا PHP 5.4 طراحی شده را با PHP 7.0 یا نسخه‌های جدیدتر راه‌اندازی کنید، این خطا رخ خواهد داد.

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

فعالسازی دیباگ وردپرس

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

در پوشه‌ی ریشه سایتتان فایل wp-config.php  را بیابید و در داخل این فایل از قسمت wp_debug میتوانید مقدار “false” را به “true” تغییر دهید.

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

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

راه‌ حل رفع خطای ۵۰۰

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

اگر خطا ناشی از قالب میباشد، بهترین راه‌حل ایجاد فایل زیپ از قالب موردنظر است که میتوانید آن را از پوشه‌ی قالب در قسمت wpcontent/themes/yourtheme بیابید و حذف کنید.

پس از رفع خطا میتوانید آن را مجدد آپلود کنید و بدون فعالسازی بروزرسانی کنید (برای افزونه‌ها هم میتوانید همین عملیات را انجام دهید).

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

نتیجه گیری

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

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

57 بازدید