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

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

 

در این مقاله، به شرح علت بروز این مشکل پرداخته شده و چند روش پیشنهادی به منظور فعال کردن مجدد سایت شما شرح داده شده است.

 

علل بروز خطا در حین به‌روزرسانی

هنگامی‌که سایت شما طبق برنامه کار می‌کند، اگر به بخش Dashboard > Updates بروید، نسخه فعلی وردپرس‌تان را نشان می‌دهد. در این قسمت شما همچنین می‌توانید یک به‌روزرسانی برای هسته وردپرس، قالب یا افزونه‌های خود راه اندازید.

 

چنانچه سایت شما اخیراً به‌روزرسانی شده است، ممکن است با یک پیغام هنگام به‌روزرسانی یا نصب مجدد هر چیزی روبه‌رو شوید: “Another update is currently in progress”

در این مواقع، همه دکمه‌های به روز رسانی حذف می‌شوند و از انجام هر کار دیگری در صفحه جلوگیری می‌شود.

 

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

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

بنابراین، مشاهده این صفحه هنگام اجرای به‌روزرسانی طبیعی است، اما به جا ماندن آن برای چند ساعت عادی نیست.

در حین به روزرسانی، وردپرس عمداً پایگاه داده شما را قفل می‌کند، اما گاهی اوقات قفل به درستی حذف نمی‌شود. شاید به‌دلیل بروز مشکل در اتصال سرور یا مشکل دیگری، به‌روزرسانی ممکن است به‌درستی تمام نشده باشد، به همین دلیل صفحه “Update in progress” تا زمانی که مشکل را رفع نکنید، باقی خواهد ماند.

 

چرا بروزرسانی‌های هسته، پایگاه داده وردپرس را قفل می‌کنند؟

هر زمان که وردپرس یک به‌روزرسانی هسته را اجرا می‌کند، یک ردیف به پایگاه داده اضافه می‌نماید تا از اجرای هر گونه به‌روزرسانی دیگر (از جمله به‌روزرسانی‌های افزونه و قالب) در طول به‌روزرسانی (گاهی تا 15 دقیقه پس از تکمیل) جلوگیری کند. اگرچه به روز رسانی 5 ثانیه طول بکشد، ولیکن به‌روزرسانی‌های دیگر همچنان به مدت 15 دقیقه مسدود خواهند بود.

دلیل این کار نیز کاملاً بدیهی است؛ اگر یک جدول پایگاه داده به طور همزمان از دو منبع مختلف به روز شود، ممکن است منجر به خراب شدن پایگاه داده و از دست رفتن داده‌های مهم در سایت شما شود.

به عنوان مثال، اگر یک بروزرسانی قالب و یک بروزرسانی هسته را همزمان اجرا کنید، احتمال این وجود دارد که هر دو عملیات در نهایت یک جدول پایگاه داده را تغییر دهند و کل سایت شما را از بین ببرند.

بنابراین، این قفل بروزرسانی از آسیب رساندن به سایت و داده‌های مهم شما یا هر روال به‌روزرسانی خودکار دیگری جلوگیری می‌کند.

به همین دلیل است که توصیه می‌شود 15 دقیقه صبر کنید و سعی ننمایید به صورت دستی قفل را برای اجرای بروزرسانی دوم بردارید؛ زیرا ممکن است عواقب جدی داشته باشد.

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

 

این مطلب نیز ممکن است برای شما مفید باشد: به روزرسانی افزونه های وردپرس

 

3 راه برای رفع خطای به روز رسانی وردپرس در حال اجرا

مشاهده پیام "update in progress" برای حدود 15 دقیقه پس از شروع یک به‌روزرسانی طبیعی است؛ بنابراین خیلی سریع با پایگاه داده خود درگیر نشوید. اما اگر مدتی صبر کرده‌اید و همچنان خطا را می‌بینید، احتمالاً زمان آن رسیده که اقدامات بیشتری را با دستان خود انجام دهید.

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

اگر هیچ یک از این مراحل کار نکرد یا این روش‌ها برای شما سخت است، همیشه می‌توانید با میزبان خود تماس بگیرید و از او کمک بخواهید.

 

استفاده از یک پلاگین

معمولاً رفع این مشکل مستلزم حفاری در پایگاه داده یا استفاده از ابزارهای توسعه‌دهنده پیشرفته مانند WP-CLI است، اما اگر نمی‌خواهید چیزی را به خطر بیندازید، گزینه بسیار ساده‌تری در دسترس است و آن استفاده از افزونه Fix Another Update In Progress است.

