آموزش قطعی حل مشکل Request Timeout در وردپرس (خطای طولانی شدن درخواست)

فهرست مطالب

مدیریت یک وب‌ سایت وردپرسی همیشه با چالش‌ های فنی همراه است. یکی از مشکلاتی که شاید وبمسترها، طراحان سایت و متخصصان سئو حداقل یک‌بار با آن دست‌ و پنجه نرم کرده باشند، خطای Request Timeout است. این خطا معمولاً در حساس‌ ترین مواقع، مثلاً هنگام آپلود یک قالب جدید، نصب افزونه‌ ای سنگین، یا درون‌ریزی (Import) فایل‌ های دمو رخ میدهد و میتواند روند کار شما را به کلی متوقف کند.

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

با ما همراه باشید.

خطای Request Timeout چیست و چرا رخ می‌دهد؟

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

وقتی شما دستوری به سرور میدهید (مثلاً آپلود یک فایل حجیم)، سرور شروع به پردازش میکند. اگر این پردازش بیشتر از زمان مجاز تعیین شده (مثلاً 30 ثانیه) طول بکشد، سرور عملیات را متوقف کرده و خطای تایم‌اوت را نمایش میدهد.

خطای مد نظر ما معمولاً با متن دقیق زیر اتفاق می‌ افتد:

Request Timeout

This request takes too long to process, it is timed out by the server. If it should not be timed out, please contact administrator of this web site to increase ‘Connection Timeout’.

ترجمه این پیام این است: “پردازش این درخواست بیش از حد طول کشیده و توسط سرور متوقف (تایم اوت) شده است. لطفاً برای افزایش محدودیت اتصال، با مدیر سایت یا هاستینگ تماس بگیرید.”

دلایل اصلی بروز این خطا:

  1. آپلود فایل‌ های حجیم: تلاش برای آپلود قالب‌ ها، افزونه‌ ها یا ویدیوهایی که حجم آنها از محدودیت تعیین شده در هاست (Upload Max Filesize) بیشتر است.
  2. افزونه‌ های سنگین یا تداخل کدهای مخرب: یک افزونه غیراستاندارد ممکن است در یک حلقه بینهایت گیر کند و منابع سرور را درگیر نماید.
  3. ضعف منابع هاست (سرور): استفاده از هاست‌ های اشتراکی ضعیف با منابع بسیار محدود.
  4. نسخه‌های قدیمی PHP: استفاده از نسخه‌های منسوخ شده PHP که سرعت پردازش پایینی دارند.

آموزش گام‌ به‌ گام حل مشکل Request Timeout در وردپرس

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

روش اول: ویرایش فایل .htaccess (بهترین و سریعترین روش)

فایل .htaccess یک فایل مخفی و بسیار مهم در ریشه هاست شماست که دستورات پایه‌ ای وب‌سایت را کنترل میکند. با اضافه کردن چند خط کد ساده به این فایل، میتوانید محدودیت‌ های سرور را افزایش دهید.

برای این کار مراحل زیر را با دقت دنبال کنید:

گام اول: ورود به هاست

ابتدا وارد کنترل پنل هاست خود (cPanel، DirectAdmin یا Plesk) شوید.

گام دوم: دسترسی به فایل منیجر (File Manager)

به بخش مدیریت فایل‌ ها یا همان File Manager بروید. سپس وارد پوشه public_html (یا مسیری که سایت وردپرسی شما در آن نصب شده است) بشوید.

گام سوم: پیدا کردن فایل .htaccess

در این پوشه به دنبال فایلی به نام .htaccess بگردید.

نکته مهم: از آنجایی که این فایل با نقطه شروع میشود، یک فایل “مخفی” محسوب میگردد. اگر آن را نمیبینید، در cPanel از قسمت بالای صفحه روی دکمه Settings (تنظیمات) کلیک کرده و تیک گزینه Show Hidden Files (dotfiles) را بزنید تا فایل‌ های مخفی نمایش داده شوند.

گام چهارم: ویرایش فایل

روی فایل .htaccess راست‌ کلیک کرده و گزینه Edit (ویرایش) را انتخاب کنید.

گام پنجم: جایگذاری کدهای طلایی

به انتهای کدهای موجود در این فایل بروید و کدهای زیر را دقیقاً به آخرین خط این فایل اضافه کنید:

apache
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

توضیح کد های بالا:

  • upload_max_filesize: حداکثر حجم فایلی که میتوانید آپلود کنید را به 64 مگابایت افزایش میدهد.
  • post_max_size: حداکثر حجم داده‌ های ارسالی با متد POST را افزایش میدهد.
  • max_execution_time 300: این مهمترین بخش کد است! زمان مجاز اجرای اسکریپت‌ ها را به 300 ثانیه (5 دقیقه) افزایش میدهد تا سرور فرصت کافی برای پردازش درخواست شما را داشته باشد.
  • max_input_time 300: زمان مجاز برای دریافت داده‌ ها را نیز به 300 ثانیه میرساند.

گام ششم: ذخیره و تست

تغییرات را ذخیره (Save Changes) کنید. حالا به پیشخوان وردپرس خود برگردید و کاری که قبلاً باعث بروز خطا میشد (مثلاً آپلود افزونه) را مجدداً انجام دهید. خواهید دید که مشکل برطرف شده و دسترسی‌ های بیشتری به منابع دارید.

