رفع مشکل خطای داخلی سرور در وردپرس (خطای 500)

2014 روز پیش

اگه مدتی هست که از وردپرس استفاده می کنید شاید حداقل یک‌بار با خطای 500 یا خطای داخلی سرور(HTTP 500 Internal Server Error) مواجه شدید! اگه نه شاید در آینده با این مشکل مواجه بشید. این خطا یکی از عمده خطاهایی است که ممکنه کاربران تازه کار وردپرس رو به دردسر بندازه. در این حالت معمولا عدم اطلاع از مشکل به‌وجود اومده منجر به اشتباهاتی میشه که مدیران وب‌سایت‌ها انجام میدن و یکی از اون‌ حذف و نصب مکرر وردپرس، در نتیجه عدم رفع مشکل و دل شکستگی از وردپرس میشه! همیشه درک درست شرایط و دانستن آنچه اتفاق افتاده منجر به کاهش زمان تلف شده برای رفع مشکل خواهد شد. خطاهایی همچون عدم امکان اتصال به دیتابیس(error establishing database connection) یا صفحه سفید مرگ وردپرس(white screen of death) از جمله مشکلات مکرری هست که معمولا برای کاربران این سیستم مدیریت محتوا پیش می آید که به راحتی با دانستن راه‌حل می توان آن‌ها را نیز حل کرد. در این مقاله با بررسی تمام حالت های ممکن برای خطای داخلی سرور یا کد خطای 500 (Internal Server Error)، راه حل مناسب را برای حل این مشکل به شما آموزش خواهم داد. حتی اگر این اتفاق برای شما هنوز رخ نداده پیشنهاد می‌کنم با صبر این مقاله را تا انتها مطالعه کنید تا آمادگی خود را در شرایط خاص برای رفع ایراد بالا ببرید.خطای داخلی سرور(Internal Server Error)

چرا خطای داخلی سرور(Internal Server Error) رخ می‌دهد؟

این خطا ارتباطی به وردپرس نداشته و ممکن است برای هر سیستم مدیریت محتوای دیگر و یا کدی خاص رخ دهد. با توجه به ماهیت این خطا، هیچ پیامی به توسعه دهنده‌گان نمایش داده نمی‌شود! سوال درباره چگونگی رفع این خطا مشابه درخواست از دکتر برای رفع بیماری بدون هیچ نشانه ای است! به طور معمول این خطا در وردپرس به دلیل مشکل در یک پوسته یا افزونه خاص است. البته این امکان نیز وجود دارد که فایل .htaccess مشکل را ایجاد نموده و یا سرور با مشکل کمبود حافظه پی‌اچ‌پی(PHP memory limit) مواجه باشد. لازم به ذکر است که طبق بازخوردهای گرفته شده خطای داخلی سرور معمولا هنگام ورود به پنل مدیریت وردپرس رخ داده و وب‌سایت در حالت عادی بدون مشکل نمایش داده می‌شود.
حالا حالت های ممکن را با هم مرور کرده و برای رفع خطا سعی خودمان را می‌کنیم

چک کردن خطاهای احتمالی در .htaccess

نخستین موردی که در مواجهه با خطای داخلی سرور (Internal Server Error) باید چک شود احتمال بروز مشکل از جانب فایل .htaccess موجود در پوشه اصلی وب‌سایت است. برای رفع این مورد شما دسترسی سرور به این فایل را قطع کنید که می توان این عمل را با تغییر نام فایل .htaccess به نامی هم‌چون .htaccess_old استفاده کرد. شما می‌توانید از طریق FTP به سرور خود متصل شده و نام این فایل را تغییر دهید. هم‌چنین امکان تغییر نام در کنترل پنل هاست شما از طریق File Manager نیز وجود دارد. فایل .htaccess را می توانید در همان پوشه اصلی، جایی که پوشه‌هایی هم‌چون wp-content, wp-admin و wp-includesوجود دارند بیابید.
پس از تغییر نام فایل .htaccess دوباره برای ورود به سایت تلاش کنید. اگر مشکل رفع شده به افتخار خودتان آرام دست بزنید! هنوز کار به اتمام نرسیده و شما باید در پنل مدیریت وردپرس از بخش تنظیمات وارد پیوند یکتا(Settings » Permalinks) شده و بر روی ذخیره کنید تا تنظیمات مربوط به پیوندهای شما مجددا در فایل .htaccess جدیدی ساخته شود. درصورتی که این عمل را انجام ندهید امکان داره که با خطای 404 هنگام مشاهده نوشته‌ها یا برگه‌ها مواجه بشید!
اگر مشکل شما با تغییر نام فایل .htaccess هم‌چنان پابرجاست پس ادامه مقاله را دنبال کنید.

افزایش محدودیت حافظه پی‌اچ‌پی (PHP memory limit)

