نحوه رفع خطای cURL 28: زمان اتصال پس از X میلی‌ثانیه به‌پایان رسید

Avatar
نویسنده: علیرضا برزودی
سه‌شنبه 13 دی 1401
مطالعه: ۷ دقیقه ۰ نظر ۱۳۶۲ بازدید

آیا تاکنون با «خطای cURL 28 یا خطای اتمام زمان اتصال» در وب‌سایت وردپرسی خود مواجه شده‌اید؟ خطای cURL 28 مشکلی رایج در WordPress REST API است که احتمال دارد بر عملکرد وب‌سایتتان تأثیر بگذارد. در این مطلب از بلاگ پارس پک، قصد داریم شما را با cURL در وردپرس و نحوه رفع خطای cURL 28 آشنا کنیم؛ پس تا پایان مطلب همراه ما باشید. 

پشتیبانی وردپرس

cURL در وردپرس چیست؟

کلاینت URL که به‌عنوان cURL شناخته می‌شود، نوعی ابزار خط فرمان است که داده‌ها را ازطریق URLها به سرور و از آن‌جا به بخش‌های دیگر منتقل می‌کند. وردپرس از cURL برای مدیریت درخواست‌های API استفاده می‌کند. cURL درخواست‌های API را مدیریت و به وب‌سایت کمک می‌کند تا به سرور و پایگاه داده مربوط به خود دسترسی داشته باشد و داده‌ها را منتقل کند. 

کتابخانه cURL نقش مهمی در نحوه عملکرد وردپرس در پشتِ‌صحنه ایفا می‌کند. درواقع، اگر به‌درستی پیکربندی نشده باشد، وب‌سایت وردپرس شما به‌خوبی کار نخواهد کرد. برای انتقال داده به مدت‌زمان مشخصی نیاز است؛ یعنی اگر زمان پردازش و پاسخ به درخواست بیش از حد معمول طول بکشد، «خطای cURL 28: زمان اتصال تمام شد» نمایش داده می‌شود. شما معمولاً این پیام را در بخش سلامت وب‌سایت داشبورد وردپرستان مشاهده خواهید کرد. 

۲۷ آسیب‌پذیری جدید کشف‌شده در افزونه‌های وردپرس را در مقاله زیر بخوانید.

آسیب‌پذیری‌های افزونه‌های وردپرس (۲۰۲۲)

چه عاملی باعث بروز خطای cURL 28 در وردپرس می‌شود؟

به‌موقع پاسخ‌‌ندادن به درخواست داده سرور باعث ایجاد خطای cURL 28 در وردپرس می‌شود. همان‌طور‌که گفتیم، وردپرس از REST API (یکی از تکنیک‌های برنامه‌نویسی) برای ارسال و دریافت درخواست داده استفاده می‌کند. اگر زمان هریک از این درخواست‌ها تمام شود، پیام «REST API encountered in error» را مشاهده خواهید کرد. با کلیک روی گزینه Expande، جزئیات بیشتری از خطا مشاهده خواهید کرد که به‌صورت زیر است:

خطای cURL 28: عملیات پس از X میلی‌ثانیه با دریافت X بایت به‌پایان رسید (http_request_failed). علاوه‌بر‌این، ممکن است پیام «Your site could not complete a loopback request» را مشاهده کنید. معنای خطای یادشده این است: «درخواست بازگشت به وب‌سایت شما ناموفق بود.» این یعنی ویژگی‌های متکی‌بر آن‌ها در‌حال‌حاضر مطابق انتظارات کار نمی‌کنند. 

عوامل متعددی در به‌پایان‌رسیدن مدت‌زمان مجاز CURL مؤثرند؛ ازجمله:

  • افزونه فایروال وردپرس ممکن است درخواست REST API را با عنوان فعالیت مشکوک در نظر بگیرید و در‌نتیجه، درخواست‌های آن را مسدود کند.
  • اگر سرور DNS به‌درستی کار نکند، ممکن است درخواست‌های HTTP نیز درست ارسال نشوند و باعث خطای cURL timeout در وردپرس شود.
  • اگر سرور هاستینگ وردپرس به‌درستی پیکربندی نشده باشد، این احتمال وجود دارد که برخی از درخواست‌ها به‌درستی اجرا نشوند و متوقف شوند. 
  • برخی از افزونه‌های وردپرس می‌توانند این خطا را ایجاد کنند. این افزونه‌ها ممکن است حاوی کدها یا اسکریپت‌هایی باشند که در فرایند انتقال داده cURL اختلال ایجاد می‌کنند.

خرید هاست وردپرس

نحوه رفع خطای cURL 28

۱. فایروال وردپرس را به‌طورموقت غیرفعال کنید

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

۲. همه افزونه‌های وردپرس را غیرفعال کنید

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

