رفع خطای 500 یا Internal Server Error در وردپرس

رفع خطای ۵۰۰ یا Internal Server Error در وردپرس
اگر شما هم از وردپرس به عنوان سیستم مدیریت محتوای سایت خود استفاده می‌کنید، احتمالا تا به حال با خطای ۵۰۰ برخورد کرده‌اید؛ خطای ۵۰۰ یا خطای داخلی مربوط به سرور، یکی از رایج ترین خطاهای وردپرس است؛ در این مقاله اقدامات لازم را برای شناسایی علت این خطا بررسی می‌کنیم؛ علاوه بر این، ما یک تحلیل از موثرترین راه حل‌ها را ارائه خواهیم داد.
با خواندن این آموزش، یاد می‌گیرید که چگونه خطای ۵۰۰ (یا خطای داخلی مربوط به سرور) را در وردپرس برطرف نمایید.

خطای ۵۰۰ یا خطای داخلی مربوط به سرور چیست؟

در خطای ۵۰۰ بیان می‌شود که سرور اکنون قادر به انجام یک عملکرد خاص نیست. این می‌تواند به دلیل بروز یک مشکل در خود سرور یا در یک فایلی است که برای اجرای یک وب سایت بسیار مهم است باشد؛ پیام خطا مبهم است و تنها بیان می‌کند که یک خطای غیر منتظره رخ داده است و علت آن را بیان نمی‌کند.

 

قبل از شروع:

از سایت وردپرس خود نسخه پشتیبان تهیه کنید. (در صورتی که هاست خود را از طنین سرور تهیه کرده باشید، طنین سرور هر شب یک نسخه پشتیبان از سایت شما تهیه می‌کند.)
همیشه بهتر است قبل از عیب یابی خطا از وب سایت خود یک نسخه پشتیبان تهیه نمایید. سپس برای اینکه مشخص نمایید کدام قسمت باعث ایجاد خطا شده است، برخی از ویژگی‌های سیستم مدیریت وب سایت خود را خاموش کنید.
متداول ترین روش‌های پشتیبان گیری عبارتند از:
• نصب افزونه‌های وردپرس که برای شما امکان ایجاد نسخه پشتیبان را فراهم می‌نماید.
• استفاده از رابط کنترل‌پنل (سی‌پنل یا دایرکت ادمین) خود، برای تهیه یک نسخه پشتیبان
• ایجاد یک نسخه پشتیبان برای سایت وردپرس با استفاده از FTP و phpMyAdmin

 

برای رفع خطای ۵۰۰ ما نیاز داریم به فایل‌های وردپرس سایت دسترسی داشته باشیم؛ برای دسترسی به فایل‌های سایت، چند راه وجود دارد؛ می‌توان از طریق صفحه مدیریت فایل در کنترل پنل این کار را انجام داد؛ اما یک راه بهتر این است که از یک FTP Client استفاده کنیم.
کلاینت‌های FTP به دلیل ارائه دسترسی به فایل‌ها و پوشه‌های یک وب سایت بسیار مورد استفاده قرار می‌گیرند. رابط کاربری آن‌ها بسیار کاربر پسند و بسیار متناسب با یک مرورگر فایل استاندارد است. این محیط به شما امکان می‌دهد تا فایل‌ها را به راحتی بر روی سرور خود بارگذاری، بارگیری و مدیریت کنید. در این مثال از FileZilla استفاده می‌شود. اما این کار را با هر کلاینت FTP  می‌توان انجام داد.

پس از اینکه به کلاینت FTP وارد شدید، فایل‌های اصلی سایت وردپرس خود را پیدا کرده، پوشه public_html را باز نمایید:


تعدادی از دلایلی که ممکن است عامل ایجاد این خطا باشند به شرح زیر است:
• خراب بودن فایل .htaccess
• پایین بودن حافظه رم برای اجرای PHP
• وجود افزونه (های) مشکل دار
• خراب بودن فایل اصلی وردپرس

به ترتیب گزینه‌های بالا را بررسی می‌کنیم تا مشکل را پیدا کنیم.

 

چگونه یک فایل .htaccess وردپرس خراب شده را تصحیح کنیم؟

فایل .htaccess برای تنظیم قوانین دسترسی وب سایت استفاده می‌شود. بروزرسانی‌ها و تغییر در تنظیمات سرور مکرر است. این اقدامات با گذشت زمان، منجر به تغییر یا خراب شدن فایل‌ها می‌شود. برای تشخیص اینکه آیا فایل .htaccess شما خراب شده است، آن را با استفاده از کلاینت FTP تغییرنام دهید.
اگر خراب باشد، صرفاً با جایگزین کردن آن با یک فایل.htaccess جدید، خطای ۵۰۰ حل می‌شود.
برای تشخیص اینکه آیا فایل .htaccess خراب است، آنرا به .htaccess_old تغییر نام می‌دهیم. این کار ساده عملکردهای فایل .htaccess را به طور کلی غیرفعال می‌کند.

رفع خطای 500 یا Internal Server Error در وردپرس
وب سایت خود را رفرش کنید.  اگر در دسترس باشد، بدین معنی است که شما علت خطای ۵۰۰ را متوجه شده اید.
یک فایل .htaccess جدید ایجاد کنید
برای ایجاد یک فایل جدید .htaccess در وردپرس مراحل زیر را انجام دهید:
۱٫ به داشبورد ادمین وردپرس خود بروید.
۲٫ وارد بخش Settings > Permalinks شوید.
۳٫ گزینه Save Changes  را کلیک کنید.

رفع خطای 500 یا Internal Server Error در وردپرس

پس از ذخیره تنظیمات خود، به طور خودکار یک فایل .htaccess جدید در پوشه public_html شما ایجاد می‌شود. با استفاده از کلاینت FTP، می‌توانید فایل جدید .htaccess را مشاهده کنید.
علاوه بر این، می‌توانید فایل قدیمی .htaccess را حذف کنید – همان فایلی که قبلاً تغییر نام داده اید.
توجه: همیشه صحیح بودن مجوزهای فایل را بررسی کنید. مجوزهای نادرست باعث می‌شود سایت وردپرس شما به درستی کار نکند. مجوزهای مربوط به فایل .htaccess باید ۰۶۴۴ باشد.

 

چگونگی افزایش محدودیت حافظه PHP در وردپرس

رفع خطای ۵۰۰ یا Internal Server Error در وردپرس

اگر هنوز خطای ۵۰۰ یاخطای داخلی مربوط به سرور به شما نشان داده می‌شود، ممکن است به دلیل کم بودن حداکثر حافظه PHPتان باشد. بنابراین شما باید مقدار حافظه قابل استفاده برای PHP خود را افزایش دهید تا مشخص شود که مشکل کمبود حافظه دارید یا خیر.
حد حافظه PHP را در فایل wp-config.php افزایش دهید.
اگر صفحه ادمین وردپرس شما قابل دسترس است و مشکل تنها مربوط به وب سایت شماست، باید فایل wp-config.php را ویرایش کنید.
۱٫ فایل wp-config.php را در پوشه root وب سایت خود پیدا کنید.
۲٫ بر روی فایل wp-config.php کلیک راست کرده و از منو Download را انتخاب نمایید.
۳٫ فایل را با Notepad ++ یا هر ویرایشگر متن دیگر باز کنید.
۴٫ خط  /*That’s all, stop editing! Happy blogging.*/  را جستجو نمایید. درست بالای آن خط، عبارت زیر را تایپ کنید:

define ('WP_MEMORY_LIMIT', '64M');


۵٫ فایل را ذخیره کنید.
۶٫ فایل wp-config.php ویرایش شده را با فایل موجود در پوشه root خود جایگزین نمایید.

 

حد حافظه PHP را در فایل php.ini افزایش دهید

کمبود حافظه حتی می‌تواند کلاً مانع دسترسی شما به وردپرس تان شود. با افزودن یک فایل php.ini در پوشه wp-admin می‌توانید این مشکل را حل کنید:
۱٫ یک ویرایشگر متن باز کنید (در این مثال Notepad++)
۲٫ عبارت  memory=64MB  را تایپ نمایید.


۳٫ فایل را به عنوان php.ini ذخیره کنید.
۴٫ فایل را با استفاده از کلاینت FTP خود در پوشه wp-admin بارگذاری نمایید.


در صورتی که با این کار خطای فوری ۵۰۰ یا خطای داخلی سرور برطرف شد؛ بدین معنی است که این خطا تنها یک هشداری است که بیان می‌نماید، چیزی به سرعت درحال پر کردن منبع سرورتان است.
گزارش‌های خود را با جزئیات تجزیه و تحلیل کرده و شرکت هاست خود را نیز بررسی نمایید.

 

بررسی افزونه‌های WordPress

رفع خطای ۵۰۰ یا Internal Server Error در وردپرس

یکی دیگر از دلایل وقوع خطای ۵۰۰ یا خطای داخلی سرور می‌تواند افزونه‌های وردپرس شما باشد. به جای آزمایش دقیق تک تک افزونه‌ها، یک روش ساده وجود دارد که در مرحله اول تعیین می‌کند آیا آن افزونه مشکل دار است یا خیر:
۱٫ کل پوشه plugins (پوشه plugins در پوشه wp-content قرار دارد) را با استفاده از کلاینت FTP خود تغییر نام دهید. این کار تمام افزونه‌های شما را یکجا غیرفعال می‌کند؛ اما خود افزونه‌ها را ویرایش یا حذف نمی‌کند.


۲٫ اگر در این مرحله بتوانید به وب سایت خود دسترسی پیدا کنید، مشخص است که یکی از افزونه‌ها مشکل دار است. اکنون پوشه را دوباره به plugins تغییر دهید.
۳٫ به ادمین وردپرس خود دسترسی پیدا کنید و هر افزونه را به ترتیب فعال کنید. این عملکرد به شما امکان می‌دهد بفهمید که کدام افزونه باعث ایجاد خطای ۵۰۰ شده است.
۴٫ اطمینان حاصل کنید که صفحه خود را پس از هر تغییری که ایجاد کرده اید، رفرش می‌کنید. در اینصورت، خطا به محض غیرفعال کردن افزونه خراب، برطرف می‌شود.


با دنبال کردن مراحل ذکر شده در بالا، باید بتوانید افزونه مسئول خطا را با موفقیت پیدا کرده و غیرفعال نمایید.

 

عیب یابی WordPress

اگر هیچ کدام از راه حل‌ها نتوانستند خطای ۵۰۰ را برطرف نمایند، یک راه حل کمی پیچیده‌تر وجود دارد. می‌توانید از ابزار اشکال زدایی وردپرس برای جمع آوری اطلاعات بیشتر در مورد خطا استفاده کنید.
باز هم با استفاده از کلاینت FTP و یک ویرایشگر متن مورد نظر خود، کد زیر را در انتهای فایل wp-config.php وارد کنید:

define( 'WP_DEBUG', true );

define( 'WP_DEBUG_DISPLAY', false );

define( 'WP_DEBUG_LOG', true );

هر بار که وردپرس با یک اخطار، خطا مواجه می‌شود یا یک اعلام توجه ایجاد می‌کند، این ابزار در گزارش شما، خطا را با یک برچسب زمان می‌نویسد و همچنین خطا را بر روی صفحه نمایش می‌دهد؛ در اکثر مواقع از این راه می‌توان علت مشکل را پیدا کرد و برطرف کرد.
همچنین شما می‌تواند آن اطلاعات را در فایل debug.log پیدا کنید.
این گزارش حاوی اطلاعات زیادی است. تفسیر این داده‌ها ممکن است چالش برانگیز باشد مگر اینکه مهارت فنی گسترده ای داشته باشید. اگر شک دارید، قبل از انجام هرگونه اقدامات بر اساس داده‌های جمع آوری شده، از مشاوره حرفه ای کمک بگیرید.

 

در نهایت اگر هیچ کدام از روش‌های بالا برای شما کارآمد نبود، ممکن است فایل‌های وردپرس سایت شما خراب و یا ویروسی شده باشد؛ در اینصورت باید وردپرس خود را مجددا نصب کنید.
از طرف دیگر، ممکن است مشکلی در فایل‌های اصلی وردپرس شما باشد؛ که تصحیح آن سریع و آسان است. ما باید با استفاده از کلاینت FTP دو پوشه را در پوشه اصلی WordPress خود جایگزین کنیم:
۱٫ به WordPress.org رفته و آخرین نسخه وردپرس را دانلود کنید.
۲٫ آن را از حالت فشرده خارج کرده و باز نمایید. سپس پوشه‌های wp-admin و  wp-includesرا کپی کنید.
۳٫ پوشه‌های هم‌نام را بر روی سرور خود با موارد تازه دانلود شده جایگزین نمایید.
۴٫ وب سایت خود را مجددا بارگیری کنید.