خطای Internal Server Error، کابوسی نا آشنا برای صاحبان وبسایتهای مبتنی بر وردپرس نمی باشد. این پیام هشداردهنده که ناگهان ظاهر میشود، میتواند تمام زحمات و تلاشهای شما را در یک چشم به هم زدن از بین ببرد؛ اما وحشت نکنید! این خطا به معنای نابودی کامل وبسایتتان نیست. این خطا میتواند علل مختلفی از مشکلات مربوط به پلاگینها و قالبها گرفته تا کمبود حافظه سرور داشته باشد. با گامهای سادهای که در این مقاله به شما آموزش میدهیم، به راحتی میتوانید این مشکل را پشت سر بگذارید و مشکل سایت خود را برطرف کنید.
خطای Internal Server Error وردپرس چیست؟
خطای Internal Server Error در وردپرس پیغامی است که هنگام بروز مشکل غیرمنتظرهای در بخش سرور وبسایت شما ظاهر میشود. این خطا به خود وردپرس یا هسته آن ارتباطی ندارد و نشاندهندهی این است که سرور قادر به پردازش درخواست شما نیست. زمانی که کاربری قصد بازدید از صفحهای در وبسایت شما را دارد. در حالت عادی، سرور درخواست کاربر را دریافت کرده، اطلاعات لازم را از پایگاه داده استخراج میکند و در قالب یک صفحه وب زیبا به کاربر نمایش میدهد؛ اما در صورت بروز خطای Internal Server Error ، در این فرایند اختلالی ایجاد شده و سرور نمیتواند وظیفهی خود را به درستی انجام نماید. متاسفانه این پیغام خطا اطلاعات زیادی در اختیار کاربر قرار نداده و علت اصلی مشکل را مشخص نمیکند. به همین دلیل، برای رفع این خطا نیاز به کمی عیبیابی و بررسی موارد است.
دلایل بروز خطای Internal Server Error در وردپرس
دلایل متعددی میتوانند برای بروز خطای Internal Server Error در وردپرس وجود داشته باشند. در اینجا به برخی از شایعترین آنها اشاره میکنیم.
1. مشکلات مربوط به پلاگینها
· نصب افزونههای ناسازگار یا غیرقابل اعتماد: نصب افزونههایی که با وردپرس، قالب یا سایر افزونههای شما سازگار نیستند، میتواند منجر به تداخل و بروز خطا شود.
· بهروزرسانی نادرست یا ناقص افزونهها: بهروزرسانی نادرست یا ناقص افزونهها میتواند باعث ایجاد مشکلاتی در عملکرد آنها و در نهایت بروز خطای Internal Server Error شود.
· تداخل بین افزونههای مختلف: گاهی اوقات، دو یا چند افزونه که به طور جداگانه کار میکنند، ممکن است با یکدیگر تداخل داشته باشند و باعث بروز خطا شوند.
2. ناسازگاری قالبها
· استفاده از قالبهای نامعتبر یا دارای کدهای ناقص: استفاده از قالبهایی که از منابع نامعتبر دانلود شدهاند یا کدهای ناقص و معیوبی دارند، میتواند منجر به بروز خطا شود.
· بهروزرسانی نادرست یا ناقص قالب: بهروزرسانی نادرست یا ناقص قالب، مانند عدم آپلود تمام فایلهای قالب، میتواند باعث ایجاد مشکلاتی در عملکرد آن و در نهایت بروز خطای Internal Server Error شود.
· تداخل بین قالب و افزونهها: در برخی موارد، تداخل بین قالب و افزونههای نصب شده میتواند منجر به بروز خطا شود.
3. کمبود حافظه سرور
· اجرای اسکریپتهای سنگین یا پرمصرف: اجرای اسکریپتهای سنگین یا پر مصرف، به خصوص به طور همزمان، میتواند حافظه سرور را اشباع کرده و منجر به بروز خطا شود.
· میزبانی تعداد زیادی از بازدیدکنندگان به طور همزمان: اگر تعداد بازدیدکنندگان وبسایت شما به طور ناگهانی افزایش یابد، ممکن است سرور قادر به handle کردن حجم ترافیک نباشد و خطای Internal Server Error رخ دهد.
· تنظیمات PHP نادرست: تنظیمات نادرست PHP، مانند کم بودن مقدار memory_limit، میتواند باعث کمبود حافظه در هنگام اجرای اسکریپتهای PHP و در نهایت بروز خطا شود.
4. وجود کدهای مخرب
· هک شدن وبسایت و تزریق کدهای مخرب: هکرها میتوانند با نفوذ به وبسایت شما، کدهای مخربی را تزریق کنند که منجر به بروز خطاهای مختلفی از جمله Internal Server Error شود.
· نصب افزونهها یا قالبهای آلوده: نصب افزونهها یا قالبهای آلوده از منابع غیر معتبر میتواند باعث ورود کدهای مخرب به وبسایت شما و در نهایت بروز خطا شود.
· عدم بهروزرسانی وردپرس، افزونهها و قالبها: عدم بهروزرسانی منظم وردپرس، افزونهها و قالبها میتواند وبسایت شما را در برابر هک شدن و تزریق کدهای مخرب آسیبپذیر کند.
5. مشکلات مربوط به تنظیمات سرور
· پیکربندی نادرست htaccess: فایل htaccess نقش مهمی در عملکرد وردپرس دارد. پیکربندی نادرست این فایل میتواند منجر به بروز خطاهای مختلفی از جمله Internal Server Error شود.
· محدودیتهای PHP: تنظیمات نادرست PHP در سطح سرور، مانند max_execution_time، میتواند باعث محدود شدن زمان اجرای اسکریپتها و در نهایت بروز خطا شود.
· مشکلات مربوط به مجوزهای فایلها و دایرکتوریها: تنظیمات نادرست مجوزهای فایلها و دایرکتوریها در هاستینگ میتواند مانع از دسترسی وردپرس به فایلهای مورد نیازش شده و منجر به بروز خطا شود.
6. سایر علل
· نقص در هاستینگ: در برخی موارد، ممکن است مشکل از هاستینگ شما باشد و به دلیل نقص فنی در سرور، خطای Internal Server Error رخ دهد.
· قطعی اینترنت: قطعی اینترنت یا مشکلات مربوط به اتصال به شبکه میتواند مانع از برقراری ارتباط بین کاربر و سرور شده و منجر به بروز خطا شود.
7 راهحل برای رفع خطای Internal Server Error
1. بررسی فایل.htaccess
وقتی با خطای سرور مواجه میشوید، اولین موردی که باید بررسی کنید، فایل htaccess است. این فایل در ریشه اصلی سایت شما در cPanel قرار دارد. به طور پیشفرض، این پوشه در public_html می باشد. در برخی از هاستها، این فایل شاید به صورت مخفی (hidden) باشد و برای ویرایش آن، ابتدا باید این فایل را از حالت مخفی خارج کنید.
آموزش ساخت فایل htaccess پیشفرض وردپرس
برای آشکار کردن فایل در صورتی که از هاست cPanel استفاده میکنید، میتوانید از صفحه مدیریت فایل File Manager در cPanel استفاده نمایید. در این صفحه، روی گزینه تنظیمات Settings در منوی بالای صفحه کلیک کرده سپس در پنجره باز شده، تیک گزینه نمایش فایلهای مخفی Show Hidden Files را فعال نموده و روی دکمه ذخیره یا Save کلیک کنید.
با انجام این کار، فایل.htaccess قابل مشاهده خواهد شد. سپس میتوانید نام فایل را تغییر داده و به عنوان مثال، میتوانید نام فایل را به htaccess old تغییر دهید.
بعد از تغییر نام فایل، سایت خود را بررسی کنید. اگر خطای Internal Server Error 500 رخ داد، این خطا از سمت فایل.htaccess بوده است. در این صورت، برای ایجاد مجدد فایل.htaccess صحیح، به بخش تنظیمات وردپرس رفته و در قسمت پیوندهای یکتا، بدون تغییر هرگونه پیوندی، آنها را مجددا ذخیره نمایید. با ذخیره کردن، یک فایل.htaccess با قوانین صحیح بازنویسی ایجاد می شود و از خطای 404 احتمالی جلوگیری خواهد کرد.
2. غیر فعال کردن افزونه ها
برای غیرفعال کردن تمامی افزونهها در وردپرس، میتوانید از روش زیر استفاده کنید:
· دسترسی به پوشه wp-content: از طریق FTP یا cPanel به پوشه wp-content در ریشه وب سایت خود دسترسی پیدا کنید.
· تغییر نام پوشه: plugins در پوشه wp-content، پوشهای به نام plugins را پیدا کنید و نام آن را به چیزی مانند plugins.deactivate تغییر دهید. با این کار تمامی افزونههای وردپرس غیرفعال میشوند.
· بررسی خطای سرور: پس از تغییر نام پوشه plugins، صفحه وبسایت خود را بارگذاری کنید و ببینید آیا خطای internal server error برطرف شده است یا خیر. اگر خطا برطرف شد، به احتمال زیاد یکی از افزونههای شما مشکل ایجاد میکرد.
· فعالسازی افزونهها به ترتیب: برای تشخیص افزونهی مشکلزا، پوشه plugins را به نام اصلی خود بازگردانید. سپس از طریق پیشخوان وردپرس، به بخش افزونهها بروید. افزونهها به ترتیب نمایش داده میشوند. شما باید آنها را یکی یکی فعال کنید و هر بار صفحه را بارگذاری کنید تا ببینید آیا خطا دوباره ظاهر میشود یا نه. اگر خطا ظاهر شد، افزونه مشکلزا را شناسایی کردهاید.
· حذف افزونه مشکلزا: پس از شناسایی افزونهی مشکلزا، میتوانید از طریق FTP یا cPanel وارد پوشه plugins شده و پوشه مربوط به افزونه مشکلزا را حذف کنید. این کار باعث غیرفعال شدن افزونه و برطرف شدن خطای سرور میشود.
3. غیر فعال کردن قالبها
در وردپرس، قالبها نقش بسیار مهمی در ظاهر و عملکرد وبسایت دارند؛ اما گاهی اوقات ممکن است با مشکلاتی در قالب مواجه شویم که باعث نیاز به غیرفعال کردن قالب فعلی و استفاده از یک قالب جدید میشود. در ادامه به بررسی راهحلهایی برای غیرفعال کردن قالب در وردپرس خواهیم پرداخت.
۱. از طریق منوی پیشخوان
اگر به منوی پیشخوان وردپرس دسترسی دارید، میتوانید به بخش پوستهها بروید و یک قالب جدید را فعال کنید. این روش بسیار ساده و قابل اجرا است و شما میتوانید نتیجه را بهصورت زنده مشاهده نمایید.
۲. از طریق هاست و ویرایش دیتابیس
در صورتی که به پیشخوان وردپرس دسترسی ندارید، میتوانید تغییر قالب را بهصورت دستی و از طریق هاست انجام دهید. برای این کار، نیاز به ویرایش دیتابیس وردپرس خود دارید. ابتدا باید به phpMyAdmin در بخش Databases هاست خود وارد شوید.
پس از ورود به دیتابیس سایت وردپرس خود، بخش wp_options را پیدا کنید.
در این بخش، دنبال عبارتهایی مانند template و stylesheet باشید. نام قالب فعلی در این بخش قرار دارد. با دوبار کلیک یا کلیک بر روی گزینه Edit، نام قالب را میتوانید ویرایش کنید.
نام پوشه قالب جدید را به جای پوشه قالب فعلی کپی نمایید. برای این کار، وارد مدیریت فایلهای هاست خود شوید و به پوشه wp-content/themes بروید. در این بخش، تمامی پوشههای قالب را مشاهده خواهید کرد. نام پوشه جدید را کپی کرده و در بخشهای template و stylesheet در دیتابیس وارد کنید.
4. تصحیح دسترسی به فایل ها و پوشهها
در برخی مواقع، خطای internal server error در وردپرس به علت دسترسی نادرست به فایلها و پوشهها رخ میدهد. در اینجا توضیح میدهیم که چگونه با تنظیم سطح دسترسی صحیح، میتوانید این مشکل را حل کنید.
ابتدا باید اطمینان داشته باشید که سطح دسترسی پوشهها و فایلهای شما درست تنظیم شده است. برای این کار، سطح دسترسی تمامی پوشهها باید برابر با 755 و سطح دسترسی فایلها باید برابر با 644 تنظیم شده باشد؛ اما برای افزایش امنیت، میتوانید فایل wp-config.php را بر روی 400 یا 440 تنظیم نمایید. در هر صورت، توصیه میشود هیچ یک از فایلها را روی 777 تنظیم نکنید.
در صورتی که سطح دسترسی فایلها و پوشهها به درستی تنظیم نشده باشد، ممکن است خطای internal server error به دلیل این مشکل ایجاد شود. برای رفع مشکل، میتوانید فایل یا پوشه مورد نظر را انتخاب نمایید و
گزینه permissions یا change permissions را انتخاب کنید
با انتخاب گزینه permissions، یک پنجره باز خواهد شد که با فعال یا غیرفعال کردن تیکهای موجود، میتوانید سطح دسترسی فایل را تغییر دهید.
در صورتی که باز هم با خطای internal server error مواجه هستید و مشکل شما حل نشده است، نگران نباشید، هنوز راهحلهای دیگری وجود دارد.
5. افزایش حافظه
برای افزایش حافظه محدودیت PHP در سرور خود، میتوانید مراحل زیر را دنبال کنید:
1. ابتدا فایل php.ini را در هاست خود پیدا نمایید. اگر این فایل وجود ندارد، میتوانید یک فایل جدید با نام php.ini ایجاد کنید.
2. فایل php.ini باز نمایید و به دنبال مقداری با نام memory_limit باشید. این مقدار نشان دهنده حداکثر حافظه قابل استفاده برای PHP است.
3. مقدار memory_limit به مقدار مورد نظر تغییر دهید. به عنوان مثال، شما میتوانید آن را به 512 تغییر دهید.
4. پس از تغییرات، فایل php.ini را ذخیره کنید.
5. اگر فایل php.ini را در مرحله اول در مسیر صحیح قرار دادهاید، تغییرات باید اعمال شود و حافظه محدودیت PHP افزایش یابد.
اگر نتوانستید فایل php.ini را پیدا کنید یا دسترسی لازم برای تغییر آن را ندارید، میتوانید از روش زیر استفاده کنید:
1. فایل wp-config.php باز نمایید که در پوشه wp-admin قرار دارد.
2. بعد از خطوط ابتدایی فایل، کد زیر را وارد کنید:
define('WP_MEMORY_LIMIT', '512M');
این کد حافظه PHP را روی 512 مگابایت تنظیم میکند.
3. فایل wp-config.php را ذخیره نمایید.
اگر هر دو روش را امتحان کردید و نتیجهای حاصل نشد، ممکن است شما دسترسی لازم برای ایجاد تغییرات را در هاست خود نداشته باشید. در این صورت، بهتر است با شرکت میزبانی تماس گرفته و از آنها درخواست افزایش حافظه PHP را کنید. با انجام این مراحل، باید بتوانید محدودیت حافظه PHP را افزایش دهید و از خطای Internal Server Error جلوگیری نمایید.
6. بارگذاری مجدد هسته وردپرس
با توجه به متن ارائه شده، در صورتی که خطای Internal Server Error با انجام مراحل قبلی رفع نشده باشد، میتوانید فایلهای اصلی وردپرس را مجددا بارگذاری کنید. این روش میتواند در صورتی که یکی از فایلهای اصلی وردپرس خراب یا از دسترس خارج شده باشد، به شما کمک کند. در اینجا چند مرحله برای بارگذاری مجدد هسته وردپرس آمده است:
1. ابتدا نسخه پشتیبان از سایت خود را تهیه کنید. این کار بسیار مهم است تا در صورت بروز مشکلات جدید، به نسخه قبلی سایت بازگردید.
2. سپس به سایت رسمی وردپرس (WordPress.org) مراجعه کرده و آخرین نسخه از وردپرس را دانلود کنید.
3. فایل فشرده را باز کرده و وارد پوشه آن شوید.
4. پوشه wp-content را حذف کنید. این کار باعث میشود تا فایلهای قدیمی مانند پوستهها و افزونهها حفظ شوند و فقط هسته وردپرس بهروزرسانی شود.
5. سپس تمامی فایلها و پوشههای داخل پوشه آخرین نسخه وردپرس را به هاست وبسایت خود بارگذاری کنید. در این مرحله، فایلهای جدید جایگزین فایلهای قدیمی شده و هسته وردپرس بهروز میشود.
6. پس از اتمام بارگذاری، ممکن است نیاز باشد تا فایل wp-config.php را مطابق با تنظیمات خود بهروزرسانی کنید. بررسی کنید که تنظیمات دیتابیس و سایر تنظیمات مرتبط درست باشند.
با انجام این مراحل، احتمالا خطای Internal Server Error رفع خواهد شد. در صورتی که با این روش همچنان با این خطا مواجه هستید، بهتر است با شرکت میزبانی خود تماس بگیرید تا آنها بررسی کنند که مشکل از سمت سرور آنها است یا خیر.
پیشگیری از بروز مجدد خطای Internal Server Error در وردپرس
همانطور که گفتیم، خطای Internal Server Error در وردپرس میتواند دلایل مختلفی داشته باشد. با این حال، با انجام برخی اقدامات پیشگیرانه میتوانید احتمال بروز این خطا را به طور قابل توجهی کاهش دهید. در اینجا به برخی از مهمترین نکات برای پیشگیری از بروز مجدد این خطا اشاره میکنیم:
1. بهروزرسانی منظم وردپرس، افزونهها و قالبها: همواره از جدیدترین نسخه وردپرس، افزونهها و قالبها استفاده نمایید. بهروزرسانیها معمولا شامل رفع اشکالات امنیتی و بهبود عملکرد هستند که میتوانند از بروز خطاهای مختلفی از جمله Internal Server Error جلوگیری کنند.
2. نصب افزونهها و قالبها از منابع معتبر: افزونهها و قالبها را فقط از مخزن رسمی وردپرس (WordPress.org) یا منابع معتبر دیگر دانلود و نصب کنید. نصب افزونهها و قالبها از منابع نامعتبر میتواند وبسایت شما را در معرض خطر هک شدن و تزریق کدهای مخرب قرار دهد.
3. استفاده از افزونههای ضروری: فقط افزونههایی را نصب کنید که واقعا به آنها نیاز دارید. نصب تعداد زیاد افزونهها میتواند بار سرور را افزایش داده و منجر به بروز خطا شود.
4. بررسی سازگاری افزونهها و قالبها: قبل از نصب افزونه یا قالب جدید، بررسی کنید که، قالب فعلی و سایر افزونههای نصب شده با وردپرس سازگار باشد.
5. بهینهسازی عملکرد وبسایت: از روشهای مختلفی مانند فشردهسازی تصاویر، استفاده از کش و بهینهسازی پایگاه داده برای افزایش سرعت وبسایت خود استفاده کنید. این کار میتواند به کاهش بار سرور و جلوگیری از بروز خطا کمک نماید.
6. تهیه نسخه پشتیبان منظم: به طور منظم از وبسایت خود بکاپ تهیه کنید تا در صورت بروز هرگونه مشکل، بتوانید به سرعت آن را به حالت قبل بازگردانید.
7. انتخاب هاستینگ مناسب: از یک هاستینگ معتبر و باکیفیت استفاده کنید که منابع کافی برای اجرای وبسایت شما را داشته باشد.
نتیجهگیری
در نتیجه، رفع خطای Internal Server Error در وردپرس نیازمند اقداماتی است که شامل بررسی و ویرایش فایل.htaccess، غیرفعال کردن افزونهها، بازسازی پوشهها و فایلهای وردپرس، افزایش حافظه سرور و بهبود پایگاه داده میشود. این اقدامات میتوانند به رفع خطای مذکور کمک کنند. همچنین در صورت عدم توانایی در رفع مشکل، توصیه میشود با تیم پشتیبانی میزبانی یا توسعه وردپرس تماس بگیرید تا کمک و راهنمایی لازم را دریافت نمایید.
سوالات متداول
خطای Internal Server Error چه معنایی دارد؟
خطای Internal Server Error به معنای وجود یک خطای داخلی در سرور است که باعث عدم توانایی سرور در پاسخگویی به درخواست کاربر میشود.
چه عواملی میتوانند باعث بروز خطای Internal Server Error در وردپرس شوند؟
علت بروز خطای Internal Server Error ممکن است به عوامل مختلفی برگردد از جمله خطاهای در برنامهنویسی، تداخل افزونهها، مشکلات در پوشهها و فایلها، محدودیتهای حافظه سرور و مشکلات در پایگاه داده.
چه راهکارهایی میتواند برای رفع خطای Internal Server Error در وردپرس وجود داشته باشد؟
برخی از راهکارهای ممکن برای رفع خطای Internal Server Error در وردپرس عبارتاند از: بررسی و ویرایش فایل.htaccess، غیرفعال کردن افزونهها، بازسازی پوشهها و فایلهای وردپرس، افزایش حافظه سرور و بررسی و بهبود پایگاه داده.
چگونه میتوانیم فایل.htaccess را بررسی و ویرایش کنیم؟
فایل.htaccess در ریشه وبسایت قرار دارد. برای بررسی و ویرایش آن، میتوانید از FTP یا پنل مدیریتی سیستم میزبانی خود استفاده کنید. با استفاده از این ابزارها، به ریشه وب سایت بروید و فایل.htaccess را پیدا کرده و با استفاده از یک ویرایشگر متنی، محتوای آن را بررسی و ویرایش نمایید.
چگونه میتوانیم پوشهها و فایلهای وردپرس را بازسازی کنیم؟
برای بازسازی پوشهها و فایلهای وردپرس، ابتدا یک نسخه پشتیبان از وبسایت خود تهیه کنید. سپس پوشههای وردپرس را به جایگاه اصلی بارگذاری کنید و فایلهای موجود را جایگزین نمایید. برای این کار شاید بهتر باشد از یک نسخه اصلی وردپرس استفاده کرده و از طریق FTP یا پنل مدیریتی سیستم میزبانی خود، فایلها را آپلود کنید.
چگونه میتوانیم حافظه سرور را افزایش دهیم؟
برای افزایش حافظه سرور، باید با مدیر سیستم یا سرویس دهنده میزبانی تماس بگیرید و درخواست افزایش حافظه را به آنها ارسال کنید. هر سیستم میزبانی ممکن است روشها و مراحل خاص خود را برای افزایش حافظه سرور داشته باشد؛ بنابراین بهتر است با آنها تماس بگیرید و دستورالعملهای مربوطه را دنبال نمایید.
چگونه میتوانیم پایگاه داده وردپرس را بررسی و بهبود دهیم؟
برای بررسی و بهبود پایگاه داده وردپرس، میتوانید از افزونههای مربوطه استفاده کنید. افزونههایی مانند WP-Optimize یا Advanced Database Cleaner میتوانند به شما کمک نمایند. این افزونهها قابلیتهایی مانند حذف دادههای اضافی، بهینه سازی جداول و بازسازی ایندکسهای پایگاه داده را دارا هستند. با نصب و فعالسازی یکی از این افزونهها، میتوانید پایگاه داده را بررسی و بهبود دهید.