برای انجام این کار، باید به بخش «پلاگین‌ها» و سپس «پلاگین‌های نصب‌شده» بروید. تمام پلاگین‌ها را انتخاب کنید. سپس‌، روی گزینه اقدامات جمعی کلیک و «غیرفعال‌کردن» را انتخاب و درادامه روی دکمه «اِعمال» کلیک کنید. مجدداً گزارش سلامت را بررسی کنید تا ببینید آیا مشکل رفع شده است یا خیر. اگر با این کار مشکل حل شد، پلاگین‌های خود را می‌توانید یکی‌یکی فعال کنید و بعد از فعال‌سازی هر پلاگین، گزارش سلامت وب‌سایت را بررسی کنید. این کار به شما کمک می‌کند تا افزونه‌ای که ممکن است باعث این مشکل شده، پیدا کنید و برای رفع مشکل از توسعه‌دهنده پلاگین کمک بگیرید.

۳. تنظیمات DNS را بررسی کنید

همان‌طورکه پیش‌از‌این گفتیم، اگر تنظیمات DNS سرور شما به‌درستی انجام نشده باشد، در پردازش درخواست‌های HTTP ازطریق وردپرس مشکل به‌وجود می‌آید و به خطای cURL 28 منجر می‌شود. برای بررسی این موضوع، باید با شرکت ارائه‌دهنده هاست خود در ارتباط باشید. 

۴. مطمئن شوید که سرور میزبان شما از جدیدترین نرم‌افزار استفاده می‌کند

مرحله بعدی این است که مطمئن شوید سرور میزبان وردپرس شما از جدیدترین نسخه‌های PHP و کتابخانه cURL و OpenSSL استفاده می‌کند. این موضوع را ازطریق تب اطلاعات سیستم در بخش ابزارها و سلامت وب‌سایت می‌توانید بررسی کنید.

به تب «اطلاعات (Info)» بروید و بخش «سرور» را انتخاب کنید. از این‌جا می‌توانید اطلاعات مربوط به نرم‌افزار نصب‌شده روی سرور میزبان وردپرس خود را دریافت کنید. در حالت ایدئال، سرور شما باید از PHP 7.4.13 یا جدیدتر و curl 7.74.0 یا جدیدتر و OpenSSL 1.1.1 یا جدیدتر استفاده کند. اگر این‌طور نیست، باید با شرکت میزبان وردپرس خود تماس بگیرید و از آن بخواهید که نرم‌افزار حساب میزبانی‌تان را به‌روز کند.

چطور به کمک وردپرس سایت خودمان را طراحی کنیم؟ در مقاله زیر بخوانید.

آموزش طراحی سایت با وردپرس

۵. مطمئن شوید SSL وب‌سایت به‌درستی کار می‌کند

اگر وب‌سایت وردپرستان از HTTPS / SSL استفاده می‌کند؛ اما به‌درستی پیکربندی نشده است، احتمال دارد وب سرور شما درخواست‌های ناامن cURL را مسدود کند. به‌طورمشابه، اگر وب‌سایت وردپرس شما از HTTPS / SSL استفاده نمی‌کند؛ اما با استفاده از URL HTTPs درخواست API ارسال کرده است، درخواست انجام نخواهد شد و ممکن است به‌جای آن خطای cURL زیر را مشاهده کنید:

خطای cURL 7: اتصال به پورت لوکال‌هاست 443 انجام نشد: اتصال رد شد (http_request_failed) – (cURL error 7: Failed to connect to localhost port 443: Connection refused (http_request_failed))

برای رفع این مشکل، از ارائه‌دهنده هاست خود می‌توانید بخواهید که گواهی SSL را مجدداً برای وب‌سایتتان نصب کند.

۶. از ارائه‌دهنده هاستینگ کمک بگیرید

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

جمع‌بندی

به‌طورخلاصه، خطای Curl: 28 (OPERATION_TIMEOUTED) زمانی اتفاق می‌افتد که وب‌سایت در تکمیل درخواست curl زمان زیادی صرف کند. در این مقاله از آموزش وردپرس، درباره خطای cURL 28 یا خطای اتمام زمان اتصال صحبت کردیم و نحوه رفع آن را توضیح دادیم. درصورت داشتن هرگونه ابهام یا سؤال، آن را ازطریق کامنت با ما مطرح کنید.

سؤالات متداول

۱. دلیل خطای cURL 28 چیست؟

این خطا به‌دلیل به‌پایان‌رسیدن مدت‌زمان مجاز برای پاسخ به درخواست در وردپرس ایجاد می‌شود.

۲. چگونه خطای cURL 28 را رفع کنیم؟

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


ارسال دیدگاه در وبلاگ پارس‌پک را مطالعه کرده و آن‌ها را می‌پذیرم.

با خدمات ابری پارس پک آشنا شوید

اولین ارائه‌دهنده خدمات رایانش ابری در ایران هستیم