دیدن خطای 500 Internal Server Error روی سایت میتواند حسابی استرسزا باشد، بهخصوص اگر ندانید مشکل از کجاست. این خطا از رایجترین و البته پیچیدهترین مشکلاتی است که کاربران وردپرس با آن مواجه میشوند. مشکل اصلی اینجاست که هیچ سرنخی از دلیل خطا به شما نمیدهد؛ مثل یک مهمان ناخوانده که معلوم نیست چرا آمده و قصد رفتن هم ندارد.
اما نگران نباشید! در این راهنما قدمبهقدم شما را راهنمایی میکنیم تا این مشکل را برطرف کنید و سایتتان دوباره مثل روز اول کار کند.
در این مقاله چه چیزی یاد میگیرید؟
- خطای 500 Internal Server Error چیست؟
- چرا این خطا در وردپرس رخ میدهد؟
- راهکارهای رفع خطا:
- پاک کردن کش وردپرس و مرورگر
- بررسی و رفع مشکل فایل خراب .htaccess
- افزایش محدودیت حافظه PHP
- غیرفعال کردن افزونههای وردپرس
- تغییر قالب به یکی از قالبهای پیشفرض وردپرس
- آپلود دوباره فایلهای اصلی وردپرس
- فعالسازی گزارش خطا (Debug) در وردپرس
- درخواست کمک از شرکت میزبان سایت
خطای 500 Internal Server Error چیست؟
این خطا یکی از خطاهای عمومی سرورها است که فقط به وردپرس محدود نمیشود و در هر سایتی ممکن است رخ دهد. عدد 500 در این خطا یک کد استاندارد HTTP است و این معنا را دارد:
«سرور با مشکلی غیرمنتظره روبهرو شده و نمیتواند درخواست شما را پردازش کند.»
این پیام معمولا کلی و گنگ است و هیچ جزئیاتی درباره دلیل اصلی خطا ارائه نمیدهد. ظاهر این خطا بسته به نوع سرور (مثلا Apache یا Nginx) و مرورگری که استفاده میکنید متفاوت است. برای مثال:
- اگر سرور شما Apache باشد، ممکن است پیامی شبیه به این ببینید:
- اما اگر از سرور Nginx استفاده کنید، ممکن است صفحهای با طراحی متفاوت نمایش داده شود.
برای کاربران تازهکار، این خطا میتواند بسیار گیجکننده باشد چون عملا هیچ اطلاعاتی برای شروع رفع مشکل به شما نمیدهد.
چرا این خطا در وردپرس رخ میدهد؟
در وردپرس، خطای 500 معمولا به یکی از دلایل زیر اتفاق میافتد:
- فایل خراب .htaccess
- افزونههای با کدنویسی ضعیف
- مشکلات مربوط به قالب فعلی وردپرس
اما ممکن است دلایل دیگری هم داشته باشد، مثل:
- محدودیت حافظه PHP
- فایلهای خراب در هسته وردپرس
گاهی هم این خطا فقط در صفحه مدیریت (wp-admin) ظاهر میشود، در حالی که بقیه سایت بدون مشکل کار میکند.
چطور این خطا را رفع کنیم؟
اولین قدم این است که از سایت خود نسخه پشتیبان بگیرید. این کار باعث میشود حتی اگر در روند رفع مشکل چیزی اشتباه شد، بتوانید سایت را به حالت قبل برگردانید و خطای 500 Internal Server Error را برطرف کنید.
چطور نسخه پشتیبان بگیریم؟
- اگر به داشبورد وردپرس دسترسی دارید، از افزونههایی مثل Duplicator استفاده کنید. این افزونه به شما امکان میدهد نسخه پشتیبان را ذخیره کنید و در صورت نیاز بهراحتی آن را بازیابی کنید.
- اگر دسترسی به داشبورد ندارید، باید از طریق phpMyAdmin و یک کلاینت FTP به صورت دستی نسخه پشتیبان تهیه کنید.
حالا که نسخه پشتیبان دارید، کش وردپرس و مرورگر خود را پاک کنید. گاهی کش مرورگر یا افزونههای کش وردپرس، نسخه اشتباهی از یک صفحه خطا را ذخیره میکنند و باعث میشوند همچنان خطا را ببینید. برای رفع این مشکل:
- ابتدا کش مرورگر خود را پاک کنید.
- اگر به داشبورد وردپرس دسترسی دارید، به تنظیمات افزونه کش بروید و کش وردپرس را خالی کنید.
بررسی و رفع مشکل فایل خراب .htaccess
فایل .htaccess یکی از فایلهای پیکربندی مهم سرور است که در وردپرس برای مدیریت ریدایرکتها استفاده میشود. خراب شدن این فایل، یکی از دلایل شایع خطای 500 است. خوشبختانه، رفع این مشکل چندان پیچیده نیست و میتوانید به کمک مراحل زیر آن را برطرف کنید.
روش اول: بهروزرسانی خودکار فایل .htaccess از پیشخوان وردپرس
- وارد پیشخوان وردپرس شوید.
- به بخش تنظیمات > پیوندهای یکتا بروید.
- بدون تغییر تنظیمات، روی گزینه ذخیره تغییرات کلیک کنید.
با این کار، وردپرس تلاش میکند فایل .htaccess را بهروزرسانی کند یا یک فایل جدید ایجاد کند. حالا وبسایت خود را بررسی کنید تا ببینید مشکل برطرف شده است یا نه.
روش دوم: جایگزینی دستی فایل .htaccess
اگر روش قبلی جواب نداد، ممکن است وردپرس به دلیل محدودیتهای دسترسی نتواند فایل .htaccess را ایجاد یا تغییر دهد. در این حالت، میتوانید این فایل را به صورت دستی جایگزین کنید.
- اتصال به سرور سایت: از ابزار FTP (مثل FileZilla) یا File Manager در کنترل پنل هاست خود استفاده کنید.
- پیدا کردن فایل .htaccess: فایل .htaccess در پوشه اصلی وردپرس قرار دارد. این پوشه همان جایی است که پوشههای wp-content، wp-admin و wp-includes قرار دارند.
- تغییر نام فایل موجود: روی فایل .htaccess راستکلیک کنید و گزینه Rename را انتخاب کنید. نام آن را به .htaccess_old تغییر دهید. این کار باعث میشود فایل اصلی به عنوان نسخه پشتیبان حفظ شود، اما دیگر توسط وردپرس شناسایی نشود.
- ایجاد فایل جدید: در همان پوشه، راستکلیک کنید و گزینه Create New File را انتخاب کنید. نام فایل را .htaccess بگذارید و ذخیره کنید.
- افزودن کدهای پیشفرض وردپرس
- روی فایل جدید راستکلیک کنید و گزینه Edit را انتخاب کنید.
- فایل خالی باز میشود. کدهای زیر را کپی کرده و در آن قرار دهید:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
- ذخیره تغییرات: فایل را ذخیره کرده و در هاست آپلود کنید.
- بررسی سایت: وبسایت خود را مجددا بررسی کنید تا مطمئن شوید مشکل خطای 500 برطرف شده است. اگر مشکل حل شد، میتوانید به خودتان تبریک بگویید!
- بهروزرسانی پیوندهای یکتا: حتما بعد از انجام این مراحل، دوباره به بخش تنظیمات > پیوندهای یکتا بروید و بدون اعمال هیچ تغییری، روی گزینه ذخیره تغییرات کلیک کنید. این کار باعث میشود وردپرس فایل .htaccess را با تنظیمات صحیح بازنویسی کند و از بروز مشکلات احتمالی مثل خطای 404 در صفحات نوشتهها جلوگیری شود.
اگر با انجام این مراحل هنوز خطای 500 وجود داشت، احتمالاً مشکل از بخش دیگری مثل افزونهها، قالب یا محدودیت حافظه PHP است. در ادامه مقاله، روشهای دیگر بررسی و رفع این مشکلات توضیح داده شده است.
افزایش محدودیت حافظه PHP
گاهی اوقات خطای 500 به دلیل تمام شدن محدودیت حافظه PHP در هنگام اجرای یک اسکریپت رخ میدهد. برای رفع این مشکل، میتوانید محدودیت حافظه PHP را افزایش دهید. این روش نسبتا ساده است، اما اگر تازهکار هستید، با دقت عمل کنید، چون حتی اشتباهات کوچک در فایلهای اصلی وردپرس ممکن است سایت شما را دچار مشکل کند.
افزایش حافظه از طریق فایل wp-config.php
- اتصال به هاست سایت: با استفاده از یک کلاینت FTP (مثل FileZilla) یا ابزار File Manager در کنترل پنل هاست خود، به وبسایتتان متصل شوید.
- پیدا کردن فایل wp-config.php: فایل wp-config.php را در پوشه اصلی وبسایتتان (جایی که پوشههای wp-content، wp-admin و wp-includes قرار دارند) پیدا کنید.
- ایجاد نسخه پشتیبان: روی فایل راستکلیک کرده و گزینه Download را انتخاب کنید تا یک نسخه پشتیبان از آن داشته باشید. این کار در صورتی که مشکلی پیش بیاید، به شما کمک میکند فایل اصلی را بازیابی کنید.
- ویرایش فایل wp-config.php: پس از دانلود، روی فایل راستکلیک کرده و گزینه View/Edit را انتخاب کنید.
- افزودن کد افزایش حافظه: در فایل wp-config.php، کد زیر را درست بالای خط ‘That’s all, stop editing! Happy publishing’ قرار دهید:
- define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
- ذخیره و آپلود فایل: تغییرات را ذخیره کرده و فایل را دوباره در هاست خود آپلود کنید.
- بررسی سایت: حالا وبسایت خود را بررسی کنید تا ببینید مشکل برطرف شده است یا نه.
نکته: اگر با حجم 256M مشکل حل نشد، میتوانید حجم آن را به 512M افزایش دهید.
افزایش حافظه فقط برای بخش مدیریت وردپرس
اگر خطای 500 فقط هنگام ورود به پیشخوان وردپرس یا بارگذاری تصاویر در wp-admin رخ میدهد، مراحل زیر را دنبال کنید:
- یک فایل متنی خالی روی کامپیوتر خود ایجاد کرده و نام آن را php.ini بگذارید.
- کد زیر را در فایل کپی کنید:
memory=256MB
- فایل را ذخیره کرده و با استفاده از FTP در پوشه /wp-admin/ آپلود کنید.
اگر افزایش محدودیت حافظه مشکل را حل کرد، به این معنی است که حافظه PHP به دلیل یک مشکل دیگر تمام شده است. این مشکل اغلب به دلیل افزونهای با کدنویسی ضعیف یا یک تابع در قالب رخ میدهد.
برای تشخیص دقیق علت، از شرکت هاست خود بخواهید لاگهای سرور را بررسی کند. این لاگها اطلاعاتی در مورد خطاهای مربوط به حافظه ارائه میدهند و میتوانند به شناسایی مشکل برای رفع خطای 500 کمک کنند.
غیرفعال کردن تمام افزونههای وردپرس
اگر افزایش محدودیت حافظه مشکل را حل نکرد، احتمالاً خطای 500 به دلیل یک افزونه خاص یا ناسازگاری بین افزونهها ایجاد شده است. برای بررسی این موضوع، میتوانید تمام افزونههای وردپرس را غیرفعال کنید.
روش اول: غیرفعال کردن افزونهها از پیشخوان وردپرس
- وارد پیشخوان وردپرس شوید.
- به بخش افزونهها بروید.
- همه افزونهها را انتخاب کرده و گزینه غیرفعال کردن را بزنید.
روش دوم: غیرفعال کردن افزونهها با استفاده از FTP
اگر به پیشخوان وردپرس دسترسی ندارید، مراحل زیر را انجام دهید:
- اتصال به سایت از طریق FTP: با استفاده از یک کلاینت FTP به هاست سایت خود متصل شوید.
- پیدا کردن پوشه افزونهها: به مسیر /wp-content/ بروید و پوشه plugins را پیدا کنید.
- تغییر نام پوشه plugins: روی پوشه plugins راستکلیک کرده و گزینه Rename را انتخاب کنید. نام آن را به plugins.deactivated تغییر دهید. با این کار، وردپرس دیگر نمیتواند افزونهها را شناسایی کند و تمام افزونهها به صورت خودکار غیرفعال میشوند.
- بررسی سایت: وبسایت خود را بررسی کنید تا ببینید آیا خطای 500 برطرف شده است یا نه.
- بازگرداندن افزونهها: اگر مشکل برطرف شد، پوشه plugins.deactivated را دوباره به plugins تغییر نام دهید. سپس، از پیشخوان وردپرس، افزونهها را یکییکی فعال کنید تا افزونه مشکلساز را پیدا کنید.
تغییر قالب به یک قالب پیشفرض وردپرس
یکی دیگر از دلایل احتمالی خطای سرور داخلی ممکن است مربوط به کدی باشد که در قالب فعلی وردپرس شما وجود دارد. برای بررسی این موضوع، میتوانید قالب وبسایت خود را به یکی از قالبهای پیشفرض وردپرس تغییر دهید.
تغییر قالب از پیشخوان وردپرس
- وارد پیشخوان شوید: به بخش نمایش » پوستهها بروید.
- فعال کردن قالب پیشفرض: اگر قبلا یک قالب پیشفرض (مانند Twenty Twenty-Three یا Twenty Twenty-Two) نصب کردهاید، کافی است روی دکمه فعال کردن کلیک کنید تا قالب تغییر کند.
- نصب قالب پیشفرض (در صورت نیاز): اگر قالب پیشفرض نصب نشده است به شکل زیر عمل کنید:
- روی دکمه افزودن جدید در بالای صفحه کلیک کنید.
- یکی از قالبهای پیشفرض را انتخاب و نصب کنید.
تغییر قالب از طریق FTP (بدون دسترسی به پیشخوان)
- اتصال به وبسایت با FTP: با استفاده از یک کلاینت FTP یا ابزار File Manager در کنترل پنل هاست، به سایت خود متصل شوید.
- پشتیبانگیری از پوشه قالبها: به مسیر /wp-content/ بروید. روی پوشه themes راستکلیک کرده و آن را روی کامپیوتر خود دانلود کنید تا یک نسخه پشتیبان داشته باشید.
- حذف پوشه themes از سرور: پس از پشتیبانگیری، پوشه themes را از وبسایت خود حذف کنید.
- ایجاد یک پوشه جدید: یک پوشه خالی به نام themes در مسیر /wp-content/ ایجاد کنید.
- دانلود قالب پیشفرض: به دایرکتوری قالبهای وردپرس مراجعه کرده و یکی از قالبهای پیشفرض را دانلود کنید (مثلا Twenty Twenty-Three). فایل قالب بهصورت یک فایل زیپ روی کامپیوتر شما دانلود میشود.
- استخراج فایل قالب: فایل زیپ دانلود شده را باز کنید:
- در ویندوز: روی فایل راستکلیک کرده و گزینه Extract All را انتخاب کنید.
- در مک: دوبار روی فایل کلیک کنید تا استخراج شود.
- آپلود قالب به پوشه themes: به ابزار FTP خود برگردید و پوشه استخراجشده قالب را به پوشه themes آپلود کنید.
- بررسی سایت: حالا وبسایت خود را بررسی کنید تا ببینید آیا خطای سرور داخلی برطرف شده است یا نه.
نکته: اگر خطای 500 حل نشد، میتوانید پوشه پشتیبان themes را دوباره آپلود کرده یا به قالب قبلی خود بازگردید.
آپلود مجدد فایلهای اصلی وردپرس
اگر تغییر قالب و غیرفعال کردن افزونهها مشکل را حل نکرد، ممکن است خرابی برخی فایلهای وردپرس علت خطای 500 باشد. در این حالت، آپلود مجدد فایلهای اصلی میتواند کمک کند. این روش هیچکدام از اطلاعات شما (مانند محتوا یا تنظیمات) را حذف نمیکند، اما فایلهای خراب را با نسخههای سالم جایگزین میکند.
مراحل آپلود مجدد فایلهای اصلی وردپرس
- دانلود نسخه جدید وردپرس: به وبسایت WordPress.org بروید و روی دکمه دانلود کلیک کنید. فایل وردپرس بهصورت یک فایل زیپ روی کامپیوتر شما دانلود میشود.
- استخراج فایل زیپ:
فایل زیپ را باز کنید:
- در ویندوز: راستکلیک کرده و Extract All را انتخاب کنید.
- در مک: دوبار روی فایل کلیک کنید.
داخل این فایل، پوشهای به نام wordpress وجود دارد.
- اتصال به وبسایت با FTP: با استفاده از یک کلاینت FTP به وبسایت خود متصل شوید.
- رفتن به مسیر اصلی وردپرس: در هاست خود، به مسیر اصلی وردپرس بروید (جایی که پوشههای wp-admin، wp-includes و wp-content قرار دارند).
- آپلود فایلهای جدید: در سمت چپ (در ابزار FTP)، پوشه wordpress را باز کنید. تمام فایلها و پوشههای داخل آن (بهجز wp-content) را انتخاب کرده و در هاست خود آپلود کنید.
- جایگزینی فایلها: هنگام آپلود، کلاینت FTP از شما میپرسد که آیا میخواهید فایلهای قبلی را بازنویسی کنید.
- گزینه Overwrite را انتخاب کنید.
- گزینه Always use this action را فعال کنید.
- تیک گزینه Apply to current queue only را بزنید.
- بررسی سایت: پس از اتمام آپلود، وبسایت خود را بررسی کنید تا ببینید آیا خطای 500 برطرف شده است یا نه. اگر فایلهای اصلی وردپرس خراب شده بودند، این روش مشکل شما را برطرف میکند. در غیر این صورت، هنوز چند راهحل دیگر وجود دارد که میتوانید امتحان کنید.
فعالسازی گزارش های عیبیابی در وردپرس
وردپرس یک سیستم داخلی برای ثبت لاگهای اشکالزدایی دارد که میتوانید آن را فعال کنید و از آن برای پیدا کردن مشکلات استفاده کنید.
روش اول: استفاده از افزونه WP Debugging
- نصب افزونه: افزونه WP Debugging را نصب و فعال کنید.
- فعالسازی لاگها: پس از فعال شدن افزونه، لاگهای اشکالزدایی بهصورت خودکار در وبسایت شما فعال خواهند شد.
روش دوم: فعالسازی لاگ از طریق فایل wp-config.php
اگر به پیشخوان وردپرس دسترسی ندارید، میتوانید به صورت دستی این قابلیت را از طریق ویرایش فایل wp-config.php فعال کنید:
- با استفاده از FTP یا ابزار File Manager به سایت خود متصل شوید.
- فایل wp-config.php را در روت سایت پیدا کنید و آن را دانلود کنید.
- فایل را در یک ویرایشگر متنی (مثل Notepad) باز کرده و کد زیر را به آن اضافه کنید:
define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true );
- تغییرات را ذخیره کرده و فایل را به سرور بازگردانید.
مشاهده گزارشهای عیبیابی
- با استفاده از FTP به مسیر /wp-content/ بروید.
- فایل log را در این پوشه پیدا کنید.
- فایل را در یک ویرایشگر متنی باز کنید تا لیستی از خطاها و هشدارهای سایت خود را مشاهده کنید.
نکته: برخی خطاها ممکن است بیخطر باشند و نیازی به برطرف کردن آنها نداشته باشید. اما اگر با خطای سرور داخلی مواجه هستید، این لاگها میتوانند شما را به منبع مشکل هدایت کنند.
درخواست کمک از پشتیبانی هاستینگ
اگر هیچکدام از روشهای بالا مشکل شما را حل نکردند، بهتر است با تیم پشتیبانی فریا تماس بگیرید. آنها میتوانند لاگهای سرور را بررسی کرده و علت اصلی مشکل را پیدا کنند.
نتیجهگیری
خطای 500 Internal Server Error در وردپرس یکی از مشکلات رایج اما قابلحل است. با بررسی و رفع کش، فایل .htaccess، محدودیت حافظه PHP، افزونهها و قالب میتوان بهراحتی این خطا را برطرف کرد. اگر همچنان مشکل پابرجا باشد، با فعال کردن گزارش عیبیابی یا تماس با پشتیبانی هاست میتوانید علت را پیدا کنید. نکته مهم این است که همیشه قبل از اعمال هرگونه تغییر، از سایت خود نسخه پشتیبان تهیه کنید تا مطمئن شوید هیچ دادهای از بین نمیرود.
اگر بهدنبال راهکارهای تخصصیتر برای حل خطای 500 Internal Server Error یا پشتیبانی حرفهای برای مدیریت سایت وردپرسی خود هستید، پیشنهاد میکنیم از خدمات سایت فریا استفاده کنید. تیم متخصص فریا در زمینه طراحی سایت، مدیریت وردپرس و رفع مشکلات سرور تجربه گستردهای دارد و میتواند به شما در حل این مشکلات کمک کند.
سوالات متداول
1- چرا خطای 500 Internal Server Error در وردپرس رخ میدهد؟
این خطا معمولا به دلایلی مانند فایل خراب .htaccess، محدودیت حافظه PHP، افزونههای ناسازگار یا مشکلات قالب رخ میدهد.
2- چگونه فایل .htaccess خراب را اصلاح کنیم؟
میتوانید فایل .htaccess را از طریق پیشخوان وردپرس بهروزرسانی کنید یا به کمک FTP بهصورت دستی آن را جایگزین نمایید. کدهای پیشفرض وردپرس را نیز در فایل جدید قرار دهید.
3- چه زمانی باید با پشتیبانی هاست تماس بگیریم؟
اگر پس از بررسی تمامی راهحلها خطا همچنان باقی بود یا به لاگهای سرور نیاز داشتید، بهتر است با تیم پشتیبانی هاست خود تماس بگیرید. آنها میتوانند اطلاعات دقیقی از مشکل ارائه دهند و شما را راهنمایی کنند.