اگر یک وردپرس کار هستید و روزانه زمان زیادی از وقت خود را در محیط وردپرس میگذرانید. ممکن است با ارور cURL Error 28: Connection Timed Out روبهرو شده باشید. این خطا یکی از مشکلات رایج در وردپرس است. ممکن است باعث ایجاد اختلال و ایرادهای پیشبینی نشده در سایت شما شود. ما در این مقاله به روشهای رفع این مشکل میپردازیم.
cURL چیست ?
cURL نرمافزاری است که در وردپرس و بسیاری از برنامههای وب دیگرمورد استفاده قرار میگیرد. این نرمافزار برای ارسال و دریافت درخواست دادهها از طریق URL کاربرد دارد. در واقع وردپرس برای پاسخگویی به درخواستهای API از این نرمافزار استفاده میکند. این یک extention برای زبان برنامهنویسی PHP است و هاست مورد نظر شما وظیفه محافظت و پشتیبانی از آن را دارد. اگر شما پیکربندی cURL را به درستی انجام ندهید، وب سایت وردپرسی شما با مشکل روبهرو میشود و ممکن است به درستی کار نکند.
ارور cURL Error 28: Connection Timed Out
شاید به دنبال دلیل وقوع این ارور باشید. لازم است بگوییم این اتفاق زمانی رخ میدهد که سرور شما به موقع و در مدت زمان درست به درخواستها پاسخ نمیدهد. وردپرس از یک روش برنامهنویسی بهنام REST API برای ارسال و دریافت درخواست دادهها استفاده میکند. اگر زمان پاسخگویی به این درخواستها تمام شود؛ شما در بخش سلامت سایت خود با عنوان REST API Encountered in Error روبهرو خواهید شد. زمانی که این خطا گسترش پیدا کند این پیام به شما نشان داده میشود:
Error: cURL error 28: Operation timed out after x milliseconds with x bytes received (http_request_failed)
در این شرایط شما ممکن است با یک خطای دیگر نیز روبهرو شوید که به شما میگوید: سایت شما به درخواست برگشت پاسخگو نیست یا قادر به تکمیل فرایند نیست. در چنین شرایطی احتمالا خطای مشابه به این خطا مشاهده خواهید کرد:
The loopback request to your site failed, this means features relying on them are not currently working as expected.
عوامل موثر
بخشی از عواملی که باعث از بین رفتن cURL وردپرس میشوند:
- برخی افزونههای فایروال وردپرس ممکن است مانع انجام درخواست REST API شوند. دلیل این اتفاق این است که این نوع افزونه REST API را یک فعالیت مشکوک تلقی میکند.
- مورد بعدی ممکن است بخاطر DNS سرور شما باشد. اگر DNS سرور شما به درستی کار نکند ممکن است باعث رخداد برخی موضوعات از جمله درخواستهای ناموفق HTTP و درنهایت خطای time out error در وردپرس میشود.
حل ارور cURL Error 28: Connection Timed Out
برای رفع این مشکل چند راه و روش برای شما وجود دارد که در صورت لزوم میتوانید از آنها استفاده کنید:
غیرفعال کردن فایروال
در مرحله اول اگر در وردپرس از یک firewall یا افزونه امنیتی استفاده میکنید، بهتر است برای مدتی آن را غیرفعال کنید و پس از آن به صفحه سلامت سایت خود بروید و بررسی کنید که مشکل حل شده است یا نه. اگر مشکل حل شده است باید ورودهای مربود به firewall وردپرس خود را بررسی کنید و حساب مسدود شده را بیابید. شما با انجام این کار منبع مسئله و مشکل را پیدا کردهاید و با توجه به آن میتوانید تنظیمات firewall را انجام دهید تا از مسدود شدن API های قانونی جلوگیری شود.
غیرفعال کردن افزونهها
دومین روش این است که هر افزونهای که روی وردپرس فعال دارید را غیرفعال کنید. زیرا این افزونهها نیز درخواستهای خود را ارسال میکنند و گاهی ممکن است به دلیل ارسال درخواستهای زیاد و پشتسر هم، شما خطای cURL مشاهده کنید. سادهترین راه برای پی بردن به این موضوع این است که به قسمت افزونههای نصب شده بروید و همه افزونهها را انتخاب و غیر فعال کنید. حالا به قسمت سلامت سایت خود مراجعه کنید و اگر سایت را بدون هیچ مشکلی مشاهده کردید، متوجه خواهید شد که مشکل از افزونهها بوده است. یکی یکی آنها را فعال کنید تا مشکل دوباره ایجاد شود و افزونهای که باعث بروز مشکل شده است را بیابید. سپس میتوانید درمورد افزونهای که باعث ایجاد این مشکل شده است، تحقیق کنید و مشکل بهوجود آمده را رفع کنید.
آپدیت بودن نسخههای PHP , cURL , OpenSSL
گام بعدی این است که مطمئن شوید سرور سایت شما از آخرین نسخه PHP و cURL و OpenSSL استفاده میکند. برای پی بردن به این موضوع از منوی وردپرس، از بخش ابزارها روی گزینه سلامت سایت کلیک کنید. وقتی وارد صفحه سلامت سایت خود شدید، به قسمت اطلاعات بروید. سپس روی گزینه سرور کلیک کنید. حالا از این قسمت به راحتی میتوانید متوجه شوید که سرور شما از چه نسخهی PHP و cURL و OpenSSL استفاده میکند. اگر متوجه شدید که سرور سایت شما از نسخههای جدید و بهروزرسانی شده استفاده نمیکند. باید با شرکت هاستینگ خود تماس بگیرید و از آنها بخواهید که این نسخهها را برای شما افزایش دهند.
رفع مشکلات محتوای ناامن SSL
اگر برای سایت خود گواهینامه SSL تهیه کرده باشید و بهدرستی پیکربندی نکرده باشید. باعث میشود که وب سرور شما درخواستهای ناامن cURL را مسدود کند. به همین دلیل شما باید از پیکربندی صحیح گواهینامه SSL خود اطمینان حاصل کنید. حتی اگر سایت شما دارای گواهینامه SSL هم نباشد ممکن است که با خطای زیر مواجه خواهید شد.
‘Error: cURL error 7: Failed to connect to localhost port 443: Connection refused (http_request_failed)
برای رفع این مشکل نیز میتوانید به شرکت هاستینگ خود تیکت بزنید. درخواست کنید تا گواهینامه SSL را روی سایت شما نصب کنند. اگر پس از نصب SSL همچنان این خطا رفع نشده بود. به هاستینگ خود تیکت بزنید و خواستار پیگیری دلیل این خطا شوید.
خطا حل نشد؟ با هاست خود تماس بگیرید.
اگر سایت شما پس از طی کردن مراحل بالا همچنان خطای cURL 28 را میدهد. به احتمال زیاد مشکل از سمت ارائه دهنده هاستینگ شما است. در واقع فاکتورهای بسیار زیاد و مهمی وجود دارد که فقط در اختیار میزبان وب(شرکتی که از آن هاست تهیه کردهاید) قرار دارد و شما نمیتوانید آنها را کنترل و رفع کنید. برای مثال اگر سرورهای سایت شما نتواند درخواستهای ارسال شده را حل کند سایت با این خطا روبرو میشود.
امیدواریم در این مقاله به شما نحوه برطرف کردن خطای cURL 28 کمک کرده باشیم. همچنین اگر تجربهای در این زمینه کسب کردهاید در زیر همین مقاله با ما در میان بگزارید.