اگرچه افزونه Fix Another Update In Progress، یک افزونه قدیمی است که مدت زیادی است به روز نشده است، ولیکن بررسی‌های اخیر نشان می‌دهد که هنوز در رفع این مشکل به خوبی کار می‌کند. با توجه به اینکه گزینه‌های زیادی برای رفع این مشکل وجود ندارد؛ بنابراین، این بهترین گزینه در مخزن وردپرس است. اما به نظر می‌رسد که دیگر توسط توسعه دهنده پشتیبانی نمی‌شود، بنابراین با مسئولیت خود از آن استفاده کنید.

به منظور نصب این افزونه، وارد وردپرس خود شده و به Plugins > Add New بروید. عبارت “fix another update in progress” را جستجو کرده و برای نصب افزونه کلیک نمایید.

شما همچنین می‌توانید افزونه را به صورت دستی دانلود کرده و در این صفحه بر روی آپلود افزونه کلیک نمایید.

هنگامی‌که آن را فعال کردید، یک منوی جدید در بخش Setting با نام Fix Another Update In Progress خواهید دید.

 

این ابزار چنانچه قفل را در پایگاه داده شما تشخیص دهد، صفحه‌ای مشابه زیر را نشان می‌دهد. کافیست روی دکمه Fix Update Lock وردپرس کلیک کنید تا آن پیغام حذف شود.

 

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

 

استفاده از PhpMyAdmin

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

در این روش، ابتدا باید وارد PhpMyAdmin شوید. کاربران هاست‌های مختلف معمولاً می‌توانند از طریق سی‌پنل به آن دسترسی داشته باشید.

 

در منوی سمت چپ با چندین منوی کشویی، پایگاه داده سایت خود را باز کرده و wp_options را انتخاب نمایید.

 

هنگامی‌که روی wp_options کلیک کردید، باید جدولی از ورودی‌های مختلف پایگاه داده را مشاهده کنید. ممکن است آن را به راحتی در لیست ببینید، یا اینکه ممکن است جدول شما خیلی بزرگ باشد. اگر نتوانستید آن را پیدا کنید، از نوار Filter rows بالای جدول استفاده نمایید و «core_updater.lock» را وارد کنید تا دقیقاً برروی آن قرار بگیرید.

اکنون روی Delete در ردیف "core_updater.lock" کلیک نمایید.

 

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

 

استفاده از WP-CLI

اگر کار کردن با پایگاه داده برای شما سخت است، یک راه حل سریع و آسان وجود دارد: WP-CLI

WP-CLI، رابط خط فرمان وردپرس است؛ به عبارت دیگر راهی برای تعامل با پایگاه داده یا سایر جنبه‌های سایت شما بدون نیاز به پیمایش دستی از طریق cPanel و PhpMyAdmin است. با استفاده از این رابط خط فرمان، کافیست یک خط کد وارد کنید تا مشکل شما فوراً حل شود.

این روزها بسیاری از هاست‌های وردپرس قبلاً با WP-CLI نصب شده‌اند، بنابراین نیازی به انجام تنظیمات سخت ندارید.

مانند ویرایش مستقیم پایگاه داده خود، باید قبل از اجرای خط فرمان از سایت خود نسخه پشتیبان تهیه کنید.

در این روش باید از اتصال SSH استفاده نمایید. بدین منظور کاربران ویندوز باید برنامه‌ای مانند PuTTY را نصب کنند، در حالی که کاربران مک و لینوکس قبلاً یک ترمینال داخلی دارند.

شما باید گواهی SSH خود را از میزبان خود دریافت نمایید. ممکن است بتوانید آن را در cPanel تحت دسترسی SSH پیدا کنید.

کاربران ویندوز باید PuTTY را نصب نمایند و نام میزبان/IP، پورت، نام کاربری و رمز عبور ارائه شده توسط هاست خود را وارد کنند.

 

این مطلب نیز ممکن است برای شما مفید باشد: نحوه اتصال به ssh

 

کاربران مک و لینوکس می‌توانند ترمینال را باز کرده و دستور زیر را وارد نمایند:

ssh username@hostip -p portnumber

اگر پسوردتان نیاز بود، آن را وارد کنید.

اکنون، (چه از PuTTY در ویندوز و چه از ترمینال در مک یا لینوکس استفاده می‌کنید) باید بتوانید دستور زیر را در سرور خود وارد نمایید:

wp option delete core_updater.lock

 

 

 

منبع:

kinsta