بلاگ ابرینا

درود بر شما؛ داستان ارور ۵۰۴ دقیقاً چیست؟

خطای ۵۰۴ (Gateway Timeout) در وردپرس به این معنی است که یک سرور واسطه (مثل کلودفلر یا وب‌سرور Nginx) برای دریافت اطلاعات از سرور اصلی (مثل مفسر PHP یا دیتابیس) بیش از حد مجاز منتظر مانده و در نهایت چون پاسخی دریافت نکرده، ارتباط را قطع کرده است. سریع‌ترین اقدام برای حل این مشکل، افزایش مقادیر max_execution_time (تا ۳۰۰ ثانیه) در فایل تنظیمات PHP و غیرفعال کردن موقت افزونه‌های بسیار سنگین است. در این آموزش جامع، قصد داریم با زبانی بسیار ساده به ریشه‌یابی دقیق این مشکل پرداخته و با ۶ گام طلایی، مراحل رفع ارور ۵۰۴ Gateway Timeout در وردپرس را به صورت قطعی با هم انجام دهیم.

رفع ارور ۵۰۴ Gateway Timeout در وردپرس

تصور کنید یک روز عادی است و شما در حال مدیریت سایت خود هستید؛ اما ناگهان هنگام باز کردن سایت یا ذخیره کردن یک نوشته، با یک صفحه سفید و پیام آزاردهنده‌ی “504 Gateway Timeout” مواجه می‌شوید.

نکته:ترجیحا قبل از انجام کاری این موضوع را با ارائه دهنده هاست خود در میان بگذارید ، برای کاربران ابرینا اگر به این مشکل برخوردند حتما با پشتیبانی ارتباط بر قرار کنند تا در اسرع وقت مشکلشان حل شود

دیدن این ارور جای نگرانی ندارد؛ سایت شما هک نشده و اطلاعاتتان سالم است. این خطا در واقع یک «سوت پایان زمان» است!

فرض کنید در رستورانی سفارش داده‌اید و گارسون (سرور) سفارش را به آشپزخانه (مفسر PHP) برده است. طبق قانون رستوران، آشپز فقط ۶۰ ثانیه برای آماده‌سازی غذا فرصت دارد. اگر به دلیل شلوغی یا پیچیدگی دستور پخت، غذا در این زمان آماده نشود، گارسون دست خالی برمی‌گردد و می‌گوید: «زمان تمام شد!» (خطای ۵۰۴).

در سایت شما هم دقیقاً همین اتفاق می‌افتد. هدف ما در این مقاله این است که به آشپزخانه سایت شما زمان بیشتری بدهیم و کارهای سنگین را کم کنیم. با درک این موضوع ساده، رفع ارور ۵۰۴ Gateway Timeout در وردپرس برای شما تبدیل به یک کار بسیار راحت خواهد شد.

ریشه‌یابی خطای ۵۰۴: وب‌سرورها چطور باعث این خطا می‌شوند؟

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

نام بخش در سروروظیفه آن در سایت شما چیست؟نقش آن در تولید خطای ۵۰۴
انجین‌اکس (Nginx) یا پروکسیمانند یک گارسون سریع، درخواست کاربران را می‌گیرد و به بخش پردازش می‌فرستد.معمولاً این بخش است که خسته می‌شود و خطای ۵۰۴ را به کاربر نشان می‌دهد، چون سرور اصلی جوابش را دیر داده است.
آپاچی (Apache) / PHP-FPMاین بخش مانند آشپزخانه است. کدهای وردپرس را می‌خواند و صفحات را می‌سازد.اگر افزونه‌ای نصب کنید که کدهایش سنگین باشد، این بخش کند می‌شود و نمی‌تواند به موقع جواب Nginx را بدهد.
دیتابیس (MySQL/MariaDB)انبار اطلاعات سایت شماست. نوشته‌ها و محصولات اینجا هستند.اگر دیتابیس پر از اطلاعات زباله باشد، پیدا کردن یک نوشته زمان‌بر شده و باعث تاخیر کل سیستم می‌شود.