نکته کلیدی: اگر پس از وارد کردن کد بالا همچنان مشکل برطرف نشد و خطای Request Timeout پابرجا بود، عددهای 300 موجود در کد بالا را به مقادیر بالاتری مانند 600 افزایش دهید و مجدداً تست کنید.

روش‌ های جایگزین (در صورت عمل نکردن روش اول)

در برخی از هاستینگ‌ ها، اعمال تغییرات از طریق .htaccess مسدود شده است یا سرور از لایت‌ اسپید (LiteSpeed) / انجین‌اکس (Nginx) استفاده میکند که ممکن است رفتار متفاوتی نشان دهند. در این صورت میتوانید از روش‌ های زیر استفاده کنید:

1. ویرایش فایل wp-config.php

فایل wp-config.php نیز در مسیر public_html قرار دارد. آن را باز کرده و کد زیر را درست قبل از خط /* That's all, stop editing! Happy blogging. */ قرار دهید:

php
set_time_limit(300);

2. ایجاد یا ویرایش فایل php.ini

اگر هاست شما به شما اجازه دسترسی به فایل php.ini را می‌دهد (در سی‌پنل معمولاً بخشی به نام MultiPHP INI Editor وجود دارد)، مقادیر زیر را در آن تنظیم کنید:

ini
max_execution_time = 300
max_input_time = 300
memory_limit = 256M

3. تماس با پشتیبانی هاستینگ

اگر تمام روش‌های بالا را امتحان کردید و همچنان پیام “This request takes too long to process” را مشاهده می‌کنید، به این معناست که شرکت ارائه‌دهنده هاست شما محدودیت‌های سفت‌وسختی را در سطح سرور (Server-level) اعمال کرده است. تنها راه باقی‌مانده، ارسال تیکت به پشتیبانی هاست و درخواست افزایش max_execution_time است.

همکاری با نوین رنک

برای مشاوره، استعلام قیمت و شروع همکاری در زمینه سئو (SEO) و طراحی سایت پاسخگوی شما هستیم.

📍 آدرس: تهران، شهریار، اندیشه فاز ۱

سوالات متداول (FAQ)

۱. آیا اضافه کردن کدها به فایل .htaccess ممکن است باعث خرابی سایت شود؟

اگر کدها را دقیقاً در انتهای فایل و بدون پاک کردن کدهای قبلی وارد کنید، هیچ مشکلی برای سایت پیش نمی‌آید. با این حال، همیشه توصیه می‌کنیم قبل از ویرایش فایل .htaccess، یک کپی یا بک‌آپ از آن دانلود کنید تا در صورت بروز خطای 500 (Internal Server Error)، بتوانید فایل قبلی را جایگزین کنید.

۲. من فایل .htaccess را در هاست خود پیدا نمی‌کنم، چکار کنم؟

همان‌طور که در مقاله اشاره شد، این فایل مخفی است. در cPanel باید از بخش Settings گزینه Show Hidden Files را فعال کنید. اگر با این کار هم فایل را ندیدید، می‌توانید یک فایل جدید به نام .htaccess ایجاد کرده و کدهای پیش‌فرض وردپرس را همراه با کدهای افزایش تایم‌اوت در آن قرار دهید.

۳. تفاوت خطای Request Timeout (408) با Gateway Timeout (504) در وردپرس چیست؟

خطای 408 (Request Timeout) معمولاً به این معناست که کلاینت (مرورگر یا سیستم شما) نتوانسته درخواست را در زمان مشخص شده برای سرور ارسال کند یا پردازش سمت سرور طولانی شده است. اما خطای 504 (Gateway Timeout) زمانی رخ می‌دهد که یک سرور (به عنوان واسطه) نتواند در زمان مناسب از سرور اصلی پاسخ دریافت کند. راه‌حل هر دو تا حد زیادی مشابه است و با ارتقای منابع هاست برطرف می‌شود.

۴. آیا نصب افزونه‌های کش تاثیری در رفع این مشکل دارد؟

افزونه‌های کش (مانند WP Rocket یا LiteSpeed Cache) مستقیماً این خطا را هنگام آپلود فایل رفع نمی‌کنند؛ اما با بهینه‌سازی کدهای سایت و کاهش بار روی سرور، احتمال درگیر شدن منابع و بروز خطاهای تایم‌اوت در پردازش‌های روزمره سایت را به شدت کاهش می‌دهند.

۵. مقادیر max_execution_time را تا چه عددی می‌توانم افزایش دهم؟

معمولاً عدد 300 (معادل 5 دقیقه) برای اکثر کارهای سنگین وردپرس کافی است. می‌توانید آن را به 600 یا حتی 900 نیز تغییر دهید، اما اگر پردازشی بیش از 15 دقیقه طول بکشد، احتمالاً مشکل از افزونه‌ای است که در یک حلقه بی‌نهایت گیر کرده است و باید علت ریشه‌ای را پیدا کنید.


نتیجه‌ گیری

خطای Request Timeout در وردپرس گرچه در نگاه اول ترسناک به نظر می‌رسد، اما به راحتی و با چند خط کد در فایل .htaccess قابل حل است. مدیریت صحیح منابع سرور و انتخاب هاستینگ مناسب، کلید داشتن یک وب‌سایت پایدار است. امیدواریم این آموزش از مقالات آکادمی نوین رنک مشکل شما را به طور کامل برطرف کرده باشد. در صورت داشتن هرگونه سوال فنی، آن را در بخش نظرات همین مقاله با ما در میان بگذارید.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا