شاید برای شما هم پیش آمده باشد: در حال کار بر روی وبسایت وردپرسی خود هستید، یک صفحه را رفرش میکنید و ناگهان با «صفحه سفید مرگ» یا پیام ترسناک «خطای ۵۰۰ سرور داخلی» (500 Internal Server Error) مواجه میشوید. این یکی از ناامیدکنندهترین خطاها در وردپرس است، زیرا به شما نمیگوید چه چیزی اشتباه است.
به عنوان فردی که سالهاست به عنوان کارشناس وردپرس فعالیت میکنم ، میتوانم بگویم که این خطا، اگرچه رایج است، اما تقریباً همیشه قابل حل است. خطای ۵۰۰ اساساً فریاد سرور شماست که میگوید: «یک مشکلی پیش آمده، اما نمیتوانم دقیقاً بگویم چه مشکلی!»
در این مقاله، قصد ندارم شما را با اصطلاحات فنی پیچیده بترسانم. در عوض، میخواهم یک چکلیست عیبیابی گام به گام و عملی را که خودم در طول سالها تجربه به دست آوردهام، با شما به اشتراک بگذارم تا بتوانید با آرامش این مشکل را شناسایی و برطرف کنید.
خطای ۵۰۰ سرور داخلی دقیقاً چیست؟
قبل از اینکه به سراغ راهحلها برویم، مهم است که بفهمیم این خطا از کجا میآید. برخلاف خطاهای دیگر که ممکن است خود وردپرس ایجاد کند، خطای ۵۰۰ یک کد وضعیت HTTP عمومی است.
به گفته شبکه توسعهدهندگان موزیلا (MDN)، این کد پاسخ به این معناست که «سرور با وضعیت غیرمنتظرهای مواجه شده که مانع از تکمیل درخواست آن شده است.»
در دنیای وردپرس، این «وضعیت غیرمنتظره» معمولاً به یکی از این چند مورد برمیگردد:
- تداخل در افزونهها (Plugins)
- مشکلات در قالب (Theme)
- یک فایل
.htaccessخراب - تمام شدن حافظه PHP سرور شما
وظیفه ما این است که مانند یک کارآگاه، این مظنونان را یک به یک بررسی کنیم.
مهمترین قدم: قبل از هر کاری پشتیبانگیری کنید!
من همیشه به دانشجویانم میگویم: همیشه اول پشتیبان بگیرید.
قبل از اینکه حتی یک فایل را جابجا کنید یا کدی را تغییر دهید، لطفاً از وبسایت خود یک نسخه پشتیبان کامل (فایلها و پایگاه داده) تهیه کنید. اگر به پیشخوان وردپرس دسترسی ندارید، باید این کار را از طریق کنترل پنل هاست خود (مانند cPanel یا DirectAdmin) یا با استفاده از FTP انجام دهید. این کار به شما اطمینان خاطر میدهد که اگر اوضاع بدتر شد، میتوانید به نقطه امن قبلی بازگردید.
مراحل گام به گام عیبیابی و رفع خطای ۵۰۰
ما از محتملترین و سادهترین راهحل شروع میکنیم و به سمت موارد پیچیدهتر حرکت میکنیم.
۱. فعال کردن حالت دیباگ (Debug) وردپرس
اولین کاری که یک متخصص انجام میدهد، تبدیل خطای ۵۰۰ عمومی به یک پیام خطای خاص است. وردپرس ابزاری برای این کار به نام «حالت دیباگ» دارد.
- با استفاده از FTP یا «File Manager» در هاست خود، به ریشه (root) سایت وردپرسی خود بروید.
- فایل
wp-config.phpرا پیدا کنید و آن را برای ویرایش باز کنید. - به دنبال خطی بگردید که میگوید:
/* That's all, stop editing! Happy publishing. */ - درست قبل از این خط، کدهای زیر را اضافه کنید:
// Enable WP_DEBUG mode
define( 'WP_DEBUG', true );
// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', true );
// Disable display of errors and warnings on the site
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
این کد چه کاری انجام میدهد؟ به جای نمایش خطاها به بازدیدکنندگان (که WP_DEBUG_DISPLAY', false جلوی آن را میگیرد)، تمام جزئیات خطا را در فایلی به نام debug.log در پوشه wp-content شما ذخیره میکند.
حالا سایت خود را دوباره بارگذاری کنید. سپس به پوشه wp-content بروید و فایل debug.log را باز کنید. به احتمال زیاد، آخرین خطوط این فایل دقیقاً به شما میگوید که کدام افزونه یا فایل قالب باعث خطا شده است.
۲. بررسی تداخل افزونهها (شایعترین علت)
اگر حالت دیباگ مستقیماً به یک افزونه اشاره کرد، کار ساده است. اما اگر نه، شایعترین علت خطای ۵۰۰، تداخل افزونههاست.
- از طریق FTP یا File Manager به پوشه
wp-contentبروید. - پوشهای به نام
pluginsرا پیدا کنید. - نام آن را به چیزی مانند
plugins_oldتغییر دهید.
این کار به طور همزمان تمام افزونههای شما را غیرفعال میکند.
حالا به سایت خود برگردید و صفحه را رفرش کنید. آیا خطای ۵۰۰ برطرف شد؟
- بله، برطرف شد: عالی است! مشکل از یکی از افزونهها بوده. حالا نام پوشه
plugins_oldرا بهpluginsبرگردانید. سپس وارد پیشخوان وردپرس خود شوید (که اکنون باید کار کند) و به بخش «افزونهها» بروید. افزونهها را یکی یکی فعال کنید و بعد از فعالسازی هرکدام، سایت را چک کنید. هرکدام را که فعال کردید و سایت دوباره خراب شد، همان افزونه مجرم است. آن را حذف کنید یا با یک جایگزین عوض کنید. - نه، برطرف نشد: مشکل از افزونهها نبوده است. نام پوشه را به
pluginsبرگردانید و به مرحله بعد بروید.
۳. بررسی تداخل قالب (Theme)
مظنون بعدی، قالب فعال شماست. این فرآیند شبیه به افزونههاست.
- دوباره به پوشه
wp-contentبروید و پوشهthemesرا باز کنید. - پوشه قالب فعال فعلی خود را پیدا کنید (مثلاً
my-theme). - نام آن را به
my-theme_oldتغییر دهید.
اگر یکی از قالبهای پیشفرض وردپرس (مانند twentytwentyfour) را نصب دارید، وردپرس به طور خودکار به آن برمیگردد. اگر ندارید، لطفاً قبل از این مرحله، یک قالب پیشفرض را از طریق FTP در پوشه themes آپلود کنید.
سایت را رفرش کنید. اگر خطای ۵۰۰ رفع شد، مشکل از کدهای قالب شما بوده است.
۴. بازسازی فایل .htaccess
فایل .htaccess یک فایل پیکربندی قدرتمند سرور است که وردپرس از آن برای مدیریت پیوندهای یکتا استفاده میکند. گاهی اوقات این فایل خراب میشود.
- در پوشه ریشه (root) وردپرس خود (جایی که
wp-config.phpقرار دارد)، فایل.htaccessرا پیدا کنید. (توجه: این فایل ممکن است مخفی باشد). - نام آن را به
.htaccess_oldتغییر دهید. - سایت خود را رفرش کنید.
اگر سایت بالا آمد، یعنی مشکل از این فایل بوده است. برای ساخت یک فایل .htaccess جدید و سالم:
- به پیشخوان وردپرس خود بروید.
- به بخش تنظیمات > پیوندهای یکتا (Settings > Permalinks) بروید.
- هیچ تغییری ندهید! فقط روی دکمه «ذخیره تغییرات» (Save Changes) کلیک کنید.
وردپرس به طور خودکار یک فایل .htaccess جدید برای شما ایجاد خواهد کرد.
۵. افزایش محدودیت حافظه PHP
گاهی اوقات سرور شما منابع کافی (به خصوص حافظه یا RAM) برای اجرای یک اسکریپت سنگین (مانند یک افزونه بزرگ) ندارد و با خطای ۵۰۰ مواجه میشود.
میتوانید سعی کنید حافظه اختصاص داده شده به وردپرس را افزایش دهید.
- دوباره فایل
wp-config.phpرا باز کنید. - این خط کد را (ترجیحاً نزدیک کدهای دیباگ که قبلاً اضافه کردید) اضافه کنید:
// Increase PHP Memory Limit
define( 'WP_MEMORY_LIMIT', '256M' );
این کار به وردپرس میگوید که مجاز است تا ۲۵۶ مگابایت حافظه استفاده کند. اگر هاست شما اجازه دهد، این ممکن است مشکل را حل کند.
۶. تماس با پشتیبانی هاستینگ
اگر تمام مراحل بالا را طی کردید و هنوز با خطای ۵۰۰ مواجه هستید، وقت آن است که از متخصصان کمک بگیرید.
با شرکت هاستینگ خود تماس بگیرید و به آنها بگویید: «من با خطای ۵۰۰ مواجه هستم و قبلاً تداخل افزونهها، قالب، فایل .htaccess و افزایش حافظه PHP را بررسی کردهام. لطفاً لاگهای خطای سرور (Server Error Logs) را برای من بررسی کنید.»
ارائه این اطلاعات به آنها نشان میدهد که شما مراحل اولیه را طی کردهاید و به آنها کمک میکند سریعتر مشکل اصلی را که ممکن است در سطح سرور باشد، پیدا کنند.
نتیجه گیری
خطای ۵۰۰ وردپرس بدون شک ترسناک است، اما به ندرت غیرقابل حل است. کلید حل این مشکل، حفظ آرامش و داشتن یک رویکرد mettodical و گام به گام است.
تقریباً در ۹۹ درصد موارد، این خطا ناشی از یک تداخل ساده در افزونه یا یک فایل .htaccess خراب است. با دنبال کردن این راهنما، شما ابزارهای لازم برای عیبیابی مانند یک حرفهای را در اختیار دارید.
نظرات کاربران (0)