خطای Internal Server Error یکی از رایج ترین خطاهای وردپرس است، که حل آن برای مبتدیان کمی مشکل و خسته کننده است زیرا این خطا اطلاعات دیگری را ارائه نمی دهد.
در این مقاله به شما نشان می دهیم که چگونه به راحتی خطای internal server error در وردپرس را برطرف کنید.
خطای Internal Server Error را بشناسیم
این خطا که با کد 500 نیز شناخته می شود یک خطای رایج وب سرور است. و بایستی بدانید که خطای 500 فقط مختص سایت های وردپرسی نیست و برای هر وب سایتی ممکن است رخ دهد.
عدد 500 در عنوان این خطا از نظر فنی کد خطای HTTP است که با جستجوی این کد فقط با یک توضیح کلی مانند توضیحات زیر روبرو خواهید شد :
“500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.“
به معنی “کد 500 در خطای Internal Server Error نشان می دهد که سرور با شرایط غیرمنتظره ای روبرو شده که مانع از انجام درخواست شده است”.
این پیام خطا، یک پیام کلی است؛ به این معنی که سرور نمی تواند پیام خطای بهتر و کمک کنندهتری هنگام روبرو شدن با مشکل به شما ارائه دهد.
شکل و ظاهر صفحهای که در آن با این پیغام خطا مواجه میشوید، بسته به اینکه وب سرور شما از کدام نرمافزار (Nginx یا Apache) استفاده میکند، و اینکه شما از کدام مرورگر استفاده میکنید، متفاوت به نظر میرسد.
بعنوان مثال صفحهی این خطا برای وب سروری که از نرمافزار Apache استفاده میکند ممکن است مانند تصویر زیر باشد:
و اگر از Nginx و مرورگر گوگل کروم استفاده میکنید احتمالا این صفحه را با ظاهری متفاوت میبینید.
همچنین اگر مرورگر گوگل کروم نتواند یک صفحه خطا را برای نمایش پیدا کند، ممکن است با چنین صفحهای مواجه شوید:
برای افراد مبتدی، این پیغامها میتواند بسیار خسته کننده باشد زیرا هیچ سرنخی، آنها را در جهت رفع سریع این خطا راهنمایی نمیکند.
پرسش برای چگونگی رفع خطای داخلی سرور یا Internal Server Error مانند این است که از پزشک خود بخواهید تا دردی را که تجربه میکنید برطرف کند بدون اینکه به او بگویید درد کجاست…
با این حال، اگر دلایل رایجی را که باعث ایجاد این خطا میشوند، بدانید، میتوانید آنها را یکی یکی برطرف کنید تا بدون هرگونه خرابکاری، خطا را برطرف نمایید.
چه چیزی باعث خطای داخلی سرور یا Internal Server Error در وردپرس میشود؟
خطای Internal Server Error یا خطای Internal Server Error 500 در وردپرس اغلب به دلیل یک فایل .htaccess خراب، پلاگینهای کدگذاری شده ضعیف یا قالب وردپرس فعال شما ایجاد میشود.
سایر دلایل احتمالی خطای داخلی سرور در وردپرس، محدودیت حافظه PHP یا خرابی فایل های اصلی وردپرس است. و در برخی شرایط، خطای داخلی سرور ممکن است تنها زمانی نشان داده شود که قصد ورود و استفاده از قسمت مدیریت وردپرس دارید، در حالی که سایر قسمتهای سایت به خوبی کار میکنند.
معمولاً این خطا قبل از بارگیری وردپرس ایجاد می شود و سرور نمیتواند اطلاعات کافی در مورد اینکه چه چیزی آن را متوقف کرده است به دست آورد.
حال بیایید تا با توجه به توضیحات داده شده، نگاهی به نحوه عیبیابی خطای Internal Server Error بیندازیم.
رفع خطای داخلی سرور یا Internal Server Error در وردپرس
پیش از شروع عیبیابی، حتما یک نسخه پشتیبان کامل از وردپرس از وب سایت خود تهیه نمایید.
اگر به بخش مدیریت وردپرس دسترسی دارید، می توانید از یک افزونه پشتیبان گیری از وردپرس، برای ایجاد یک نسخه پشتیبان کامل از وب سایت خود استفاده کنید.
توصیه ما استفاده از افزونه UpdraftPlus برای گرفتن پشتیبان از سایت است. این افزونه نه تنها به شما کمک میکند تا به سرعت از وب سایت خود نسخه پشتیبان تهیه کنید، بلکه میتوانید نسخههای پشتیبان خود را در فضای ابری ذخیره کرده و مهمتر از همه، میتوانید وب سایت خود را از آن نسخه پشتیبان بازیابی کنید.
از طرفی، اگر به قسمت مدیریت وردپرس دسترسی ندارید، میتوانید به صورت دستی یک نسخه پشتیبان از وردپرس با استفاده از phpMyAdmin و یک کلاینت FTP تهیه نمایید. و پس از آن می توانید مراحل زیر را برای عیبیابی و رفع خطای Internal Server Error وب سایت خود دنبال کنید.
حافظه کش وردپرس و مرورگر را پاک کنید!
مرورگرها و افزونههای کش وردپرس شما گاهی اوقات به اشتباه میتوانند یک کپی کش شده از یک صفحه خطا را ذخیره کنند. سادهترین راه برای رفع این مشکل این است که ابتدا حافظه کش مرورگر خود را پاک کنید.
پس از پاک کردن کش مرورگرتان، اگر به قسمت مدیریت وردپرس وب سایت خود دسترسی دارید، می توانید با مراجعه به صفحه تنظیمات افزونه کش خود، کش وردپرس را نیز خالی کنید.
بررسی فایل htaccess. خراب!
فایل .htaccess یک فایل پیکربندی سرور است که توسط وردپرس برای تنظیم ریدایرکتها یا تغییر مسیرها نیز استفاده میگردد. یکی از رایج ترین دلایل خطای Internal Server Error، خراب شدن فایل htaccess. است.
ساده ترین راه برای رفع این مشکل این است که به سادگی وارد صفحه تنظیمات » پیوندهای یکتا در قسمت مدیریت وردپرس شوید و سپس بدون ایجاد هیچ تغییری، روی دکمه «ذخیره تغییرات» کلیک کنید.
با انجام این کار وردپرس سعی میکند فایل .htaccess شما را به روز کرده یا یک فایل جدید برای شما ایجاد کند. اکنون میتوانید از وب سایت خود بازدید کنید تا ببینید که آیا این کار، خطای Internal Server Error را برطرف کرده است یا خیر.
اگر همچنان پیغام خطا را میببینید، باید مطمئن شوید که وردپرس قادر به تولید یا نوشتن فایل htaccess. بوده است یا خیر. گاهی اوقات، به دلیل مجوزهای فایل و دایرکتوری، وردپرس ممکن است نتواند فایل htaccess. شما را ایجاد یا ویرایش کند.
اکنون باید سعی کنید فایل htaccess. را به صورت دستی جایگزین کنید. ابتدا با استفاده از FTP یا برنامه File Manager تحت کنترل پنل حساب هاست خود وارد وب سایتتان شوید.
در مرحله بعد، باید نام فایل htaccess. اصلی خود را به چیزی شبیه به htaccess_old. تغییر دهید. این کار به شما امکان میدهد فایل قدیمی را به عنوان پشتیبان نگه دارید، به طوری وردپرس نیز آن را تشخیص ندهد تا در صورت لزوم بعدا از آن استفاده کنید.
برای تغییر نام فایل htaccess، باید با استفاده از FTP یا برنامه File Manager در داشبورد cPanel حساب هاست خود، وارد سایت شوید. که پس از اتصال و ورود، فایل htaccess. در همان دایرکتوری و مکانی قرار دارد و آن را مشاهده خواهید کرد، که پوشه هایی مانند wp-content، wp-admin و wp-includes را میبینید.
حال به سادگی روی فایل htaccess. کلیک راست کرده و نام آن را به htaccess_old. تغییر دهید.
در مرحله بعد، باید یک فایل htaccess جدید ایجاد کنید.
حال در همان مکانی که نام فایل htaccess قدیمی قرار داشت، کلیک راست کرده و سپس گزینه «Create new file» به معنی «ایجاد فایل جدید» را در سرویس گیرنده FTP یا برنامه مدیریت فایل خود انتخاب کنید.
نام این فایل جدید را .htaccess بگذارید و برای ذخیره آن روی «OK» کلیک کنید. اکنون، فایل جدید .htaccess ایجاد شده خالی است و باید قوانین بازنویسی پیش فرض وردپرس را به آن اضافه کنید.
به سادگی روی فایل کلیک راست کرده و سپس “Veiw/Edit” را در سرویس گیرنده FTP یا برنامه مدیریت فایل خود انتخاب کنید.
فایل خالی در یک ویرایشگر متن ساده مانند Notepad یا TextEdit باز میشود. حال باید کد زیر را در داخل آن کپی و پیست کنید :
# 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
این کد مجموعه قوانین پیش فرضی است که توسط وردپرس استفاده میشود. فراموش نکنید که تغییرات خود را ذخیره کنید و فایل را دوباره در سرور آپلود کنید. اکنون می توانید از وب سایت خود بازدید کنید تا ببینید که آیا این کار خطای Internal Server Error را برطرف کرده است یا خیر. اگر برطرف شد، برای خودتان دست بزنید زیرا آن خطا را برطرف کردهاید.
نکته مهم : قبل از اینکه به کارهای دیگر بپردازید، حتما در قسمت مدیریت وردپرس به صفحه تنظیمات » پیوندهای یکتا رفته و بدون ایجاد هیچ تغییری فقط روی دکمه «ذخیره تغییرات» کلیک کنید. این کار فایل htaccess. را با قوانین بازنویسی مناسب برای شما بازسازی میکند تا اطمینان حاصل شود که صفحات پست شما دچار خطای 404 نمیشوند.
اگر بررسی راه حل فایل .htaccess خراب برای شما کار نکرد، پس همچنان باید به خواندن این مقاله و بررسی راههای دیگر ادامه دهید.
افزایش محدودیت حافظه PHP
گاهی اوقات، اگر یک اسکریپت تمام محدودیت حافظه PHP را مصرف کند، خطای Internal Server Error ممکن است رخ دهد.
سادهترین راه برای افزایش محدودیت حافظه PHP، ویرایش فایل wp-config.php است. اگر مبتدی هستید هنگام انجام این کار مراقب باشید. شما باید این دستورالعملها را به دقت دنبال کنید زیرا حتی اشتباهات کوچک در فایلهای اصلی وردپرس میتواند سایت شما را با مشکل مواجه کند.
برای شروع، به سادگی با استفاده از یک سرویس گیرنده FTP یا برنامه File Manager در کنترل پنل هاست، به وب سایت وردپرسی خود متصل شوید.
فایل wp-config.php را در پوشه اصلی وب سایت خود خواهید یافت. روی آن کلیک راست کرده و «Download» را انتخاب کنید. با این کار اطمینان حاصل میکنید که در صورت بروز مشکل، یک نسخه پشتیبان از این فایل دارید.
وقتی آن را ذخیره کردید، مجدد روی آن کلیک راست کرده و اینبار گزینه «Veiw/Edit» را انتخاب کنید.
در داخل فایل wp-config.php، باید کد زیر را درست بالای خطی که در آن عبارت «That’s all, stop editing! Happy publishing» را میبینید، اضافه کنید :
define( 'WP_MEMORY_LIMIT', '256M' );
توجه: اگر 256M مشکل را حل نکرد، آن را به 512M افزایش دهید.
اگر خطای Internal Server Error را تنها زمانی که میخواهید وارد قسمت مدیریت وردپرس خود شوید یا تصویری را در پوشه wp-admin آپلود کنید، مشاهده میکنید، باید با دنبال کردن مراحل زیر محدودیت حافظه را افزایش دهید:
- یک فایل متنی خالی در رایانه خود ایجاد کنید و نام آن را php.ini بگذارید.
- این کد را در آن قرار دهید: memory=256MB
- فایل را ذخیره کنید.
- آن را با استفاده از FTP در پوشه /wp-admin/ سایت خود آپلود کنید.
اگر افزایش محدودیت حافظه PHP مشکل را برای شما برطرف کرد، باید بدانید که فقط به طور موقت مشکل را برطرف کردهاید. و هنوز باید علتی را که محدودیت حافظه PHP را در سایت شما خسته کرده است، پیدا کنید.
این مشکل میتواند بخاطر وجود یک افزونه با کدگذاری ضعیف یا حتی یک تابع در قالب سایت شما باشد. ما قویاً توصیه میکنیم که از شرکت میزبانی وب سایت وردپرسی خود بخواهید که گزارشهای سرور را بررسی کند تا به شما در تشخیص دقیق مشکل کمک کند.
اگر افزایش محدودیت حافظه PHP مشکل را برای شما حل نکرد، باید همچنان عیبیابی را از راههای دیگر ادامه دهید.
تمام افزونههای وردپرس را غیرفعال کنید!
اگر هیچکدام از راه حلهای بالا برای شما کار نکرد، به احتمال زیاد این خطا توسط یک افزونه خاص که در وبسایت خود نصب کردهاید ایجاد شده است. همچنین ممکن است این مشکل به دلیل ناسازگاری ترکیبی از پلاگینها با یکدیگر باشد.
اگر میتوانید به قسمت مدیریت وردپرس وبسایت خود وارد شوید، به سادگی به صفحه افزونهها بروید و همه افزونههای وردپرس را غیرفعال کنید.
و اگر نمیتوانید به بخش مدیریت وردپرس وارد شوید، میتوانید تمام افزونههای وردپرس را با استفاده از FTP غیرفعال کنید.
برای این کار باید با استفاده از یک سرویس گیرنده FTP یا از طریق برنامه مدیریت فایل در کنترل پنل هاست، به وبسایت وردپرسی خود متصل شوید. پس از اتصال، به پوشه /wp-content/ بروید و نام پوشه plugins را به plugins.deactivated تغییر دهید.
با این کار وردپرس به دنبال افزونهها میگردد، و وقتی پوشه افزونهها را پیدا نکند، به طور خودکار همه افزونهها را غیرفعال میکند.
اکنون میتوانید از سایت خود بازدید کنید تا ببینید که آیا با این کار خطای Internal Server Error در وب سایت شما برطرف شده است یا خیر.
برای بازیابی همه افزونههای خود، میتوانید نام پوشه “plugins.deactivated” را به سادگی، به “plugins” تغییر دهید. پس از این کار، افزونههای شما بازیابی میشوند، اما همچنان غیرفعال هستند. حال افزونهها را به صورت جداگانه فعال کنید و از سایت خود بازدید کنید تا بفهمید کدام افزونه باعث خطای Internal Server Error میشود.
اگر غیرفعال کردن همه افزونهها نیز این خطا را در سایت شما برطرف نکرد، به خواندن ادامه دهید و راههای دیگر را بررسی کنید.
یک قالب پیش فرض وردپرس را انتخاب کنید!
یکی از دلایل احتمالی خطای Internal Server Error ، وجود برخی از کدها در پوسته یا قالب سایت شما میباشد. برای تعیین اینکه آیا ایراد از قالب است یا خیر، باید آن را به یک قالب پیش فرض وردپرس تغییر دهید.
اگر به قسمت مدیریت وردپرس دسترسی دارید، به صفحه نمایش » پوسته بروید. اگر یک پوسته یا قالب پیشفرض از قبل نصب کردهاید، روی دکمه فعالسازی کلیک کنید تا قالب وردپرس را تغییر دهید.
اگر یک پوسته پیشفرض نصب نکردهاید، میتوانید روی دکمه «افزودن پوسته تازه» در بالای همان صفحه کلیک کنید و یک پوسته پیشفرض (بیست بیست و چهار، بیست و بیست و سه، و غیره) را نصب کنید.
اما اگر به قسمت مدیریت وردپرس دسترسی ندارید، همچنان میتوانید قالب وردپرس خود را به یک قالب پیش فرض وردپرس تغییر دهید.
با استفاده از یک سرویس گیرنده FTP به وب سایت وردپرسی خود متصل شوید و به پوشه /wp-content/ بروید. برای انتخاب پوشه قالبها روی پوشه themes کلیک راست کرده و آن را به عنوان پشتیبان دانلود کرده و کامپیوتر خود ذخیره نمایید.
در مرحله بعد، باید پوشه قالبها(themes) را از وب سایت خود حذف کنید. پس از حذف، یک پوشه جدید با همان نام ایجاد کنید.
پوشه جدید شما کاملا خالی خواهد بود، به این معنی که در حال حاضر هیچ قالب وردپرسی نصب نکردهاید.
در مرحله بعد، باید به دایرکتوری قالبهای وردپرس مراجعه کنید و یکی از قالبهای پیش فرض وردپرس را دانلود کنید.
با کلیک روی تصویر مربوط به هر یک از قالبهای پیش فرض وردپرس که در عکس بالا دو مورد از آنها را مشاهده می کنید، وارد صفحه اطلاعات مربوط به آن قالب خواهید شد که با کلیک روی دکمه «دانلود» موجود در آن صفحه، قالب وردپرس بصورت یک فایل فشرده دانلود میشود.
پس از دانلود، فایل را در کامپیوتر خود پیدا کنید و سپس آن را از حالت فشرده خارج کنید. کاربران ویندوز میتوانند فایل را با کلیک راست روی آن و سپس انتخاب «Extract All» از حالت فشرده خارج کنند. کاربران مک میتوانند روی فایل فشرده دوبار کلیک کنند تا آن را استخراج کنند.
پس از خارج کردن فایل از حالت فشرده، یک پوشه حاوی قالب وردپرس خود خواهید دید.
حال به سرویس گیرنده FTP یا File Manager خود برگردید و این پوشه را در پوشه خالی قالبها (themes) آپلود کنید.
پس از آپلود، وردپرس به طور خودکار شروع به استفاده از آن قالب پیش فرض میکند. اکنون از وب سایت خود بازدید کنید تا ببینید که آیا با این کار خطای Internal Server Error برطرف شده است یا خیر.
اگر این راه نیز مشک را حل نکرد، میتوانید قالبهای وردپرس خود را که پیشتر از آنها نسخه پشتیبان تهیه کرده بودید، آپلود کنید، و یا در صورتی که از قسمت مدیریت یک قالب پیش فرض را فعال کردهاید، حال میتوانید مجدد به قالبی که استفاده می کردید برگردید.
نگران نباشید، هنوز چند راه حل دیگر وجود دارد که میتوانید برای رفع خطا آنها را نیز بررسی کنید.
بارگذاری مجدد فایلهای اصلی!
اگر راه حلهای افزونهها و قالب، خطای Internal Server Error را برطرف نکردند، پس ارزش آن را دارد که فایلهای اصلی وردپرس یعنی پوشههای /wp-admin/ و /wp-includes/ را از یک فایل نصبی جدید وردپرس دوباره روی هاست سایت خود آپلود کنید.
این کار هیچ یک از اطلاعات شما را از بین نمیبرد، اما در صورتی که این پیغام خطا از خرابی فایلهای اصلی وردپرس باشد میتواند آن را حل کند.
ابتدا باید به وب سایت fa.wordpress.org مراجعه کرده و روی دکمه «دریافت وردپرس» کلیک کنید.
با این کار فایل فشرده وردپرس در کامپیوتر شما دانلود میشود. سپس ادامه دهید و فایل فشرده را استخراج کنید. در داخل آن، یک پوشه وردپرس پیدا خواهید کرد.
در مرحله بعد، باید با استفاده از یک سرویس گیرنده FTP به وب سایت وردپرس خود متصل شوید. پس از اتصال، به پوشه ریشه وبسایت خود بروید. یعنی همان پوشهای که پوشههای wp-admin، wp-includes و wp-content را در داخل خود دارد.
در ستون سمت چپ FTP، پوشه وردپرس را در کامپیوتر خود باز کنید. اکنون باید تمامی فایلهای داخل پوشه وردپرس را انتخاب کرده و در وبسایت خود آپلود کنید.
سرویس گیرنده FTP یا همان کلاینت FTP شما آن پوشهها را به سرور شما منتقل خواهد کرد.
سپس از شما میپرسد که آیا میخواهید فایلها را بازنویسی کنید یا خیر؟! گزینه “Overwrite” را انتخاب کنید، سپس “Always use this action” را انتخاب کنید و کادر “Apply to current queue only” را علامت بزنید.
حالا کلاینت FTP شما فایلهای قدیمی وردپرس را با نسخههای جدیدی که آپلود کردید، جایگزین میکند.
اگر فایلهای اصلی وردپرس شما خراب بوده، حال با انجام این مرحله، خطای Internal Server Error باید برای شما برطرف شده باشد.
گزارشهای اشکالزدایی را در وردپرس فعال کنید
وردپرس دارای یک سیستم داخلی برای نگهداری گزارشها یا همان لاگها جهت اشکال زدایی است. با استفاده از افزونه WP Debugging میتوانید آن را روشن کنید. پس از فعال شدن، این افزونه گزارشهای اشکالزدایی را در وب سایت وردپرسی شما فعال خواهد کرد.
اگر به بخش مدیریت سایت وردپرسی خود دسترسی ندارید، میتوانید با افزودن کد زیر به فایل wp-config.php، گزارشهای اشکالزدایی را فعال کنید:
define( 'WP_DEBUG', true);
define( 'WP_DEBUG_LOG', true);
هنگامی که گزارشهای اشکالزدایی را روشن کردید، میتوانید این گزارشها را با استفاده از یک سرویس گیرنده FTP و ورود به پوشه /wp-content/ مشاهده کنید.
حال فایل گزارش اشکالزدایی (debug.log) را در یک ویرایشگر متن باز کنید، در این فایل لیستی از خطاها و هشدارهایی که در سایت شما رخ میدهد را مشاهده خواهید کرد.
برخی از خطاها و هشدارهایی که در این فایل خواهید دید، میتوانند حوادث بیضرری باشند که ممکن است نیازی به تعمیر نداشته باشند. با این حال، اگر همچنان یک خطای Internal Server Error را در سایت خود مشاهده میکنید، اطلاعات داخل این فایل، میتوانند شما را برای یافتن مشکل راهنمایی کنند.
از ارائه دهنده هاست خود بپرسید!
اگر هیچکدام از روشها در رفع خطای Internal Server Error در وبسایت شما موفق نبودند، زمان آن رسیده است که کمک بیشتری دریافت کنید. با تیم پشتیبانی هاست خود تماس بگیرید، آنها میتوانند گزارشهای سرور را بررسی کرده و علت اصلی ارور 500 در وردپرس را پیدا کنند.