مرکز آموزش میهن وب هاست

مرکز آموزش میهن وب هاست

رفع خطای How to fix cURL error 28: Connection timed out after X milliseconds در وردپرس

پرینت این مقاله پرینت این مقاله

آیا خطای cURL error 28: Connection timed out error را در وردپرس مشاهده کرده اید؟
خطای cURL 28 یکی از مشکلات رایج WordPress REST API است که می تواند بر عملکرد وب سایت شما تأثیر بگذارد و باعث مشکلات مختلف شود. در این مقاله، توضیح داده می شود که چگونه مشکل "cURL error 28: Connection timed out" را در وب سایت وردپرس خود برطرف کنید.
cURL در وردپرس چیست؟
cURL یک ابزار نرم افزاری است که توسط وردپرس و بسیاری از برنامه های وب دیگر برای ارسال و دریافت داده با استفاده از URL ها استفاده می شود. وردپرس از CURL برای رسیدگی به درخواست های API استفاده می کند. این ماژول به عنوان یک افزودنی برای زبان برنامه نویسی PHP در دسترس است و در اکثر هاست ها ارائه می شود. کتابخانه cURL نقشی اساسی در نحوه کار وردپرس در پشت صحنه دارد. لذا اگر به درستی پیکربندی نشده باشد، وب سایت وردپرسی شما به درستی کار نخواهد کرد.
چه عواملی باعث خطای cURL 28 در وردپرس می شود؟
عدم پاسخگویی به موقع به درخواستهای سرور باعث خطای cURL 28 در وردپرس می شود. وردپرس برای ارسال و دریافت درخواست ها از REST API (یک تکنیک برنامه نویسی) استفاده می کند. اگر این درخواست ها با time out مواجه شوند، آن را به شکل یک مسئله مهم در گزارش سلامت سایت با عنوان "REST API با خطا روبرو شد" مشاهده خواهید کرد.
تصویر(1)

با کلیک بر روی خطا، جزئیات بیشتری از خطا بوجود آمده به شما نشان داده می شود:
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.
چه عواملی ممکن است باعث timeout شدن cURL شود؟
دلایل مختلفی ممکن است باعث time out شدن درخواست های cURL در وردپرس شوند. به عنوان مثال، یک افزونه فایروال در وردپرس ممکن است درخواست REST API را مسدود کند، زیرا احساس می کند این فعالیت مشکوک است و باید دسترسی آن قطع شود. در ادامه نحوه عیب یابی و رفع مشکل "curl error 28: Connection timed out" در وردپرس توضیح داده خواهد شد.
  1. فایروال وردپرس را به طور موقت غیرفعال کنید

اگر از فایروال یا پلاگین امنیتی در وردپرس استفاده می کنید، موقتا آن را غیرفعال کنید.
تصویر(2)
پس از آن، باید به صفحه گزارش سلامت سایت وردپرس مراجعه و بررسی کنید آیا مشکل شما برطرف شده است؟ اگر مشکل رفع شده بود، باید لاگهای مربوط به فایروال وردپرس خود را بررسی کنید تا مشاهده کنید کدام درخواست API مسدود شده است. با این کار منبع ایجاد مشکل شناسایی می شود. همچنین می توانید تنظیمات فایروال را به گونه ای تغییر دهید تا درخواست های قانونی API مسدود نشود.
2. تمام افزونه های وردپرس را غیرفعال کنید
افزونه های وردپرس از درخواست های API برای ارسال و دریافت داده های خود استفاده می کنند. اگر ارسال درخواست ها بیش از حد زیاد هستند و یا انجام آنها خیلی طولانی است، ممکن است خطای cURL را در گزارش سلامت سایت مشاهده کنید. ساده ترین راه برای کشف این مسئله، غیرفعال کردن تمام افزونه های وردپرس است. به صفحه افزونه ها »افزونه های نصب شده بروید و همه افزونه ها را انتخاب کنید.
تصویر(3)
پس از آن، مطابق با تصویر فوق، از منوی کشویی کارهای دسته جمعی، گزینه "غیرفعال کردن" را انتخاب کرده و سپس بر روی دکمه "اجرا" کلیک کنید.
اکنون می توانید به گزارش سلامت سایت مراجعه کنید تا ببینید آیا این مشکل از بین رفته است یا همچنان وجود دارد. اگر مشکل رفع شده بود، می توانید افزونه های خود را یکی یکی فعال کنید تا زمانیکه مشکل مجدد ظاهر شود. اینکار به شما کمک می کند تا افزونه ای را که ممکن است باعث بروز مشکل شود پیدا کنید و سپس می توانید از پشتیبان پلاگین برای رفع مشکل کمک بگیرید.
3. مشکلات مربوط به SSL سایت را رفع کنید
اگر سایت وردپرسی شما از HTTPS / SSL استفاده می کند، اما به درستی پیکربندی نشده، ممکن است باعث مسدود شدن درخواست های CURL ناامن توسط وب سرور شود. به همین ترتیب، اگر سایت وردپرسی شما از HTTPS / SSL استفاده نمی کند، اما با استفاده از URL HTTP یک API را فراخوانی می کند، چنین درخواست هایی نیز ناموفق هستند و ممکن است به جای آن خطای cURL زیر را مشاهده کنید:

‘Error: cURL error 7: Failed to connect to localhost port 443: Connection refused (http_request_failed)

تصویر(4)
برای رفع این مشکل، می توانید از پشتیبانی ارائه دهنده هاست خود بخواهید گواهی SSL را مجدد در هاست و سایت شما نصب کنند. اگر این مشکل همچنان ادامه داشت، بعد از فعالسازی SSL در هاست از آموزش زیر SSL را برای تمامی لینک های موجود در سایت نیز فعال کنید.
3.5/5 از 37 رای