گاهی استفاده بیش از حد یکی از عناصر وردپرس یا کمبود منابع تخصیص داده شده توسط مدیریت هاست که به نام محدودیت حافظه پی‌اچ‌پی (PHP memory limit) شناخته میشه، منجر به بروز خطای داخلی سرور (Internal Server Error) میشه.
اگر تنها هنگام ورود به پنل مدیریت وردپرس با خطای داخلی سرور (Internal Server Error) مواجه شدید به روش زیر این مشکل رو مرتفع سازید.
یک فایل جدید به نام php.ini ساخته و عبارات زیر را در آن کپی کنید.

suhosin.simulation = On
extension=pdo.so
extension=pdo_mysql.so
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
memory=64MB

سپس فایل را ذخیره کرده، سپس آن را توسط FTP یا FileManager به پوشه /wp-admin/ موجود در هاست خود انتقال دهید.
مشکل درصد زیادی از کاربران با این روش خواهد شد.
اگر مشکل شما برطرف شد به خاطر داشته باشید که این روش موقتی است. دلیل این حرف استفاده بیش از حد منابع سیستم است که می تواند به وسیله کدنویسی ضعیف و بی برنامه در یک افزونه یا وجود مشکل در توابع پوسته به‌وجود اومده باشه.
پیشنهاد ما به شما در این مواقع تماس و درخواست صورت عملیات‌ها(logs) از مدیریت سرور و درخواست کمک برای رفع دائمی این مشکل است.
اگر مشکل شما پس از افزایش محدودیت حافظه پی‌اچ‌پی (PHP memory limit) هم‌چنان پابرجاست پس شما در ادامه راه سخت تری را برای رفع ایراد روبروی خود دارید. ولی نگران نباشید و ادامه مقاله را دنبال کنید.

غیرفعال سازی تمام افزونه‌ها

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

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

آپلود مجدد هسته وردپرس

اگر با غیرفعال‌سازی افزونه‌ها مشکل برطرف نشد شما می‌توانید پوشه‌هایwp-admin و wp-includesرا با نسخه جدید آن را جایگزین کنید. با این کار اطلاعات شما پاک نخواهند شد و تنها در صورت وجود مشکل از جانب هسته وردپرس، مشکل برطرف می‌گردد.

درخواست از شرکت ارائه دهنده هاست!

Internal Server Errorاگر هیچ کدام از روش‌های بالا کارساز نبود، وقت آن می‌رسد که با مدیریت سرور خود تماس گرفته و مشکل را به اطلاعشان برسانید. آن‌ها با دسترسی بیشتری که دارند صورت عملیات‌ها(logs) را بررسی و متوجه مشکل می‌شوند.
این‌ها تمام روش‌های ممکن برای رفع مشکل خطای داخلی سرور (Internal Server Error) در وردپرس بود. در صورتی که با یکی از روش‌های بالا مشکل شما برطرف شده، لطفا تجربه خود و روشی که برای شما مفید بوده را در دیدگاه‌ها بیان کنید تا سایرین هم از این تجربیات استفاده نمایند. تجربه شما می تواند شامل تعداد دفعات بروز این مشکل در گذشته، روش حل آن باشد. در صورتی که شما با روشی به جز روش‌های ذکر شده، مشکل خطای داخلی سرور را برطرف نموده‌اید، لطفا از طریق دیدگاه ما را در جریان این روش قرار داده تا این مقاله کامل شود.
در انتها امیدوارم تونسته باشم قدمی رو جلوی راه شما قرار بدم تا راحت‌تر زندگی کنید…

  1. پیام پاسخ

    با سلام . ممنون از مقاله ی عالیتون . توی سایت وردپرسی من وقتی که کاربر میخواد پرداخت خریدش رو انجام بده به درگاه پرداخت وصل نمیشه و این ارور Internal Server Error ظاهر میشه . ممنون میشم اگه راهنمایی بفرمایید .

  2. خدادوست پاسخ

    عالی بود. ممنون که زحمت کشیدید فقط مشکل ما از سرور نبود. ولی در کل مفید بود.

  3. ونوکس پاسخ

    سلام من یه مشکلی دارم که واسم عجیبه حدودا یکی دو روز میشه این مشکل رخ داده
    مشکل من اینه که توی وبمستر تولز وارد میشم خطای عدم دسترسی به سرور رو میبینم و وقتی با سرویس های تست لود سایت از جمله جی میتریکس هم تست انجام میدم میگه که ای پی های هاست خارج از کشور شما مسدود هستند یا همچنین چیزی !
    به هاستینگ تیکت دادم میگن مشکلی از لحاظ محدودیت وجود نداره حالا موندم چیکار کنم برای رفع این مشکل خواهش میکنم کمکم کنید
    منتظر پاسخ توی ایمیل هستم ممنونم
    سایتم همینه که ادرسشو فرستادم

    • جواد عوض زاده

      سلام
      از جای مطمئن‌تری هاست بگیرید که مسائل این جنین ابتدایی اذیتتون نکته

  4. سوران مصطفی سرباز پاسخ

    میخوام حساب کاربریم رادر سایت تک بت شارژکنم ولی هرچقدر سعی میکنم شارژ نمیشود