مطمئنا شما که در حال مطالعه ی این مقاله هستید با ارور cURL error 28: Connection timed out after X milliseconds روبرو شده اید. ارور cURL 28 یکی از مشکلات رایج WordPress REST API است که می تواند بر عملکرد وب سایت شما تأثیر بگذارد و حتی ممکن است باعث رفتار غیر قابل پیش بینی آن شود.
در این مقاله، ما به شما نشان خواهیم داد که چگونه مشکل ارور cURL error 28: Connection timed out را در وب سایت وردپرس خود برطرف کنید؛ پس تا انتهای این مقاله با ما همراه باشید.
cURL در وردپرس چیست؟
cURL یک نرم افزار است که توسط وردپرس و بسیاری از برنامه های وب دیگر برای ارسال و دریافت درخواست داده با استفاده از URL ها استفاده می شود.
وردپرس از CURL برای رسیدگی به چندین درخواست API استفاده می کند. این زبان به عنوان برنامه افزودنی ( extension ) زبان برنامه نویسی PHP در دسترس است.
چه عواملی باعث ارور cURL 28 در وردپرس می شود؟
عدم پاسخگویی به موقع به درخواست های داده سرور باعث ارور cURL 28 در وردپرس می شود.
وردپرس از REST API (یک روش برنامه نویسی) برای ارسال و دریافت درخواست داده استفاده می کند. اگر این درخواست ها تایم اوت ( time out ) شود، شما آن را به عنوان یک مسئله مهم در گزارش سلامت سایت با عنوان “The REST API encountered in error” مشاهده خواهید کرد.
با کلیک بر روی خطا جزئیات بیشتری از جمله متن کامل ارور به شما نشان داده می شود :
Error: cURL error 28: Operation timed out after x milliseconds with x bytes received (http_request_failed)
همچنین ممکن است یک موضوع مرتبط دیگر با عنوان “Your site could not complete a loopback request” را مشاهده کنید. این پیام خطای مشابهی با شرح زیر خواهد داشت :
The loopback request to your site failed, this means features relying on them are not currently working as expected.
چه عواملی باعث تایم اوت شدن cURL میشوند؟
چند مورد از سناریوها و دلایل ممکن است باعث تایم اوت شدن cURL در وردپرس شود که عبارتند از :
به عنوان مثال، یک افزونه فایروال وردپرس ممکن است درخواست REST API را مسدود کند، زیرا این یک فعالیت مشکوک تشخیص داده شده است.
اگر DNS سرور شما به درستی کار نمی کند، ممکن است در درخواست های HTTP نیز ناموفق باشد و باعث خطای تایم اوت شدن cURL در وردپرس شود.
یک سرور میزبان وردپرس با تنظیمات و کانفیگ ضعیف ممکن است به سادگی آستانه تایم اوت بسیار کمی داشته باشد که ممکن است برخی از فرآیند های وردپرس را به درستی اجرا نکند.
با این توضیحات، بیایید نگاهی به نحوه عیب یابی و رفع مشکل ارور cURL error 28: Connection timed out در وردپرس بیندازیم.
۱. فایروال وردپرس را به طور موقت غیرفعال کنید
اگر از فایروال وردپرس یا پلاگین امنیتی استفاده می کنید آن را موقتاً غیرفعال کنید.
پس از آن، باید به صفحه گزارش سلامت سایت وردپرس مراجعه کنید تا ببینید آیا مشکل شما برطرف شده است یا خیر؟ اگر ارور مربوطه رفع شده است، پس باید تنظیمات مربوط به فایروال وردپرس خود را بررسی کنید تا ببینید کدام درخواست API مسدود شده است.
با این کار منبع مشکل شناسایی می شود و می توانید تنظیمات فایروال را تنظیم کنید تا درخواست های قانونی API مسدود نشود.
۲. تمام افزونه های وردپرس را غیرفعال کنید
افزونه های وردپرس درخواست های API خود را برای ارسال و دریافت داده انجام می دهند. اگر این تماس ها بیش از حد مکرر هستند و یا انجام آنها خیلی طولانی است، ممکن است ارور cURL error 28: Connection timed out در گزارش سلامت سایت شما ایجاد شود.
ساده ترین راه برای کشف این مسئله غیرفعال کردن تمام افزونه های وردپرس است. نگران نباشید، به صفحه افزونه ها » افزونه های نصب شده بروید و همه افزونه ها را با تیک زدن انتخاب کنید.
پس از آن، روی منوی کشویی کارهای دسته جمعی کلیک کنید و سپس “غیرفعال کردن” را انتخاب کنید و سپس بر روی دکمه “اجرا” کلیک کنید.
اکنون می توانید به گزارش سلامت سایت مراجعه کنید تا ببینید آیا این مشکل از بین رفته است یا خیر؟ اگر این مسئله مشکلی را حل کرده است، می توانید افزونه های خود را یکی یکی فعال کنید تا دوباره مشکل دوباره ظاهر شود.
این کار به شما کمک می کند افزونه ای را که ممکن است باعث بروز مشکل شود پیدا کنید و سپس می توانید از نویسنده پلاگین یا افزونه درخواست پشتیبانی کنید.
۳. اطمینان حاصل کنید که سرور هاستینگ شما از جدیدترین نرم افزار استفاده می کند
گام بعدی این است که مطمئن شوید سرور میزبان هاستینگ وردپرس شما از آخرین نسخه های PHP ، کتابخانه cURL و OpenSSL استفاده می کند.
با مراجعه به برگه اطلاعات سیستم به ابزارها » Site Health می توانید این موضوع را بررسی کنید.
کافی است به برگه «Info» بروید و بر روی بخش «Server» کلیک کنید. از اینجا می توانید اطلاعات مربوط به نرم افزار نصب شده بر روی سرور میزبان وردپرس خود را بدست آورید.
در حالت ایده آل، سرور شما باید از PHP 7.4.13 یا بالاتر، curl 7.74.0 یا بالاتر و OpenSSL 1.1.1 یا بالاتر استفاده کند.
اگر به این صورت نبود، باید با شرکت میزبان وردپرس خود تماس بگیرید و از آنها بخواهید که نرم افزار حساب میزبانی شما را به روز کنند.
۴. مشکلات محتوای ناامن SSL را برطرف کنید
اگر سایت وردپرسی شما از HTTPS / SSL استفاده می کند اما به درستی پیکربندی نشده است، این امر همچنین می تواند وب سرور شما را به مسدود کردن درخواست های cURL ناامن هدایت کند.
به همین ترتیب، اگر سایت وردپرسی شما از HTTPS / SSL استفاده نمی کند اما با استفاده از URL HTTP یک API Call برقرار کرده است، آن درخواست ها نیز ناموفق خواهند بود و به جای آن ممکن است خطای cURL زیر را مشاهده کنید :
Error: cURL error 7: Failed to connect to localhost port 443: Connection refused (http_request_failed)
برای رفع این مشکل، می توانید از ارائه دهنده میزبانی خود بخواهید گواهی SSL را برای وب سایت شما دوباره نصب کند.
۵. از ارائه دهنده میزبانی ( هاستینگ ) خود کمک بگیرید
اگر مراحل بالا نتواند ارور cURL error 28: Connection timed out را در سایت وردپرسی شما برطرف کند، به احتمال زیاد مشکل از یک مسئله نشات گرفته از هاستینگ شماست.
فاکتورهای زیادی وجود دارد که فقط توسط شرکت هاستینگ شما قابل کنترل و رفع است. به عنوان مثال، اگر سرورهای DNS آنها نتوانند درخواست ها را به موقع حل کنند، این امر باعث ارور cURL 28 می شود.
نگران نباشید، یک درخواست پشتیبانی با جزئیات خطا برای آنها ارسال و تیکت کنید تا کادر فنی آنها عیب یابی کنند.