آموزش رفع خطای cURL error 28: Connection timed out در وردپرس به زبان ساده چاپ

  • 0

آیا در بخش سلامت سایت وردپرس با خطای "cURL error 28: Connection timed out" مواجه شده‌اید؟ این یکی از خطاهای رایج در وردپرس است که معمولاً به دلیل عدم پاسخ دهی به موقع یک درخواست خارجی یا داخلی رخ می‌دهد. در این مقاله تیم متخصص الماس هاست به صورت کامل و گام به گام به بررسی دلیل بروز خطا cURL error 28: Connection timed out و راه های رفع آن می‌پردازند.

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

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

علت بروز خطای cURL error 28

زمانی که cURL نتواند در بازه‌ی زمانی مشخص پاسخی از سرور مقصد دریافت کند، خطای Connection timed out رخ می‌دهد. دلایل شایع این خطا عبارت‌اند از:

  • محدودیت فایروال سرور یا افزونه‌های امنیتی
  • پیکربندی نادرست SSL یا DNS
  • مشکل در REST API وردپرس
  • افزونه‌هایی که درخواست‌های طولانی یا زیادی ارسال می‌کنند
  • قطع بودن موقت سرور مقصد یا آدرس‌های API

پیام های خطا چگونه نمایش داده می‌شوند؟

در بخش سلامت سایت وردپرس (Site Health) معمولاً با یکی از پیام‌های زیر روبرو خواهید شد:

cURL error 28: Connection timed out after X milliseconds

یا:

The loopback request to your site failed

یا:

REST API encountered an error

راهنمای گام به گام رفع خطای cURL error 28 در وردپرس

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

اولین گام، غیرفعال کردن موقت افزونه های امنیتی مانند Wordfence، iThemes Security یا All in One WP Security است. وارد پیشخوان وردپرس شوید. به مسیر افزونه ها > افزونه های نصب شده بروید. افزونه های امنیتی را غیرفعال کنید. سپس دوباره به بخش ابزارها > سلامت سایت بروید و بررسی کنید که آیا خطا برطرف شده یا نه. اگر خطا رفع شد، مشکل از تنظیمات فایروال بوده و باید بررسی شود کدام API ها یا آدرس ها توسط آن بلاک شده‌اند.

غیرفعال کردن سایر افزونه ها برای عیب یابی

در برخی موارد، افزونه هایی مانند WooCommerce، Jetpack، Yoast یا افزونه های کش و بهینه سازی ممکن است باعث ایجاد درخواست های زمان بر شوند. تمام افزونه‌ها را غیرفعال کنید. سپس یک‌به‌یک آن‌ها را فعال کنید تا مشخص شود کدام افزونه باعث بروز خطا شده است.

بررسی و رفع مشکلات SSL

اگر گواهی SSL سایت به درستی نصب نشده یا لینک ها هنوز با HTTP بارگذاری می‌شوند، ممکن است ارتباطات API به درستی برقرار نشوند. با پشتیبانی هاست تماس بگیرید و نصب مجدد SSL را بخواهید.

افزونه Really Simple SSL را نصب و فعال کنید تا لینک های سایت به صورت خودکار به HTTPS تغییر داده شوند.

بررسی اتصال DNS و دسترسی CURL از سرور

اگر هاست شما نتواند به URLهایی مانند api.wordpress.org متصل شود، ممکن است مشکل از DNS یا محدودیت‌های شبکه باشد. اقدامات پیشنهادی:

    • از پشتیبانی هاست بخواهید بررسی کند آیا اتصال CURL به آدرس‌های خارجی مجاز است یا نه.
    • درخواست کنید DNS سرور شما روی Google DNS (8.8.8.8) تنظیم شود.
    • اگر امکان دارید، از طریق SSH تست اتصال را با دستور زیر انجام دهید:
curl -I https://api.wordpress.org


افزایش مدت زمان پاسخگویی cURL

اگر مشکل شما مربوط به timeout است و سرور کند پاسخ می‌دهد، می‌توانید تایم‌اوت پیش‌فرض وردپرس را افزایش دهید. کد پیشنهادی:

add_filter( 'http_request_timeout', function( $timeout ) {
    return 30; // زمان به ثانیه
});

این کد را در فایل functions.php قالب فعال خود قرار دهید.

بررسی فایل hosts در سرور

در صورتی که دسترسی به SSH دارید، بررسی فایل /etc/hosts می‌تواند نشان دهد که آیا آدرس‌های خاصی مسدود یا ریدایرکت شده‌اند.

تماس با پشتیبانی هاست

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

  • آیا اتصال خروجی از سرور به URLهای خارجی فعال است؟
  • آیا پورت 443 و 80 برای دسترسی‌های CURL باز است؟
  • آیا سرور فایروالی دارد که مانع ارتباطات داخلی وردپرس می‌شود؟

در نهایت

خطای cURL error 28: Connection timed out معمولاً نشانه‌ی اختلال در ارتباطات وردپرس با سرویس‌های خارجی یا داخلی است. خوشبختانه با بررسی مرحله‌به‌مرحله‌ی افزونه‌ها، تنظیمات امنیتی و وضعیت هاست، می‌توان به راحتی آن را برطرف کرد. اگر با انجام روش‌های بالا موفق نشدید، پیشنهاد می‌شود با تیم فنی هاستینگ خود تماس بگیرید.


آیا این پاسخ مفید بود؟

« بازگشت