۹۵/۱۰/۲۴، ۰۶:۰۶ عصر
سلام دوستان
حتما تا به حال در حال مرور وب با اخطار HTTP 500 یعنی خطای داخلی سرور مواجه شدین! ولی وقتی این اتفاق برای سایت وردپرسی شما بیوفته چطوری باید مشکل رو برطرف کرد؟ و اصلا دلیلش چیه ؟ در این پست این موارد رو براتون توضیح میدم.
چرا خطای داخلی سرور در وردپرس اتفاق میافتد؟
خطای داخلی سرور فقط مختص وردپرس نیست و با هرچیزی که بر روی سرور اجرا میشه، ممکنه رخ بده. اما در وردپرس معمولا به خاطر افزونهها و توابع پوسته بوجود میاد یا با فایل خراب htaccess و محدودیت حافظه php. بعضی مواقع با خطای وردپرس internal server error فقط موقع دسترسی به پنل مدیریتی مواجه میشین در حالی که بقیه سایت به خوبی داره کار میکنه. در ادامه راه حلها رو با هم مرور میکنیم.
علت اول: جستجو برای فایل htaccess. خراب
اولین مشکلی که برای برطرف کردن خطای داخلی سرور یا وردپرس internal server error باید بررسی کنید یک فایل htaccess خراب است. که اینکار را میتوانید با تغییر نام این فایل انجام دهید. برای این کار با یک نرم افزار مدیریت FTP مثل filezilla وارد سایت شوید و در پوشهای که فایل های wp-content و wp-admin و wp-includes قرار دارد فایل htaccess را به نامی دیگر مثل htacces_old تغییر دهید. با این تغییر نام سرور دیگر به این فایل خراب، دسترسی ندارد چرا که از روی نام آنرا مییابد و در صورتی که سایت شما بعد از تغییر نام درست کار کرد مشکل از این فایل بوده و فقط برای ساخت دوباره این فایل به تنظیمات و سپس پیوندهای یکتا رفته و دکمه ذخیره را بزنید با این کار فایل htaccess دوباره تولید میشود.
علت دوم: افزایش حافظه PHP
وردپرس internal server error ممکن است به خاطر عبور از محدودیتی که برای حافظه در php در نظر گرفته شده است رخ دهد که برای رفع این مشکل فایل wp-config.php در شاخه اصلی وردپرس را ویراش کنید و خط پایین را تگ php اصلی اضافه کنید:
اگر که فقط هنگام دسترسی به پنل مدیریتی با پیام وردپرس internal server error مواجه میشوید راه دیگری وجود دارد که یک فایل متنی با نام php.ini تولید کنید و در آن بنویسید : memory=64MB و فایل را ذخیره و در پوشه wp-admin با استفاده از FTP ذخیره کنید.
خوب ممکن است که با این کار خطای وردپرس internal server error دیگر نمایش داده نشود اما مشکل هنوز برطرف نشده است! مشکل از یک افزونه یا تابع پوسته که ضعیف کدنویسی شده است ممکن است رخ دهد که باید این پلاگین را پیدا و مشکل را برطرف کنید. این کار با دیدن log های هاست صورت میگیرد که برای دسترسی به این گزارش ها با ارائه دهنده هاست تماس بگیرید و مشکل را مطرح سازید.
علت سوم : غیرفعال سازی همه افزونهها
اگر که هیچ یک از راهکارهای قبلی مشکل را برطرف نکرد این مشکل ممکن است به خاطر افزونه خاصی رخ داده باشد یا چند افزونه که در کنار هم ایجاد مشکل کردهاند. خوب اول تمام پلاگین ها را باید غیر فعال کنید اما این کار باید بدون ورود به پنل مدیریتی صورت گیرد برای این کار دو راه داریم یکی اینکه از طریق FTP پوشه plugins را در پوشه wp-content تغییر نام دهید که افزونه ها از دسترس وردپرس خارج شود این کار را که انجام دهید، تمام افزونهها غیر فعال خواهد شد. خوب دیگر نمیتوانید وارد پنل مدیریتی شوید با تغییر نام دوباره از نام جدید به plugins افزونه ها را برای وردپرس قابل دسترس کنید اما این بار افزونه ها همه غیر فعال اند خوب حالا یکی یکی افزونه ها را فعال کنید تا بفهمید که مشکل از کدام افزونه است.
راه دیگر غیر فعال سازی همه افزونه ها استفاده از phpMyAdmin است اگر نمیدانید که چگونه به phpMyAdmin دسترسی داشته باشید از شیوه FTP استفاده کنید. در پایگاه داده وردپرس به جدول wp_options رفته و نام تنظیمات active_plugins را بیابید و مقدارش را به a:0:{} تغییر دهید.
اگر که مشکل حل شد متوجه خواهید شد که یکی از افزونه ها باعث وقوع خطای وردپرس internal server error شده است اما اگر هنوز هم مشکل دارید فایل های اصلی وردپرس را از یه فایل تازه نصب دوباره بر روی هاست آپلود کنید این کار هیچ کدام از اطلاعات شما را حذف نخواهد کرد ولی اگر یکی از فایل ها خراب شده باشد مشکل را برطرف خواهد کرد.
حتما تا به حال در حال مرور وب با اخطار HTTP 500 یعنی خطای داخلی سرور مواجه شدین! ولی وقتی این اتفاق برای سایت وردپرسی شما بیوفته چطوری باید مشکل رو برطرف کرد؟ و اصلا دلیلش چیه ؟ در این پست این موارد رو براتون توضیح میدم.
چرا خطای داخلی سرور در وردپرس اتفاق میافتد؟
خطای داخلی سرور فقط مختص وردپرس نیست و با هرچیزی که بر روی سرور اجرا میشه، ممکنه رخ بده. اما در وردپرس معمولا به خاطر افزونهها و توابع پوسته بوجود میاد یا با فایل خراب htaccess و محدودیت حافظه php. بعضی مواقع با خطای وردپرس internal server error فقط موقع دسترسی به پنل مدیریتی مواجه میشین در حالی که بقیه سایت به خوبی داره کار میکنه. در ادامه راه حلها رو با هم مرور میکنیم.
علت اول: جستجو برای فایل htaccess. خراب
اولین مشکلی که برای برطرف کردن خطای داخلی سرور یا وردپرس internal server error باید بررسی کنید یک فایل htaccess خراب است. که اینکار را میتوانید با تغییر نام این فایل انجام دهید. برای این کار با یک نرم افزار مدیریت FTP مثل filezilla وارد سایت شوید و در پوشهای که فایل های wp-content و wp-admin و wp-includes قرار دارد فایل htaccess را به نامی دیگر مثل htacces_old تغییر دهید. با این تغییر نام سرور دیگر به این فایل خراب، دسترسی ندارد چرا که از روی نام آنرا مییابد و در صورتی که سایت شما بعد از تغییر نام درست کار کرد مشکل از این فایل بوده و فقط برای ساخت دوباره این فایل به تنظیمات و سپس پیوندهای یکتا رفته و دکمه ذخیره را بزنید با این کار فایل htaccess دوباره تولید میشود.
علت دوم: افزایش حافظه PHP
وردپرس internal server error ممکن است به خاطر عبور از محدودیتی که برای حافظه در php در نظر گرفته شده است رخ دهد که برای رفع این مشکل فایل wp-config.php در شاخه اصلی وردپرس را ویراش کنید و خط پایین را تگ php اصلی اضافه کنید:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
اگر که فقط هنگام دسترسی به پنل مدیریتی با پیام وردپرس internal server error مواجه میشوید راه دیگری وجود دارد که یک فایل متنی با نام php.ini تولید کنید و در آن بنویسید : memory=64MB و فایل را ذخیره و در پوشه wp-admin با استفاده از FTP ذخیره کنید.
خوب ممکن است که با این کار خطای وردپرس internal server error دیگر نمایش داده نشود اما مشکل هنوز برطرف نشده است! مشکل از یک افزونه یا تابع پوسته که ضعیف کدنویسی شده است ممکن است رخ دهد که باید این پلاگین را پیدا و مشکل را برطرف کنید. این کار با دیدن log های هاست صورت میگیرد که برای دسترسی به این گزارش ها با ارائه دهنده هاست تماس بگیرید و مشکل را مطرح سازید.
علت سوم : غیرفعال سازی همه افزونهها
اگر که هیچ یک از راهکارهای قبلی مشکل را برطرف نکرد این مشکل ممکن است به خاطر افزونه خاصی رخ داده باشد یا چند افزونه که در کنار هم ایجاد مشکل کردهاند. خوب اول تمام پلاگین ها را باید غیر فعال کنید اما این کار باید بدون ورود به پنل مدیریتی صورت گیرد برای این کار دو راه داریم یکی اینکه از طریق FTP پوشه plugins را در پوشه wp-content تغییر نام دهید که افزونه ها از دسترس وردپرس خارج شود این کار را که انجام دهید، تمام افزونهها غیر فعال خواهد شد. خوب دیگر نمیتوانید وارد پنل مدیریتی شوید با تغییر نام دوباره از نام جدید به plugins افزونه ها را برای وردپرس قابل دسترس کنید اما این بار افزونه ها همه غیر فعال اند خوب حالا یکی یکی افزونه ها را فعال کنید تا بفهمید که مشکل از کدام افزونه است.
راه دیگر غیر فعال سازی همه افزونه ها استفاده از phpMyAdmin است اگر نمیدانید که چگونه به phpMyAdmin دسترسی داشته باشید از شیوه FTP استفاده کنید. در پایگاه داده وردپرس به جدول wp_options رفته و نام تنظیمات active_plugins را بیابید و مقدارش را به a:0:{} تغییر دهید.
اگر که مشکل حل شد متوجه خواهید شد که یکی از افزونه ها باعث وقوع خطای وردپرس internal server error شده است اما اگر هنوز هم مشکل دارید فایل های اصلی وردپرس را از یه فایل تازه نصب دوباره بر روی هاست آپلود کنید این کار هیچ کدام از اطلاعات شما را حذف نخواهد کرد ولی اگر یکی از فایل ها خراب شده باشد مشکل را برطرف خواهد کرد.