رفع خطای 500 سرور داخلی دروردپرس
رفع خطای 500 سرور داخلی دروردپرس

مقدمه:

خطای 500  سرور داخلی در هر صفحه از وب‌سایت شما، هنگام ایجاد مشکل در سرور یا فایل‌های سیستمی که وب‌سایت شما را اجرا می‌کنند، رخ می‌دهد. رایج‌ترین دلایل بروز این خطا می‌تواند از اعمال سطح دسترسی یا مجوز نادرست بر روی فایل‌ها و دایرکتوری‌ها، Ownership نادرست در هاست، کد‌های نادرست در فایل php.ini یا فایل htaccess.، درخواست‌های نامعتبر از سمت اسکریپت سایت و … باشد. این خطا با توجه به نام آن بسیاری از کاربران را به این اشتباه می‌اندازد که مشکلی در سرور وجود دارد ولی در واقع سرور مشکلی نداشته و با اعمال تغییرات در تنظیمات پیکربندی سایت معمولاً قابل رفع است.

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

راه حل های رفع خطای500 در‌وردپرس

پشتیبان‌گیری از سایت شما

این راه‌حل‌ها نیازمند ایجاد تغییرات زیادی در دایرکتوری اصلی سایت شما است. توصیه می‌شود قبل از امتحان کردن هر یک از این راه‌حل‌ها در صورت بروز هر گونه خطایی، نسخه پشتیبانی از سایت خود تهیه کنید.

رفع خطای 500 سرور داخلی دروردپرس

سرویس‌گیرنده‌های FTP فراوانی وجود دارند، اما ما قصد داریم از FileZilla برای این منظور استفاده کنیم. به صفحه اصلی FileZilla بروید، و روی بارگیری FileZilla Client کلیک کنید.

اگر سایت سیستم عامل دقیق شما بطور صحیحی تشخیص داد، روی دکمه سبز رنگ “FileZilla Client” کلیک کنید. اگر این‌طور نیست، روی “Show Additional Download Options” واقع در زیر دکمه سبز کلیک کنید و نسخه مناسب برای سیستم عامل خود را بارگیری کنید.

هنگامی که فایل نصبی را بارگیری کردید و آن را روی سیستم خود نصب کردید، سرویس‌گیرنده را باز کنید. روی File و سپس Site Manager کلیک کنید. روی New Site کلیک کنید و نام سایت خود را وارد کنید.

رفع خطای 500 سرور داخلی دروردپرس

پیکربندی این تنظیمات:

  • میزبان – نام دامنه شما
  • درگاه – خالی بگذارید
  • پروتکل – FTP – پروتکل انتقال فایل
  • رمزگذاری – فقط از FTP ساده استفاده کنید
  • نوع ورود به سیستم – عادی

از نام کاربری و رمز عبوری که برای دسترسی به مدیریت پرونده‌های میزبان خود دارید، استفاده کنید. اگر میزبان شما از cPanel استفاده می‌کند، برای دسترسی به cPanel از اطلاعات ورود به سیستم استفاده کنید. اگر مطمئن نیستید، از میزبان خود بپرسید.

به برگه “Transfer Settings” رفته و کادر “checkbox” را برای تعداد محدودی از اتصالات همزمان انتخاب کنید. حداکثر تعداد اتصالات را روی 8 تنظیم کنید. این کار سرور سایت شما را از مسدودشدن آدرس IP باز می‌دارد. برای اتصال به سرور سایت خود روی “Connect” کلیک کنید.

راه حل های متداول برای خطای 500 سرور داخلی

دو دلیل عمده برای ایجاد این خطا وجود دارد. اول وجود یک فایل htaccess. خراب و دوم افزایش بیش از حد حافظه PHP سرور شماست. فایل .htaccess در دایرکتوری وردپرس شما می‌تواند بعد از نصب یک افزونه یا ایجاد تغییر دیگری در سایت وردپرس خراب شود. رفع این مشکل ساده است. تنها کاری که باید انجام دهید، ایجاد یک پرونده جدید htaccess. است. مشکلات محدودیت حافظه PHP معمولاً نتیجه شروع به کار یک افزونه دارای کدگذاری ضعیف سایت یا سایتی که با گذشت زمان بطور قابل‌توجهی رشد می‌کند و از افزونه‌های بسیار زیادی استفاده می‌کند، است. هر کدام از این اتفاقات رخ دهد، شما شروع به فراتررفتن از حد مجاز حافظه PHP تعیین شده توسط ارائه دهنده هاست خواهید شد. نتیجه این اتفاق، ایجاد یک خطای 500 در سرور داخلی است.

ما می‌خواهیم بیاموزیم که چگونه یک htaccess. جدید، برای خلاص شدن از شر این خرابی را بسازیم. همچنین چگونگی آزمایش اینکه آیا از حد حافظه PHP خود فراتر رفته‌ایم را یاد بگیریم.

ایجاد یک فایل جدید htaccess.

دایرکتوری اصلی WordPress خود در FileZilla یا سرویس‌گیرنده FTP دلخواه خود را باز کنید. به این حالت معمولاً public_html گفته می شود. اگر پوشه‌هایی با نام wp-admin و wp-content مشاهده می‌کنید، در جای درست حضور دارید. اگر پرونده .htaccess یا هر دات‌فایل خود را مشاهده نمی‌کنید، با کلیک کردن روی Server و انتخاب Force Showing Hidden Files ، پرونده های مخفی را قابل دیدن کنید.

پس از یافتن پرونده .htaccess خود، بر روی آن راست کلیک کرده و آن را به “.htaccess.bak” تغییر نام دهید. با این کار اساساً فایل .htaccess سایت شما شده و بنابراین باید یک پرونده جدید ایجاد کنیم. وارد قسمت مدیریت وردپرس خود شوید. وارد بخش Settings شده و Permalinks را انتخاب کنید. به پایین صفحه بروید و روی Save Changes کلیک کنید.

وب‌سایت خود را در مرورگر باز کنید. اگر خطای 500 سرور داخلی از بین رفته است، خطا به دلیل خراب‌شدن فایل .htaccess ایجاد شده بود و اکنون مشکل شما برطرف شده است. اگر هنوز خطایی را مشاهده می‌کنید، آزمایش‌های بیشتری برای انجام دادن دارید.

همچنین لازم به ذکر است که نام‌گذاری نامناسب فایل htaccess. باعث ایجاد چنین خطایی در سایت شما می‌شود. اطمینان حاصل کنید که این پرونده به غیر از “htaccess.” نام‌گذاری نشده است.

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

محدودیت حافظه PHP توسط میزبان و وردپرس شما تنظیم شده است. با نزدیک شدن شما به محدوده مجازتان، وردپرس تلاش خواهد کرد حد مجاز شما را افزایش دهد. اما این کار را تا جایی می‌تواند ادامه دهد  که هاست شما بر روی سرور مشخص کرده است. این محدوده معمولاً برای هاست‌های مشترک کمتر است. شما باید میزان حافظه PHP خود را در وردپرس افزایش داده و سایت خود را به‌روز کنید، تا آزمایش کنید که آیا این ایراد موجب خطای 500 سرور داخلی شما شده است یا خیر.

رفع خطای 500 سرور داخلی دروردپرس

دایرکتوری اصلی خود را باز کنید و فایل wp-config.php خود را پیدا کنید. بر روی فایل راست کلیک کرده و برای بارگیری آن در رایانه خود Download را انتخاب کنید. پرونده را در ویرایش‌گر متنی خود باز کرده و این بیت‌کد را در زیر برچسب PHP اضافه کنید

رفع خطای 500 سرور داخلی در وردپرس

فایل را ذخیره کرده و دوباره آن را در دایرکتوری اصلی خود بارگذاری کنید و سپس فایل اصلی را مجدداً بنویسید. سرویس‌گیرنده و سایت خود را را به‌روز کنید. اگر هنوز خطایی مشاهده می‌کنید، مشکلی در مورد محدودیت حافظه PHP ندارید. کد فوق را از فایل wp-config.php روی رایانه خود حذف کنید، سپس آن را ذخیره کرده و دوباره در دایرکتوری اصلی بارگذاری کنید.

اگر خطایی نمی‌بینید خیلی هیجان زده نشوید. هنوز کارهایی برای انجام دادن دارید.

افزایش محدودیت حافظه PHP سایت شما در فایل wp-config.php، معادل ریختن سفیدکننده در سینک آشپزخانه هنگامی است که بوی تخم‌مرغ‌های فاسد شده پخش شده است. شما مشکل را به اندازه کافی برای رهایی از شر بوی بد برطرف کرده‌اید، اما مسئله بزرگتری را که مقابل چشمانتان است حل نمی‌کنید، که احتمالاً گرفتگی جایی در لوله‌های منتهی به سینک شماست.

در مورد بالا بردن محدودیت حافظه PHP سایت شما نیز همین مسئله صادق است. ممکن است خودتان آن را در پرونده افزایش داده باشید، اما چیزی هنوز محدودیت شما را از بین نمی‌برد. شما می‌توانید گام‌های چند بخش بعدی را دنبال کنید تا دریابید که چه چیزی ممکن است باشد. اما اگر وضعیت بدتر شود، به احتمال زیاد نیاز دارید که هاست خود را متقاعد کنید تا محدودیت سرور خود را افزایش دهد.

راه‌حل‌های کمتر متداول برای رفع خطای 500 سرور داخلی

رفع مشکل .htaccess خراب و افزایش محدودیت حافظه PHP سایت دو راه‌حل برتر برای رفع این خطاست، اما در صورت کمک نکردن به رفع ایراد، راه‌حل‌های دیگری نیز وجود دارد که به شرح زیر هستند:

  • غیرفعال کردن افزونه‌ها

اگر می‌توانید به قسمت مدیریت وردپرس دسترسی پیدا کنید، افزونه‌های خود را یک به یک غیرفعال کنید. سپس سایت خود را بعد از هر بار غیرفعال­سازی، به‌روز کنید. اگر خطا از بین برود، احتمالاً افزونه‌ای که قبل از به‌روز کردن غیرفعال کرده‌اید، عامل خطاست.

اگر عملکرد افزونه‌ی عامل خطا برای سایت شما مهم است، آن را حذف کرده و جایگزین مناسبی پیدا کنید. اگر احساس می‌کنید نمی‌توانید افزونه‌ را جایگزین کنید، مستقیماً با برنامه‌نویس تماس بگیرید. می‌توانید این کار را در انجمن پشتیبانی افزونه در WordPress.org انجام دهید، اما توصیه می‌کنم کمی تحقیق کنید تا ببینید که توسعه‌دهنده پشتیبانی دیگری دارد یا خیر.

اگر نمی‌توانید به قسمت مدیر وردپرس دسترسی پیدا کنید، سرویس گیرنده FTP خود را باز کرده و به پوشه root رفته و پوشه wp-content را باز کنید. این پوشه حاوی افزونه‌ها ، مضامین و پوشه‌های دیگر شماست.

خطای 500

پوشه افزونه‌ها را به هر آنچه که می‌خواهید مانند “plugins.test” تغییر نام دهید،. این کار تمام افزونه‌های سایت شما را غیرفعال‌ می‌کند. سایت خود را به‌روز کنید. اگر خطایی از بین برود، توسط یک افزونه معیوب ایجاد شده است. هر افزونه را یک به یک فعال کنید و سایت خود را بعد از هر بار فعال کردن به‌روز کنید تا متوجه شوید کدام افزونه باعث ایجاد خطا می‌شود.

اطمینان حاصل کنید که پس از این کار اسم پوشه را دوباره به “plugins” تغییر داده اید.

رفع خطای 500 سرور داخلی در وردپرس
  • عیب‌یابی وب‌سایت وردپرس

اگر در درک اینکه چه چیزی باعث بروز این خطا در سایت شما می شود، مشکل دارید، ممکن است بخواهید از ویژگی عیب‌یاب داخلی WordPress استفاده کنید. قراردادن تعداد کمی کد در فایل wp-config.php سایت شما، امکان عیب‌یابی در سایت شما را فراهم می‌کند. هر گونه خطای یافت‌شده در پرونده‌ای در فهرست شما ثبت می‌شود.

به طور معمول اشکال‌زدایی در یک سایت زنده ناامید کننده است به این دلیل که ممکن است کدی ضروری را برای بازدید‌کنندگان سایت افشا کند. با این حال این کار ممکن است تنها چیزی باشد که مشخص کند چه چیزی می‌تواند باعث بروز خطای 500 سرور داخلی در سایت شما شود.

رفع خطای 500 سرور داخلی در وردپرس
عیب یابی وب‌سایت وردپرس
  • بررسی مجوزهای فایل

این مورد احتمالاً مشکل‌ساز نباشد ولی هنوز هم ارزش بررسی دارد. در دایرکتوری وردپرس مجوزهای پوشه‌ها و پرونده‌ها باید 755 یا 644 باشد. تنظیم مجوز بر روی هر چیز دیگری ممکن است باعث ایجاد مشکلاتی از جمله خطای 500 در سرور داخلی شود.

دایرکتوری اصلی خود را در یک سرویس‌گیرنده FTP باز کنید. بسیاری از سرویس‌گیرنده‌ها از جمله FileZilla، دارای برگه مجوزهایی هستند که می‌توانید از آن‌ها استفاده کنید تا به سرعت مجوزهای مربوط به هر پرونده و پوشه موجود در دایرکتوری اصلی خود را بررسی کنید. اطمینان حاصل کنید که این موارد غیر از 755 یا 644 نباشند.

رفع خطای 500 سرور داخلی
بررسی مجوزهای فایل
  • بارگذاری پوشه‌های wp-content  و wp-includes تازه در سایت شما

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

پرونده‌ها را از پرونده ZIP استخراج کرده و پوشه استخراج‌شده را باز کنید. دایرکتوری اصلی سایت خود را در یک سرویس‌گیرنده FTP باز کنید، و wp-content  و wp-includes را از نسخه تازه وردپرس به دایرکتوری خود بارگذاری کرده و بر روی نسخه های قدیمی‌تر رونویسی کنید. سرویس‌گیرنده و سایت خود را به‌روز کنید. اگر خطا از بین برود احتمالاً یک فایل اصلی شما خرابی ایجاد کرده است. اگر هنوز خطا مشاهده می‌کنید، گزینه دیگری بجز تماس با میزبانی هاست خود را ندارید .

رفع خطای 500
بارگزاری پوشه‌های wp-content و wp-includes تازه‌درسایت شما
  • تماس با میزبان‌هاستینگ

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

کلام آخر:

خطای 500 سرور داخلی یک مسئله ناامید کننده است زیرا همیشه دلیل روشن یا راه‌حل روشنی ندارد. همان‌طور که آموختید نیاز به عیب‌یابی زیادی دارد، اما امیدوارم که این مراحل حداقل باعث کاهش سختی کار شده باشد.

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