آموزش رفع خطای 500 Internal Server Error در وردپرس

مسیح دیندار
مدیریت
عضو شده: 2021-04-12 14:23:35
2021-05-01 18:37:36

خطای 500 Internal Server Error یکی از رایج ترین ارورهایی هست که در وردپرس ممکنه اتفاق بیفته. خطای 500 مربوط به سرور هست و زمانی اتفاق میفته که یکی از کدها به شدت وضعش خرابه و PHP توانایی اینکه باقی سایت رو اجرا کنه و یا از اون خطا چشم پوشی کنه رو نداره که به همین دلیل خطای سرور رخ میده.

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

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

 

1 - فایل htaccess

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

در حالت پیش فرض محتویات این فایل باید به این صورت باشه:

# BEGIN WordPress

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

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

2 - افزایش رم مصرفی وردپرس

اگه هاستینگ شما، پلن هاستی که به شما ارائه کرده رو مناسب وردپرس کانفیگ نکرده باشه، ممکنه وردپرس نتونه رم مورد نیازش رو از سرور بگیره بنابراین موقع اجرای توابع سنگین افزونه یا قالبتون با کمبود رم مواجه بشه. در چنین حالتی PHP ممکنه به شما متن خطای Fatal error: Allowed memory size of رو نشون بده اما گاهی اوقات اگه توابع زیاد از حد سنگین باشن دیگه حتی کار به نمایش این ارور هم نمیرسه و مستقیما سرورتون کم میاره و خطای 500 رو صادر میکنه. برای افزایش رم این کد رو داخل فایل wp-config.php قرار بدید:

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

3 - غیرفعال کردن همه افزونه ها

برای اینکه بفهمید مشکل از افزونه ها هستش یا چیزای دیگه، بهتره یکبار کل افزونه ها رو غیرفعال کنید. اگه به پیشخوان دسترسی دارید که وارد پیشخوان بشید و کل افزونه ها یا افزونه های جدیدی که نصب کردید رو غیرفعال کنید. اگه به پیشخوان هم دسترسی ندارید از طریق فایل منیجر هاستتون، پوشه wp-plugins رو به wp-plugins0 تغییرنام بدید. سایت رو چک کنید اگه درست شده بود که مشکل این خطا منشاء افزونه های شماست و بعد از فعال شدن پیشخوان وارد بخش افزونه ها بشید، پوشه افزونه ها رو داخل فایل منیجر به حالت قبل برگردونید و یکی یکی افزونه ها رو فعال کنید تا زمانی که با خطا مواجه بشید اینطوری می تونید افزونه خرابکار رو پیدا کنید.

4 - غیرفعال کردن قالب

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

5 - بازگردانی فایل های هسته وردپرس

گاهی وقتا یه افزونه یا قالب با کدهایی که داره ممکنه خواسته یا ناخواسته فایل های هسته وردپرس رو دستکاری کرده باشه و دستکاری کدهای وردپرس اگه غیراصولی انجام شده باشه که منجر به این خطا میشه. وارد سایت wordpress.org بشید، آخرین نسخه رو دانلود کنید، فایل فشرده رو داخل کامپیوترتون از حالت فشرده خارج کنید. فایل wp-config.php و پوشه wp-content رو از این پوشه حذف کنید. فایل های باقی مونده رو مجددا با فرمت ZIP فشرده کنید و توی فایل منیجر توی روت اسکریپت آپلود کنید. فایل رو از حالت فشرده خارج کنید و اجازه بدید فایل ها جایگزین بشن. حالا سایت رو چک کنید که مشکل حل شده یا خیر

6 - با هاستینگ تماس بگیرید

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