با شناخت این چرخه، متوجه می‌شویم که مقصر اصلی معمولاً سنگین بودن پردازش‌های سایت ماست که باعث می‌شود زمان تنظیم‌شده در سرور تمام شود. ما با تکنیک‌هایی که در ادامه می‌خوانیم، هماهنگی را بین این بخش‌ها برمی‌گردانیم تا پروسه‌ی رفع ارور ۵۰۴ Gateway Timeout در وردپرس با موفقیت انجام شود.

۶ گام طلایی برای حل خطای ۵۰۴ در سایت

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

گام اول: کارهای اولیه و بررسی کش (قدم صفر!)

گاهی اوقات اصلاً مشکل از سمت سرور نیست و فقط یک اختلال لحظه‌ای رخ داده است. قبل از هر کار پیچیده‌ای:

  1. صفحه را رفرش کنید: یک دقیقه صبر کنید و در ویندوز کلیدهای Ctrl + F5 و در مک Cmd + R را بزنید تا سایت دوباره بارگذاری شود.
  2. مرورگر را تغییر دهید: سایت را در حالت ناشناس (Incognito) یا با یک مرورگر دیگر باز کنید.
  3. اینترنت یا VPN خود را بررسی کنید: گاهی روشن بودن نرم‌افزارهای تغییر IP باعث می‌شود اتصال به درستی برقرار نشود و ارور ۵۰۴ نمایش داده شود. آن را خاموش کرده و سایت را چک کنید.

اگر با این کارهای ساده سایت بالا نیامد، یعنی مشکل جدی است و باید برای رفع ارور ۵۰۴ Gateway Timeout در وردپرس به سراغ گام دوم برویم.

گام دوم: افزایش زمان اجرای PHP (Max Execution Time)

حل مشکل با افزایش زمان پردازش

همان‌طور که در مثال رستوران گفتیم، یکی از بهترین راه‌ها این است که به پردازشگر سایت (PHP) زمان بیشتری بدهیم تا کارش را تمام کند. به صورت پیش‌فرض، این زمان در هاست‌ها روی ۳۰ یا ۶۰ ثانیه تنظیم شده است. ما باید آن را به ۳۰۰ ثانیه افزایش دهیم.

  1. وارد کنترل‌پنل هاست خود (سی‌پنل یا دایرکت‌ادمین) شوید.
  2. به بخش File Manager بروید و پوشه اصلی سایت (public_html) را باز کنید.
  3. به دنبال فایلی به نام php.ini بگردید و آن را برای ویرایش (Edit) باز کنید.
  4. عبارت max_execution_time را در آن پیدا کنید.
  5. عدد مقابل آن را به ۳۰۰ تغییر دهید (به این شکل: max_execution_time = 300).
  6. فایل را ذخیره کنید.

نکته: اگر در سی‌پنل ابزاری به نام MultiPHP INI Editor دارید، می‌توانید این کار را به صورت گرافیکی و بدون نیاز به ویرایش فایل انجام دهید که بسیار امن‌تر و راحت‌تر است. با این کار ساده، بخش بزرگی از فرآیند رفع ارور ۵۰۴ Gateway Timeout در وردپرس انجام می‌شود.

گام سوم: تنظیمات Timeouts در انجین‌اکس (Nginx) و آپاچی

اگر شما سرور مجازی (VPS) دارید یا هاستینگ شما دسترسی تغییر تنظیمات وب‌سرور را به شما داده است، باید زمان انتظار گارسون (وب‌سرور) را هم افزایش دهیم تا با آشپزخانه (PHP) هماهنگ شود.

  • برای سرورهای Nginx: باید فایل پیکربندی (معمولاً در مسیر /etc/nginx/nginx.conf) را باز کنید و مقادیر زیر را در بخش http یا server اضافه کنید:

Nginx

proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
fastcgi_read_timeout 300;

سپس با دستور sudo service nginx reload وب‌سرور را ری‌استارت کنید.

  • برای سرورهای Apache: باید فایل httpd.conf را پیدا کرده و مقدار Timeout را افزایش دهید:

Apache

Timeout 300

این کار باعث می‌شود تا وب‌سرور برای دریافت پاسخ، ۵ دقیقه کامل منتظر بماند و بی‌دلیل خطای ۵۰۴ را صادر نکند. اگر هاست اشتراکی دارید، نگران این گام نباشید؛ پشتیبانی هاستینگ این کار را برای شما تنظیم کرده است. تمرکز شما برای رفع ارور ۵۰۴ Gateway Timeout در وردپرس باید روی افزونه‌ها باشد.

گام چهارم: حل مشکل کلودفلر (Cloudflare) و DNS

آیا مقصر کلودفلر هست ؟

بسیاری از سایت‌ها برای افزایش امنیت از شبکه توزیع محتوای کلودفلر استفاده می‌کنند. وقتی ارتباط بین سرورهای کلودفلر و هاست شما به دلیل فایروال یا کندی قطع شود، کلودفلر یک صفحه خطای ۵۰۴ با لوگوی خودش به شما نشان می‌دهد.

  • راهکار سریع: وارد پنل کلودفلر شوید. از بخش Overview، موقتاً کلودفلر را در حالت Development Mode قرار دهید یا آیکون ابرِ نارنجی‌رنگ دامنه خود را در بخش DNS به رنگ خاکستری (DNS Only) تغییر دهید. اگر با این کار سایت شما بالا آمد، یعنی فایروال هاست شما، آی‌پی‌های کلودفلر را مسدود کرده است. باید به پشتیبانی هاستینگ خود پیام دهید و بگویید: “لطفاً IPهای کلودفلر را در فایروال سرور (وایت‌لیست) کنید.” علاوه بر این، پاک کردن کش DNS در سیستم خودتان (با دستور ipconfig /flushdns در ویندوز) نیز می‌تواند برای رفع ارور ۵۰۴ Gateway Timeout در وردپرس معجزه‌بخش باشد.

گام پنجم: مچ‌گیری از افزونه‌های سنگین

همیشه پای یک افزونه در میان است! وقتی یک افزونه (مثل افزونه‌های امنیتی، آمارگیرها یا افزونه‌های پشتیبان‌گیری) درخواستی بسیار سنگین به دیتابیس می‌فرستد، کل سرور درگیر پردازش آن می‌شود و خطای ۵۰۴ رخ می‌دهد.

چگونه افزونه مخرب را پیدا کنیم؟

  1. وارد فایل منیجر هاست شوید و به مسیر wp-content بروید.
  2. پوشه‌ای به نام plugins را می‌بینید. نام آن را موقتاً به plugins_old تغییر دهید.
  3. با این کار، تمام افزونه‌های سایت در یک ثانیه خاموش می‌شوند.
  4. حالا سایت را رفرش کنید. اگر سایت بدون مشکل باز شد، یعنی بله! مشکل از افزونه‌هاست.
  5. نام پوشه را دوباره به plugins برگردانید و وارد پیشخوان وردپرس شوید. افزونه‌ها را یکی‌یکی فعال کنید تا متوجه شوید کدام‌یک سایت را مختل می‌کند.

با پیدا کردن و حذف افزونه متخلف، شما موفق به رفع ارور ۵۰۴ Gateway Timeout در وردپرس به صورت کاملاً ریشه‌ای شده‌اید.

گام ششم: بهینه‌سازی دیتابیس سایت

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

برای حل این موضوع، کافی است افزونه رایگان WP-Optimize را نصب کنید. با این افزونه می‌توانید جداول دیتابیس را مرتب کنید، نظرات اسپم را پاک کنید و رونوشت‌های قدیمی مقالات را حذف نمایید. یک دیتابیسِ سبک، کلید طلاییِ رفع ارور ۵۰۴ Gateway Timeout در وردپرس و افزایش سرعت سایت است.

چه زمانی مقصر ما نیستیم و باید هاست را ارتقا دهیم؟

