خطای cURL Error 28 چیست؟
اگر در وردپرس با پیام خطای «cURL Error 28: Operation timed out» مواجه شدهاید، این خطا نشان میدهد که وردپرس سعی کرده با یک سرور خارجی ارتباط برقرار کند اما در مدت زمان مشخص پاسخی دریافت نکرده است. این خطا در هنگام بهروزرسانی افزونهها، پوستهها، یا ارسال اطلاعات به سرویسهای خارجی رخ میدهد.
دلایل اصلی خطای cURL Error 28
۱. محدودیت فایروال سرور
برخی هاستها فایروال سختگیرانهای دارند که اتصالات خروجی (outbound) PHP را محدود میکنند. در این حالت وردپرس نمیتواند به سرورهای خارجی مثل WordPress.org متصل شود و cURL Error 28 رخ میدهد.
۲. کندی یا قطعی اینترنت سرور
اگر سرور هاست شما به اینترنت دسترسی ضعیف داشته باشد یا زیر بار زیاد باشد، اتصالات cURL ممکن است قبل از دریافت پاسخ timeout شوند.
۳. مشکل DNS سرور
ناتوانی در تبدیل نام دامنه به IP میتواند باعث تأخیر زیاد و در نتیجه timeout شود. مشکلات DNS سرور روی تمام اتصالات خروجی تأثیر میگذارد.
۴. تنظیمات پایین timeout در PHP
اگر مقدار default_socket_timeout در PHP خیلی کم باشد، اتصالات زودتر از موعد قطع میشوند و خطای cURL Error 28 ظاهر میشود.
۵. مشکل با افزونه یا سرویس خارجی
گاهی سرویس خارجیای که وردپرس سعی میکند به آن متصل شود (مثل سرویسهای payment gateway، CDN، یا API خارجی) دچار مشکل است و پاسخ نمیدهد.
روشهای رفع خطای cURL Error 28
روش اول: افزایش مقدار timeout در wp-config.php
کد زیر را در فایل wp-config.php اضافه کنید تا مهلت اتصال افزایش یابد:
define('FS_CONNECT_TIMEOUT', 120);
define('FS_TIMEOUT', 120);
روش دوم: بررسی و رفع محدودیت فایروال
از هاست خود بخواهید اتصالات outbound PHP را بررسی کنند. آدرسهای IP وردپرس.org باید در whitelist فایروال باشند. این کار معمولاً نیاز به دسترسی ادمین سرور دارد.
روش سوم: تغییر DNS سرور
اگر مشکل از DNS باشد، میتوانید DNS سرور هاست را تغییر دهید. از طریق cPanel یا با کمک پشتیبانی هاست، DNS سرورهای معتبری مثل ۸.۸.۸.۸ (Google) یا ۱.۱.۱.۱ (Cloudflare) را تنظیم کنید.
روش چهارم: بهروزرسانی دستی افزونهها
اگر خطا هنگام بهروزرسانی رخ میدهد، افزونهها یا پوستهها را به صورت دستی دانلود و آپلود کنید. فایل zip را از WordPress.org دانلود و از طریق FTP یا File Manager نصب کنید.
روش پنجم: غیرفعال کردن افزونههای مشکلساز
برخی افزونههای امنیتی یا فایروالهای وردپرسی میتوانند اتصالات cURL را مسدود کنند. افزونهها را یک به یک غیرفعال کنید تا افزونه مشکلساز را پیدا کنید.
تشخیص سریع منشأ خطا
برای تشخیص اینکه مشکل از سرور است یا از افزونه، این کد PHP را اجرا کنید:
<?php
$response = wp_remote_get('https://api.wordpress.org/');
if (is_wp_error($response)) {
echo 'خطا: ' . $response->get_error_message();
} else {
echo 'اتصال موفق: ' . wp_remote_retrieve_response_code($response);
}
?>
اگر خطا مربوط به سرور باشد، این کد هم خطا میدهد. اگر افزونهای مشکل ایجاد میکند، پس از غیرفعال کردن آن، این کد موفق میشود.
نقش هاست در جلوگیری از cURL Error 28
هاستهای باکیفیت اتصال اینترنتی پایدار و سریع دارند و فایروال آنها به گونهای تنظیم شده که اتصالات معتبر PHP را مسدود نمیکند. انتخاب هاست وردپرس مناسب یکی از مؤثرترین راهها برای جلوگیری از این خطاست.
هاست وردپرس میهن هاستینگ با اتصال پرسرعت، DNS بهینه و پشتیبانی متخصص، محیطی فراهم میکند که cURL Error 28 در آن به ندرت رخ میدهد.
جمعبندی
خطای cURL Error 28 در وردپرس معمولاً به محدودیت فایروال، کندی اینترنت سرور، یا مشکل DNS مربوط است. با افزایش مقدار timeout، رفع محدودیتهای فایروال، و تغییر DNS میتوان این مشکل را حل کرد. اگر این خطا مکرراً رخ میدهد، بهتر است به هاست وردپرس حرفهای مهاجرت کنید.
