چگونه خطای سرور داخلی وردپرس 500 را برطرف کنیم
چگونه خطای سرور داخلی وردپرس 500 را برطرف کنیم
بیشتر ما، اعم از توسعه دهندگان، طراحان و یا حتی کاربران نهایی مجبور بوده ایم حداقل یک مورد را در طول زندگی خود تحمل کنیم. یعنی فرآیند دردناک دریافت خطای سرور داخلی و تلاش برای رفع آن. بسیاری از مردم اهمیتی برای دانستن بیشتر ندارند – آنها فقط می خواهند آن را تعمیر کنند. اما اگر سعی نکنید حداقل آن را درک کنید، بیشتر اوقات به این سرنوشت دچار خواهید شد. خطای سرور داخلی 500 بسیار مهم است زیرا تمام فرآیندها را به طور کامل متوقف می کند و می تواند کل سایت شما را خراب کند. بنابراین، اگر بخواهیم از شر آن خلاص شویم، باید ابتدا معنی آن را بهتر درک کنیم.
در این مقاله میخواهم اصول اولیه معنای این خطا را توضیح دهم، چگونه میتوانید مشکل را شناسایی کنید و البته چگونه آن را برطرف کنید. اما قبل از شروع، میخواهم شما را از طریق خطاهای http (سایت) مختلفی که وجود دارد و معنی بالقوه آنها را راهنمایی کنم. اگر ترجیح می دهید می توانید به نحوه رفع خطای وردپرس 500 بروید.
کدهای خطا و وضعیت HTTP رایج
اولین چیزها – من قصد دارم توضیح دهم که این خطاها واقعاً چه معنایی دارند. در حال حاضر فهرستی از وضعیت و خطاهای HTTP که برای عیب یابی بهتر یک موقعیت قابل دسترسی است. این خطاها معمولاً به انواع تقسیم می شوند. بنابراین، برای کوتاه کردن این موضوع، مهمترین خطاها و کدهای وضعیت اطلاعاتی را که در حین کار با سایت وردپرس خود خواهید یافت، پوشش خواهیم داد.
پاسخ 100x (وضعیت)
این نوع پاسخ مستقیماً توسط وب سرور داده می شود. بسته به شرکت میزبان شما، پاسخ می تواند توسط آپاچی، nginx یا هر وب سرور دیگری که شرکت استفاده می کند ارائه شود. این نوع پاسخ با خطا همراه نیست. معمولاً برای نشان دادن برقراری ارتباط استفاده میشوند. آنها کدهای پاسخ وضعیت به اتصالات هستند.
پاسخ 200 برابری (موفقیت)
موفق ها همان چیزی هستند که من آنها را می نامم. این نوع پاسخ همیشه نشاندهنده یک موفقیت است. به این معنی است که یا سرور با موفقیت با شما ارتباط برقرار کرده است، یا اینکه منابع درخواست شده به درستی داده شدهاند یا اینکه یک اتصال پراکسی برقرار شده است.
متداولترین کد موفق به عنوان OK 200 شناخته میشود. اگر از ابزار تست سرعت وردپرس، در Pingdom Tools بگویید و شما در حال تلاش برای پیدا کردن FTTB هستید (برای اولین بار بایت کردن). پاسخ 200 OK همیشه به اولین درخواست ارائه شده داده می شود.
پاسخ 300x (تغییر مسیرها)
بچه های تغییر مسیر. اگر پیوند داده شده در حال تغییر مسیر باشد، همیشه به این کدها ارجاع داده می شود. 300 کد وضعیت نشان دهنده تغییر مسیر موفقیت آمیز است و همچنین خطا در نظر گرفته نمی شود.
مثلاً یک سایت SSL (HTTPS) دارید و همچنین دسترسی مستقیم به HTTP (غیر ایمن) دارید و میخواهید همه را به نسخه HTTPS سایت خود هدایت کنید. میتوانید برای همه درخواستهای ارسالی از HTTP برای رفتن به HTTPS یک تغییر مسیر ایجاد کنید. اگر به طور تصادفی سعی کنید با HTTP وارد سایت خود شوید، مرورگر شما یک پاسخ 300 دریافت می کند که نشان دهنده هدایت مجدد به نسخه HTTPS است.
یک مثال رایج دیگر که ممکن است با آن آشنا باشید، تغییر مسیرهای سایت برای SEO است. شاید پست ها یا صفحات قدیمی را حذف کرده باشید. با کمک افزونهای مانند Yoast SEO میتوانید این موارد را تغییر مسیر دهید. به صفحات جدیدتر و مرتبط تر یا اگر روی بهروزرسانی کار میکنید و میخواهید کاربران را برای مدتی به صفحه دیگری هدایت کنید، از تغییر مسیر موقت 307 استفاده کنید.
پاسخ 400x (خطاهای مشتری)
خطاهای معروف مشتری. این نوع خطاها شامل مشکلاتی در مرورگر شما هستند. به طور معمول، قادر به بارگیری یک دارایی خاص نیست (شایع ترین خطای 404 شناخته شده است). اینها کدهای خطایی هستند که شدید در نظر گرفته نمی شوند.
اگر بخواهید به تصویری که در سایت خود وجود ندارد دسترسی پیدا کنید، ممکن است همان خطا نشان داده شود. به عنوان مثال، ممکن است بخواهید از تغییر مسیر 410 برای اطلاع دادن به موتورهای جستجو که محتوا برای همیشه حذف شده است استفاده کنید، یا اگر صفحه ای را به دلایل قانونی (مانند درخواست DMCA) از دسترس خارج کرده اید، از 451 استفاده کنید.
پاسخ 500x (خطاهای سرور)
و اکنون به قهرمان اصلی خود رسیده ایم. 500 خطا همانطور که می بینید، این خطاهای مهم هستند و همیشه به خود سرور مربوط می شوند. خطاهای سرور مهم هستند زیرا می توانند به طور موثر وب سایت شما را خراب کنند. از میان این خطاها، مهمترین آنها عبارتند از:
- یک سرویس 503 در دسترس نیست
- یک خطای دروازه بد 502
- یک خطای 500 سرور داخلی
بیایید 3 مورد از آنها را به ترتیب اهمیت بررسی کنیم.
سرویس 503 در دسترس نیست
خطرترین مورد این است که سرویس 503 در دسترس نیست. اگر این خطا نشان داده شد، مشکل منبع در وب سرور دارید. تقریباً همیشه وقتی سرور شما بیش از حد بارگیری میشود نشان داده میشود. به زبان ساده، اگر این خطا را مشاهده کردید، بدانید که موقت است و به طور مستقیم به مرتبط است. > ترافیک بیش از حد و این بارگیری بیش از حد CPU است. هر زمان که CPU و خود سرور وب نتوانند اتصالات ورودی بیشتری را پردازش کنند زیرا به 100٪ استفاده از CPU رسیده است، این مورد را مشاهده خواهید کرد. پنجره بازشو خطا.
این مشکل را میتوانید با جابجایی به یک وبسرور بهتر (مثلاً از Apache به Nginx) یا با پیادهسازی کش کردن WordPress برطرف کنید. افزونه در سایت شما.
502 Bad Gateway
این همان چیزی است که من آن را خطای پیکربندی اشتباه نامیدم. این خطا بدون دلیل نشان داده نمی شود. اگر تا به حال این خطا را داشته باشید، احتمالاً دلیل آن این است که شما کاری را انجام دادید و آن را اشتباه انجام دادید. این معمولاً زمانی اتفاق میافتد که افراد سعی میکنند پیکربندی Apache و PHP را تغییر دهند یا هنگام تلاش برای بهینهسازی nginx. دروازه بد خطایی است که تقریباً همیشه زمانی رخ می دهد که PHP FPM (مدیر فرآیند سریع) اتصال را قطع کند. یا به دلیل بهینه سازی تنظیمات اشتباه یا به دلیل از کار افتادن فرآیند. این باعث می شود وب سرور با دروازه بد
پاسخ دهد
ساده ترین راه برای رفع این خطا این است که پیکربندی PHP-FPM خود را دوباره بررسی کنید زیرا محتمل ترین دلیل این خطا است. این بیشتر در سمت Nginx از Apache اتفاق می افتد و تقریباً هرگز در سرویس های میزبانی ارائه شده توسط cPanel یا Plesk اتفاق نمی افتد. آن دو پانل آخر دارای محافظ هایی هستند تا از خطای پیکربندی نادرست جلوگیری کنند. اما، هنگام مدیریت VPS خودتان، اغلب این اتفاق می افتد.
در این مورد به دنبال کمک بیشتری هستید؟ راهنمای ما را در مورد نحوه رفع خطای دروازه بد 502 دنبال کنید.
500 خطای داخلی سرور
پسر بزرگ بد خطاها. خطای سرور داخلی 500 بدتر از همه آنهاست، در درجه اول به این دلیل که یک خطای عمومی است. اگر دانش کافی در مورد نحوه برخورد با آن ندارید، ممکن است دردسر واقعی باشد زیرا می تواند کل سایت شما را خراب کند. خطای دروازه بد 502 نیز سایت شما را خراب می کند، اما تشخیص و رفع آن آسان تر است. همانطور که گفته شد، تقریبا همیشه به پیکربندی FPM مربوط می شود.
دلایل خطای 500 سرور داخلی و نحوه رفع آنها
اولین چیزی که باید در مورد خطای 500 درک کرد این است که می تواند توسط تعدادی از عوامل مختلف ایجاد شود که تقریباً همیشه به شکست در اجرای کد مربوط می شود. به جای تلاش برای تشخیص همه چیز به یکباره، فهرستی از خطاها را بر اساس نوع مشکل و کاری که انجام میدادید به شما ارائه میدهم.
- با انتقال یک سایت قدیمی به میزبانی جدیدتر
- یک خطا در htaccess. در پیکربندی آپاچی
- یک خطا در اجرای کد PHP
موارد کمتر رایج دیگری وجود دارد که میتواند خطای سرور داخلی 500 ایجاد کند، اما برای سادگی و قابلیت استفاده این مقاله، بر روی این سه مورد تمرکز میکنم.
1. انتقال یک سایت قدیمی به میزبانی جدیدتر
راههای مختلفی وجود دارد که این خطا میتواند نشان داده شود، اما تقریباً همیشه به نظر میرسد که مربوط به نسخه PHP است که به وب سرور شما متصل است. اگر سایت فعلی یا افزونهها از نسخه فعلی پشتیبانی نمیکنند، نسخههای جدیدتر PHP میتوانند یک خطای سرور داخلی 500 فوری ایجاد کنند.
این خطا کلاسیک است، برای مثال، زمانی که سایت خود را از یک هاست متوسط با نسخه قدیمی PHP به یک میزبان جدیدتر منتقل می کنید که فقط نسخه های جدیدتر (7.0 و بالاتر) را می پذیرد. اگر سایت شما اخیراً به روز نشده است، ممکن است یک افزونه قدیمی مشکل ایجاد کند. من این را “خطای سرور داخلی مهاجرت” می نامم زیرا تقریباً همیشه هنگام مهاجرت یک سایت اتفاق می افتد.
راه حل
بهترین راه برای رفع این خطای وحشتناک زمانی که سخت تلاش می کنید سایت وردپرس خود را مهاجرت کنید برای میزبانی جدید، یک کپی کامل از افزونه ها و موضوع سایت خود تهیه کنید. پس از انجام این کار، لطفاً همه افزونه ها را از سایت خود حذف کنید و دوباره امتحان کنید. اگر خطا برطرف شود، تقریباً تضمین می شود که خطا توسط نسخه جدیدتر PHP در هاست شما ایجاد شده است که به سادگی از اجرای کد در افزونه قدیمی شما خودداری می کند. با آپلود مجدد یک افزونه در یک زمان، به راحتی می توانید متوجه شوید که کدام یک باعث این مشکل شده است.
این خطاها تقریباً همیشه هنگام انتقال سایتهای قدیمیتر که با PHP 5.4 و 5.6 به میزبانی جدیدتر با PHP 7.0، 7.1 یا 7.2 منتقل میشوند، خود را نشان میدهند.
همین مورد در مورد طرح زمینه شما نیز صدق می کند. از آنجایی که تم ها می توانند کد PHP اضافی را در فایل های functions.php، single و page.php پیاده سازی کنند و انجام می دهند. به احتمال زیاد یک تم قدیمی بدون بهروزرسانی میتواند پس از انتقال به میزبانی با نسخه جدیدتر PHP، سایت شما را خراب کند، این وضعیت مایه تاسف است زیرا تنها راه حل این مشکل تغییر موضوع و بازسازی سایت شما است. این سناریوی بدتر است.
2. خطای پیکربندی آپاچی .htaccess
فرض کنید در حال پیکربندی یک افزونه بودید و ناگهان همه چیز خراب می شود. اگر در حین پیکربندی با خطای 500 سرور داخلی مواجه شدید، به عنوان مثال یک افزونه کش یا هر افزونه مربوط به بهینه سازی، باید بررسی کنید که آیا افزونه کد اضافی را به فایل htaccess. شما اضافه کرده است یا خیر.
از آنجایی که آپاچی را می توان با پیکربندی توابع موجود در فایل htaccess. (که تقریباً همیشه پنهان است) در زمان واقعی تغییر داد، پیکربندی نامناسب میتواند سایت شما را خراب کند.
راه حل
راه حل این مشکل این است که یا از طریق FTP به سایت خود دسترسی داشته باشید و فایل htaccess. خود را تغییر دهید یا با ویرایش مستقیم، مثلاً با اکسپلورر فایل در cPanel یا Plesk.
اگر نمی دانید چگونه افزونه ساخته شده را برگردانید و نیاز دارید که سایت خود را دوباره راه اندازی کنید، از محتویات موجود به عنوان فایل متنی کپی کنید. این را به عنوان پشتیبان خود ذخیره کنید. سپس کل .htaccess را با کد زیر جایگزین کنید:
# وردپرس را شروع کنیدبازنویسی موتور روشن است RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule. /index.php [L] # پایان وردپرس
این فایل پیشفرض WordPress .htaccess است. باید با هر سایتی کار کند. بنابراین، اگر ناامید هستید و نمی دانید کدام قسمت را حذف کنید، فقط همه چیز را حذف کنید و این کد را بچسبانید. فوراً شما را نجات می دهد. بعداً می توانید افزونه را حذف کنید یا دوباره سعی کنید آن را پیکربندی کنید. اکنون راهی برای نجات خود از این خطای فاجعه بار می دانید. حداقل اگر مربوط به htaccess.
باشد
اگر نمیدانید که مربوط به htaccess است یا این خطا بدون لمس هیچ افزونهای ظاهر میشود، آن را ایمن بازی کنید. فقط محتویات htaccess خود را کپی کنید و کد بالا را برای امتحان و تشخیص کپی کنید. اگر با این کار مشکل حل نشد، htaccess. را همانطور که هست رها کنید و سپس پیشنهاد بعدی را امتحان کنید.
3. خطای اجرای کد PHP
این نوع خطاها رایجتر از آن چیزی هستند که فکر میکنید و معمولاً در صورتی رخ میدهند که یک افزونه کد نامعتبر را اجرا کند. رایج ترین روش اجرای کد نامعتبر زمانی است که سعی می کنید دستورالعمل های منسوخ شده را اجرا کنید. شاید در حال تلاش برای اجرای یک افزونه قدیمی هستید که فقط برای کار با PHP 5.4 یا 5.6 با PHP 7.0 یا نسخه های جدیدتر طراحی شده است. عملکردهای منسوخ و نامعتبر یک خطای سرور داخلی ایجاد می کند که تنها با فعال کردن حالت اشکال زدایی WP
قابل تشخیص است.
wp_debug را فعال کنید
حالت اشکالزدایی وردپرس جزئیات گستردهای در مورد خطای ایجاد شده و توقف اجرا به شما میدهد. روشی که ما آن را فعال می کنیم با تغییر مقدار “false” به “true” در wp_debug در داخل فایل wp-config.php در پوشه ریشه سایت شما است.
اگر از Plesk یا cPanel استفاده میکنید، میتوانید این کار را با تغییر آن مقدار با استفاده از File Explorer و ویرایش wp-config.php انجام دهید. همچنین میتوانید این راهنمای رفع اشکال توسط Blogvault را برای جزئیات بیشتر دنبال کنید.< /p>
پس از ویرایش فایل، میتوانید خطای واقعی ایجاد شده را مشاهده کنید که اجرای آن متوقف شده است. این خطا همچنین مسیر و فایلی را که در آن رخ داده است را نشان میدهد، بنابراین به راحتی میتوان حدس زد که چه افزونهای باعث آن شده است. با غیرفعال کردن آن میتوانیم خطا را رد کنیم و بعداً افزونه را بهروزرسانی کنیم. یا بسته به موقعیت، آن را حذف کنید.
راه حل
اکثریت قریب به اتفاق موارد خطای سرور داخلی 500 شامل نسخهها یا افزونههای طرح زمینه قدیمیتر است. با تغییر تم خود به هر تم استاندارد WP، می توانید دوباره به سایت خود دسترسی پیدا کنید. غیرفعال کردن افزونه های متناقض نیز دسترسی شما را به داشبورد باز می گرداند. اگر با موقعیتی مواجه شدید که در آن موضوع شما مسئول شکستن سایت است، بهترین راه برای رفع آن، ایجاد یک فایل زیپ از موضوع مذکور از پوشه تم wp-content/themes/yourtheme< است. /strong> سپس آن را از سایت خود حذف کنید. با این کار خطا حذف می شود تا بتوانید دوباره به سایت خود دسترسی پیدا کنید. سپس می توانید آن را دوباره آپلود کرده و بدون فعال سازی آن را به روز کنید. شما می توانید همین کار را با افزونه ها انجام دهید.
متداولترین موقعیتها برای 500 خطای سرور داخلی را میتوان با بهروزرسانی برطرف کرد. در مواردی که افزونه/موضوع مذکور بهروزرسانی در دسترس ندارد، میتوانید به نسخه قدیمیتر PHP تغییر دهید. اما بدانید که این یک راه حل کوتاه مدت است. نسخههای جدیدتر PHP پایدار میشوند و نسخههای قدیمیتر مرتباً منسوخ میشوند. دیر یا زود سایت شماقطعاً از کار می افتد. بهترین رویکرد همیشه بهروزرسانی یا حذف/جایگزینی افزونههای مورد نظر خواهد بود.
همیشه به یاد داشته باشید، بهتر است از کنترل آسیب در آینده جلوگیری و به روز رسانی شود.
پیوست کردن راهنمای ما در مورد خطاهای سرور داخلی وردپرس 500
یک خطای سرور داخلی وردپرس 500 می تواند دردسر واقعی باشد. اما در بیشتر موارد، آنها را می توان به سادگی با حذف/به روز رسانی بخش های متناقض سایت شما تشخیص و رفع کرد. اگرچه ممکن است شرایطی وجود داشته باشد که این خطاها خود را خارج از حد معمول نشان دهند (مثلاً زمانی که در حال توسعه یک افزونه هستید)، این فراتر از هدف این مقاله است.
برای اکثریت قریب به اتفاق افراد، پیروی از توصیههای بالا باید مشکل شما را برطرف کند. به یاد داشته باشید که wp-debug بهترین دوست شماست و همیشه مراحل را با دقت دنبال کنید. در کمترین زمان سایت خود را آنلاین خواهید کرد.
سوال دیگری دارید؟ یا نکاتی برای مقابله با خطای سرور داخلی وردپرس 500؟ به من اطلاع دهید!