گاهی اوقات شما تمام ۶ گام بالا را با دقت انجام می‌دهید؛ زمان اجرای PHP را به بالاترین حد می‌رسانید و سایتتان هم هیچ افزونه مخربی ندارد. اما باز هم در ساعت‌های شلوغی و زمانی که بازدیدکنندگان زیادی وارد سایت می‌شوند، با خطای ۵۰۴ روبرو می‌شوید.

در این شرایط، مقصر شما نیستید. این خطا صرفاً یک پیام روشن به شماست: “کسب‌وکار ش

ما بزرگ شده و منابع هاست فعلی برای شما کافی نیست!”. وقتی ترافیک سایت بالا می‌رود، سرور قادر به پاسخگویی همزمان به همه درخواست‌ها نیست. در این مرحله، بهترین و منطقی‌ترین کار برای حفظ مشتریان و سئوی سایت، ارتقای سرویس میزبانی به یک «هاست قدرتمند» یا «سرور مجازی (VPS)» با پردازنده و رم اختصاصی است.

پرسش‌های متداول (FAQ)

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

آیا خطای ۵۰۴ به سئوی سایت من ضربه می‌زند؟

بله، متاسفانه اگر این خطا طولانی‌مدت روی سایت بماند، آسیب‌زننده است. وقتی ربات‌های گوگل (مثل Googlebot) برای بررسی سایت شما می‌آیند و به جای محتوا با ارور ۵۰۴ مواجه می‌شوند، نمی‌توانند صفحات را ایندکس کنند. تکرار این موضوع باعث افت رتبه‌های شما در نتایج جستجو خواهد شد. بنابراین، اقدام سریع برای رفع ارور ۵۰۴ Gateway Timeout در وردپرس کاملاً حیاتی است.

تفاوت ارور ۵۰۴ با خطای ۵۰۲ و ۵۰۳ در چیست؟

  • ارور ۵۰۲ (Bad Gateway): یعنی گارسون (سرور واسطه) یک پاسخ کاملاً نامعتبر و خراب از آشپزخانه (سرور اصلی) دریافت کرده است.
  • ارور ۵۰۳ (Service Unavailable): یعنی سرور در حال حاضر به دلیل ترافیک بسیار شدید یا تعمیرات دوره‌ای، اصلاً قادر به پاسخگویی نیست.
  • ارور ۵۰۴ (Gateway Timeout): یعنی پاسخ معتبر است و سرور هم خراب نیست، اما پردازش درخواست بیش از حد مجاز طول کشیده است.

چرا فقط در پیشخوان وردپرس ارور ۵۰۴ می‌گیرم؟

معمولاً بخش کاربری سایت (Front-end) به دلیل وجود کش (Cache) با سرعت باز می‌شود. اما بخش مدیریت وردپرس (wp-admin) کش نمی‌شود و پردازش‌های سنگینی مثل آپدیت‌ها یا گزارش‌گیری‌ها در آن انجام می‌شود. افزایش max_execution_time و ارتقای منابع هاست، بهترین راه حل برای این حالت است.

کلام آخر

دوست عزیز، مدیریت یک سایت وردپرسی گاهی شبیه به حل یک پازل است. خطاهایی مثل ۵۰۴ ممکن است در ابتدا کلافه‌کننده به نظر برسند، اما همان‌طور که با هم دیدیم، منطق بسیار ساده‌ای پشت آن‌هاست. سرور شما صرفاً در پردازش کدهای سنگین، زمان کم آورده است!

با افزایش زمان پردازش (Timeouts) در وب‌سرور و فایل‌های PHP، غیرفعال کردن افزونه‌های کند و در نهایت بهینه‌سازی دیتابیس، می‌توانید به راحتی سایت خود را به مدار برگردانید. امیدوارم این آموزش صمیمانه و عملی، دغدغه شما را برطرف کرده باشد و توانسته باشید پروسه رفع ارور ۵۰۴ Gateway Timeout در وردپرس را با موفقیت پشت سر بگذارید.

شما تا به حال کدام‌یک از راه‌حل‌های بالا را روی سایت خود تست کرده‌اید؟ لطفاً تجربه خود را در بخش نظرات برای ما بنویسید تا با هم بررسی کنیم!