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

cURL درواقع نرم افزار ارسال و دریافت درخواست داده بوسیله URL است. این نرم افزار در وردپرس جهت پاسخگویی به درخواست های API مورد استفاده قرار میگیرد. درصورتی که پیکربندی 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 Error 28: Connection Timed Out

بخشی از عواملی که باعث از بین رفتن cURL وردپرس می‌شوند:

  • برخی افزونه‌های فایروال وردپرس ممکن است مانع انجام درخواست REST API شوند. دلیل این اتفاق این است که این نوع افزونه REST API را یک فعالیت مشکوک تلقی می‌کند.

  • مورد بعدی ممکن است بخاطر DNS سرور شما باشد. اگر DNS سرور شما به درستی کار نکند ممکن است باعث رخداد برخی موضوعات از جمله درخواست‌های ناموفق HTTP و درنهایت خطای time out error در وردپرس میشود.

برای رفع این مشکل چند راه و روش برای شما وجود دارد که در صورت لزوم می‌توانید از آن‌ها استفاده کنید:

غیرفعال کردن Firewall

اگر در سایت وردپرسی خود از افزونه امنیتی یا فایروال وردپرس استفاده میکنید؛ آن را غیرفعال کرده و بررسی کنید که ارور رفع شده است یا خیر.

اگر مشکل از افزونه امنیتی یا Firewall وردپرس شما بود؛ میبایست ورودی های مرتبط با فایروال وردپرس را بررسی کنید و درخواست مسدود شده را پیدا کنید. همچنین میتوانید تنظیمات آن را به گونه ای پیکربندی کنید که درخواست های قانونی API مسدود نشوند.

غیرفعال کردن تمامی افزونه ها

روش دیگر برای رفع این ارور غیر فعال کردن همه افزونه هاست، برای اینمنظور به بخش افزونه های وردپرس خمود بروید و همه افزونه هایی که فعالن هستند را انتخاب و غیرفعال نمایید.

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

وردپرس خود را به آخرین نسخه بروزرسانی کنید

اگر از این مورد اطمینان ندارید در ابتدا مطمئن شوید از اخرین نسحه وردپرس استفاده میکنید.

بررسی بروز بودن نسخه های OpenSSL , PHP , cURL

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

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

در حالت ایده آل، سرور شما باید از PHP 7.4.13 یا بالاتر ، curl 7.74.0 یا بالاتر و OpenSSL 1.1.1 یا بالاتر استفاده کند و اگر اینطور نیست ، پس باید با شرکت میزبان وردپرس خود تماس بگیرید و از آن ها بخواهید که نرم افزار مربوط حساب میزبانی شما را به روز کنند.

بررسی پیکربندی صحیح گواهینامه SSL

اگر سایت وردپرسی شما از HTTPS / SSL استفاده می کند ، اما به درستی پیکربندی نشده است ، این امر می تواند وب سرور شما را به مسدود کردن درخواست های cURL ناامن هدایت کند. به همین ترتیب ، اگر سایت وردپرسی شما از گواهی SSL استفاده نمی کند ، اما با استفاده از URL HTTP یک تماس API برقرار کرده است ، این درخواست ها نیز با شکست مواجه می شوند ، ممکن است خطای cURL زیر را مشاهده کنید: ‍‍‍

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

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

حل مشکل کندی پیشخوان وردپرس

اگر مشکل هنوز وجود دارد، با شرکت میزبان خود تماس بگیرید و از تیم پشتیبانی میزبان بخواهید نکات زیر را بررسی کنند:

  • سعی کنید تنظیمات محدودیت حافظه سرور خود را افزایش دهید.
  • از میزبان خود بپرسید که آیا یک فایروال یا ماژول های امنیتی (به عنوان مثال mod_security) وجود دارد که می تواند درخواستهای خروجی cURL را مسدود کند.

اختلالات اینترنت

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

افزونه Query Monitor را نصب کنید

قبل از هرگونه اقدامی باید به این نکته توجه کنیم که چه آدرس هایی درخواست های خروجی به سرور ارسال می کنند و کدامیک از آنها با خطای cURL مواجه می شوند، برای بررسی این مورد لازم است در قدم اول افزونه کوئری مانیتور (Query Monitor) را روی سایت خود نصب کنید و وضعیت تماس های HTTP API را در صفحه مدیریت که خطا نمایش داده می شود، بررسی کنید.

مسدود سازی درخواست های خروجی وردپرس

اگر سرعت پیشخوان وردپرس شما به شدت پایین آمده و یا با ارور 500 هم مواجه می‌شوید که انجام مراحل فوق را برای شما غیر ممکن کرده است می توانید به صورت موقت تمام درخواست های خروجی را مسدود کنید.

توجه داشته باشید در این حالت در صورت پیکربندی اشتباه شاهد بروز اختلال در اتصال به درگاه بانکی ، پنل پیامک، لاینسس افزونه و قالب ها ، سیستم های حسابداری و… هستید.

از پشتیبانی هاستینگ بپرسید که آیا محدودیتی در wp-cron وجود دارد یا اینکه loopback غیرفعال است

در این خصوص میتوانید با پشتیبانی خود ارتباط بگیرید و پاسخ را جویا شوید.

خطای cURL می تواند یک مسئله مرتبط با dns باشد

برای این منظور با شرکت هاستینگ خود در این خصوص ارتباط بگیرید چراکه ممکن است نیاز به تغییر پیکربندی dns به Google DNS یا Cloadflare DNS باشد.

اگر مشکل همچنان ارور cURL Error 28 رفع نشد چه کنیم؟

در صورتی که تمامی روش های بالا را امتحان کردید و مشکل همچنان برقرار بود با ما تماس بگیرید تا ارور cURL Error 28 را رفع کنیم.