اگر شما هم سایت خود را با وردپرس ایجاد کرده باشید، متوجه این موضوع شده اید که پیشخوان، افزونه ها و قالب وب سایت شما به دلیل عدم ارتباط با سرورهای خارج از کشور و مخزن وردپرس با مشکل connection timed out مواجه شده است.
به همین دلیل سرعت سایت و پیشخوان وردپرس به شدت کند شده و مدیریت سایت را عملا غیر ممکن ساخته است، پس برای حل مشکل cURL error 28: SSL connection timeout در وردپرس با دانشنامه کیمیاهاست همراه باشید تا بهترین راه حل ها جهت افزایش سرعت پیشخوان وردپرس به دلیل خطای ارتباطی را بررسی کنیم.
پس در ادامه با ما همراه باشید تا با آموزش رفع مشکل connection timed out آشنا شویم و آن را رفع کنیم.
علت به وجود آمدن ارور Curl error 28 connection timed out
curl چیست؟ و چه کاربردی دارد؟
curl مخفف Client for URLs و یک ابزار خط فرمان است که به شما امکان ارسال درخواست های مختلف به سمت سرور را میدهد.
یکی از کاربرد های بسیار مهم curl تست url های مختلف مخصوصاً برای پیاده سازی api های تحت وب است.
از جمله کاربرد هایی که ما برای دسترسی به آنها از curl استفاده میکنیم میتوان به موارد زیر اشاره نمود:
- اگر بخواهیم خروجی مورد نظر رو داخل یک فایل ذخیره کنیم.
- برای دانلود فایل همچنین دانلود همزمان چند فایل
- دریافت اطلاعات Header از یک آدرس وب سایت
- برای دسترسی به یک سرور FTP
- برای ارسال اطلاعات کوکی دلخواه به یک وبسایت
بررسی ارور cURL Error 28: Connection Timed Out
مشکل 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 وردپرس میشوند:
- برخی افزونههای فایروال وردپرس ممکن است مانع انجام درخواست REST API شوند.
( دلیل این اتفاق این است که این نوع افزونه REST API را یک فعالیت مشکوک تلقی میکند.)
- مورد بعدی ممکن است بخاطر DNS سرور شما باشد.
( اگر DNS سرور شما به درستی کار نکند ممکن است باعث رخداد برخی موضوعات از جمله درخواستهای ناموفق HTTP و درنهایت خطای time out error در وردپرس شود.)
نحوه رفع ارور مشکل connection timed out
۱-وردپرس خود را به آخرین نسخه بروزرسانی کنید.
اگر از این مورد اطمینان ندارید در ابتدا مطمئن شوید از اخرین نسحه وردپرس استفاده میکنید.
۲-سعی کنید تنظیمات محدودیت حافظه سرور خود را افزایش دهید.
برای این منظورابتدا قبل از شروع و استفاده از راه حل های زیر، بهتر است با شرکت میزبانی خود تماس بگیرید و از قابلیت افزایش محدودیت PHP در هاست خود مطمئن شوید، چرا که برخی از هاستینگها، اجازه افزایش محدودیت حافظه را به کاربران خود نمیدهند. در برخی موارد نیز، فقط ارائه دهنده خدمات میزبانی وب امکان تغییر محدودیت حافظه PHP را بر روی سرور دارد.
- افزایش با استفاده از ویرایش فایل wp-config.php
- افزایش از طریق ویرایشگر PHP INI در سیپنل
- ویرایش فایل .htaccess
- تماس با پشتیبانی هاست
۳-غیرفعال کردن فایروال
اولین موردی که میتوانید آن را بررسی کنید firewall یا افزونه های امنیتی است.
اگر از این افزونه ها استفاده میکنید پیشنهاد میکنیم برای مدتی آنرا غیر فعال کنید. اگر با اینکار مشکل رفع شد، باید ورودهای مربود به firewall وردپرس خود را بررسی کنید و حساب مسدود شده را بیابید.
شما با انجام این کار منبع مسئله و مشکل را پیدا کردهاید و با توجه به آن میتوانید تنظیمات firewall را انجام دهید تا از مسدود شدن APIهای قانونی جلوگیری شود.
۳- غیرفعال کردن افزونهها
روش دیگر برای رفع این ارور غیر فعال کردن همه افزونه هاست، برای اینمنظور به بخش افزونه های وردپرس خمود بروید و همه افزونه هایی که فعالن هستند را انتخاب و غیرفعال نمایید.
پس از آن به بخش سلامت سایتتان بروید، اگر ارور برطرف شده باشد یعنی مشکل از افزونه ها بوده، پس از آن تک تک افزونه ها را فعال کنید و همزمان چک کنید تا متوجه شوید بعد از فعال کردن کدام افزونه ارور مجدد ایجادمیشود، پس از آنکه افزونه را پیدا کردید نسبت به بررسی و نحوه رفع مشکل آن اقدام کنید.
۴-آپدیت بودن نسخههای PHP , cURL , OpenSSL
روش دیگر بررسی سرور است مطمئن شوید سرور سایت شما از آخرین نسخه PHP و cURL و OpenSSL استفاده میکند.
برای این منظور از منوی وردپرس، از بخش ابزارها روی گزینه سلامت سایت کلیک کنید، وقتی وارد صفحه سلامت سایت خود شدید، به قسمت اطلاعات بروید، سپس روی گزینه سرور کلیک کنید.
حالا از این قسمت به راحتی میتوانید متوجه شوید که سرور شما از چه نسخهی PHP و cURL و OpenSSL استفاده میکند.
اگر متوجه شدید که سرور سایت شما از نسخههای جدید و بهروزرسانی شده استفاده نمیکند، باید با شرکت هاستینگ خود تماس بگیرید و از آنها بخواهید که این نسخهها را برای شما افزایش دهند اما اگر نسخه های به روز در سرور سایتتان در حال استفاده بود به سراغ روش های بعدی بروید.
۵-رفع مشکلات محتوای نا امن SSL
از پیکربندی صحیح گواهینامه SSL خود اطمینان حاصل کنید چراکه در صورت نصب گواهی ssl بر روی سایت اگر آنرا به درستی پیکربندی نکرده باشید، منجر به مسدود شدن درخواست های نا امن curl از سمت سرور خواهد شد.
حتی اگر سایت شما دارای گواهینامه SSL هم نباشد ممکن است که با خطای زیر مواجه شوید:
‘Error: cURL error 7: Failed to connect to localhost port 443: Connection refused (http_request_failed)
برای رفع این مشکل میتوانیدبا شرکت هاستینگ خود ارتباط بگیرید و از آنها درخواست کنید تا گواهی ssl را برای شما فعال کنند.
اگر پس از نصب SSL همچنان این خطا رفع نشده بود، حل مشکل را به شرکت هاستینگ خود بسپارید.
۶- افزونه Query Monitor را نصب کنید.
میتوانید این افزونه را نصب کنید و وضعیت تماس های HTTP API را در صفحه مدیریت که خطا نمایش داده می شود، بررسی کنید.
۷- از پشتیبانی هاستینگ بپرسید که آیا محدودیتی در wp-cron وجود دارد یا اینکه loopback غیرفعال است.
در این خصوص میتوانید با پشتیبانی خود ارتباط بگیرید و پاسخ را جویا شوید.
۸- خطای cURL می تواند یک مسئله مرتبط با dns باشد.
برای این منظور با شرکت هاستینگ خود در این خصوص ارتباط بگیرید چراکه ممکن است نیاز به تغییر پیکربندی dns به OpenDNS باشد.