خطای داخلی سرور یا همان internal server error 500 در بین خطاهای رایج وردپرس بیشترین سهم را به خود اختصاص داده است. به صورت کلی خطاهای 5XX مربوط به سرور هستند که در صورت وجود مشکل برنامهنویسی یا مواردی که باعث تداخل در سرور میشود به وجود میآیند.
این خطا دلایل بسیار زیادی دارد و نحوه نمایش آن نیز به شکلهای مختلفی میباشد. نامگذاری مختلفی نیز روی آن صورت گرفته و با نامهایی همچون خطای داخلی سرور نیز آن را میشناسیم.
در این مقاله قصد دارم به بررسی دلایل خطای 500 در وردپرس پرداخته و پس از اینکه دانستیم مشکل در کجا ریشه دوانده است، به معرفی راهکارها و نحوه رفع ارور 500 در وردپرس میپردازم.
آموزش رفع ارور 500 در وردپرس
پیش از هر چیز باید بدانید که خطای http error 500 به دلایل گوناگونی رخ میدهد و نحوه نمایش آن نیز به شکلهای مختلف است. در بیشتر موارد این خطا بر اساس تنظیمات پیشفرض سرور مشابه تصویر زیر نمایش داده میشود.
اما حالتهای مختلفی از آن نیز وجود دارند که شامل گزینههای زیر میباشد.
- HTTP 500 Internal Server
- internal server error
- error 500
- http error 500
- و…
گذشته از این موارد، ارور 500 صرفا محدود به وردپرس نبوده و در سایر سیستمهای مدیریت محتوا مثل جوملا، دروپال و سیستمهای اختصاصی و در هر زبان برنامه نویسی دیگری مثل asp.net نیز وجود دارد. تنها تفاوت در نحوه نمایش خطا است که در همه حالتها عبارت 500 به عنوان خطا قابل مشاهده است.
بررسی فایل htaccess.
بیشترین علتی که باعث به وجود آمدن خطای 500 وردپرس میشود به دلیل خراب شدن فایل htaccess. است. قبل از هر چیزی بررسی کنید که مشکل از اینجا باشد.
برای این کار کافی است نام فایل htaccess. هاست خود را به یک نام دیگری مثل htaccess.bak. تغییر نام دهید.
برای این منظور کافی است مشابه تصویر زیر به کمک ابزار FTP نام فایل را که در پوشه public_html میباشد تغییر نام دهید.
اگر خطا برطرف شد کافی است به مسیر نمایش> پیوندهای یکتا مراجعه کرده و یک بار روی دکمه ذخیره تغییرات کلیک کنید تا فایل جدید در هاست شما ساخته شود.
اضافه کردن مقدار حافظه PHP
گاهی اوقات مشکل خطای 500 در وردپرس به هاست شما بر میگردد که به دلیل پایین بودن مقدار حافظه php رخ میدهد. برای این کار کافی است به وسیله قطعه کد زیر میزان حافظه را افزایش دهید.
برای این منظور کافی است فایل wp-config.php هاست خود را به کمک ابزار FTP باز کرده و کد زیر را درون فایل قرار دهید.
define('WP_MEMORY_LIMIT', '64M');
بررسی سطح دسترسی فایلها و پوشهها
گاهی اوقات این مشکل بعد از انتقال وردپرس به هاست دیگر رخ میدهد که به دلیل تغییر یافتن سطح دسترسی فایلها و پوشهها ایجاد میشود.
هر فایل و پوشه در هاست باید دارای سطح دسترسی خاص خواندن و نوشتن باشد که هم از نظر امنیتی مشکلی وجود نداشته باشد و هم اینکه باعث به وجود آمدن چنین خطایی نشود. سطح دسترسی در وردپرس به شکل زیر است.
- سطح دسترسی فایلها یا پوشهها: 755 یا 644
- سطح دسترسی فایل wp-config.php برابر با 400
برای تغییر سطح دسترسی کافی است به کمک ابزار FTP یا هاست خود از گزینه change permission استفاده کرده و به شکل زیر آنها را تنظیم کنید.
غیرفعال کردن تمامی افزونهها
اگر به تازگی افزونهای نصب کردید یا اینکه اقدام به نصب افزونه کردید و خطای 500 وردپرس درست بعد از انجام این کار رخ داد مشکل از سمت افزونههاست.
در صورتی که بلافاصله با فعال کردن یا آپدیت افزونه خاصی مشکل رخ دهد کار شما ساده است و کافی است که افزونه مورد نظر را غیرفعال کرده و مشکل را بررسی کنید.
اما اگر این طور نبود باید کلیه افزونهها را غیرفعال کنید. در چنین شرایطی با دو حالت روبهرو میشوید.
- در صورتی که دسترسی به پیشخوان وردپرس دارید، کافی است به منوی افزونهها مراجعه کرده و کلیه افزونههای وردپرس را غیرفعال کنید. سپس با فعال کردن هر افزونه سایت را بررسی کنید. بعد از اینکه با فعال کردن افزونه خاصی خطا مجددا رخ داد مشخص میشود که مشکل از کدام افزونه است که باید افزونه مورد نظر را بررسی کنید.
- در صورتی که دسترسی به پیشخوان وردپرس ندارید، باید از مسیر file manager هاست خود یا اینکه ابزار FTP به مسیر /public_html/wp-content/ مراجعه کنید. سپس نام پوشه plugins را به کمک گزینه rename نام دیگری مثل plugins.test تغییر نام داده و ذخیره کنید.
در این صورت کلیه افزونههای وردپرس غیرفعال خواهند شد. حال کافی است به همان روش اول یکی یکی افزونههای خود را فعال کرده و در هر بار فعال کردن افزونه خاصی بررسی کنید که خطا چه زمانی رخ میدهد تا افزونه معیوب را پیدا کنید.
شناسایی ارور 500 در وردپرس به کمک دیباگ وردپرس
در صورتی که تا اینجا موفق به شناسایی علت و رفع خطای internal server error 500 نشدید میتوانید از قابلیت دیباگ وردپرس یا همان حالت عیب یابی استفاده کنید. برای این منظور کافی است فایل wp-config.php را باز کرده و کدهای زیر را مشابه تصویر درون آن قرار دهید.
define( 'WP_DEBUG', true );
توجه داشته باشید که دیباگ وردپرس ممکن است از قبل در این فایل وجود داشته باشد اما مقدار آن false باشد که به معنی غیرفعال بودن است. اگر پیش از این وجود داشت مقدار آن را به true تغییر داده و ذخیره کنید.
آپلود مجدد وردپرس
اگر باز هم تا به اینجا موفق به رفع ارور 500 در وردپرس نشدید راهکار نهایی این است که وردپرس را یک بار دیگر دانلود کرده و به جز پوشه wp-content و فایل wp-config.php باقی فایلها و پوشهها را مجددا در وردپرس آپلود کنید.
برای این کار کافی است موارد ذکر شده را از فایل دانلودی وردپرس حذف کرده و باقی پوشهها و فایلها را در مسیر public_html هاست خود به کمک ابزار FTP یا فایل منیجر هاست آپلود کرده و جایگزین کنید.
با مدیریت هاست خود تماس بگیرید
تا به اینجا کلیه راهکارهایی که خود شما قادر به رفع آنها هستید را توضیح دادم.
اگر به وسیله این راهکارها موفق به رفع خطا نشدید راهکار نهایی این است که با مدیریت شرکت هاستینگ خود تماس گرفته و با ارسال تیکت درخواست کنید تا مشکل را برطرف نمایند.
امیدوارم که این آموزش هم مورد توجه و پسند شما قرار گرفته باشد و به کمک آن توانسته باشید اقدام به برطرف کردن خطای internal server error در وردپرس بکنید.
اگر هر سوال یا راهنمایی خاصی در خصوص این آموزش دارید میتوانید از بخش نظرات ارسال کنید تا شما را راهنمایی کنم.