رفع خطاهای Updating Failed و Publishing Failed در وردپرس

آیا با خطاهای «به روزرسانی ناموفق» یا «انتشار ناموفق» در وردپرس خود مواجه شده اید و از مانع شدن سایت تان خسته اید؟ این مشکلات معمولاً ترکیبی از تنظیمات سرور، افزونه های ناسازگار یا محدودیت های حافظه هستند که به صورت ناخواسته عملکرد مدیریت محتوا را مختل می کنند. در ادامه، گام به گام و با پشتوانهٔ تجربهٔ متخصصان، روش های تشخیص دقیق علل اصلی و رفع مؤثر هر یک را بررسی می کنیم. از تنظیمات PHP و به روزرسانی های پایگاه داده تا مدیریت کش و بررسی لاگ های خطا، همهٔ جزئیات مورد نیاز برای بازگرداندن عملکرد عادی وب سایت در دسترس شما خواهد بود. با دنبال کردن این راهنما، نه تنها خطاهای فعلی برطرف می شوند، بلکه پایه ای مستحکم برای جلوگیری از بروز مشکلات مشابه در آینده شکل می گیرد. آماده اید تا کنترل کامل بر فرآیند به روزرسانی و انتشار محتوا را دوباره به دست بگیرید؟

فهرست مطالب

درک دلایل خطای به روزرسانی

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

در اکثر موارد، سرور به دلیل کمبود منابع نمی تواند به روزرسانی را تکمیل کند. حافظهٔ PHP (memory_limit)، زمان اجرای اسکریپت (max_execution_time) و فضای دیسک خالی، سه پارامتر کلیدی هستند که باید بررسی شوند. اگر سایت شما در یک هاست مشترک با محدودیت های سخت گیرانه میزبانی می شود، احتمالاً این مقادیر به صورت پیش فرض خیلی پایین تنظیم شده اند و فرآیند به روزرسانی قبل از اتمام کار قطع می شود.

دسترسی های فایل (file permissions) نقش مهمی در موفقیت به روزرسانی دارند. وردپرس به دسترسی نوشتن (write) برای پوشه های wp-content، wp-admin و فایل های هسته ای نیاز دارد. مقادیر معمولی برای این پوشه ها ۷۵۵ (rwxrwxrwx) یا ۷۵۴ (rwxr-xr-x) هستند؛ اگر این مقادیر کمتر باشند، سرور نمی تواند فایل های جدید را جایگزین کند و خطای “failed to update” ظاهر می شود. یک راه ساده برای تست، موقتاً تغییر سطح دسترسی به ۷۷۷ است؛ اگر به روزرسانی موفق شد، می توانید سطح دسترسی مناسب را پس از اتمام کار بازگردانید.

در نهایت، تداخل افزونه ها یا تم ها و نسخهٔ قدیمی PHP می توانند به روزرسانی را مختل کنند. افزونه ای که از توابع منسوخ شده استفاده می کند یا تمی که به صورت مستقیم به فایل های هسته ای دست می زند، ممکن است در هنگام فراخوانی wp‑upgrade.php خطا ایجاد کند. همچنین اگر PHP زیر نسخه 7.4 باشد، بسیاری از توابع جدید وردپرس کار نخواهند کرد. در این حالت، غیرفعال کردن موقت تمام افزونه ها (به جز افزونه های ضروری) و تغییر به یک تم پیش فرض مانند Twenty Twenty‑Three می تواند به سرعت نشان دهد که مشکل از کدام بخش می آید.

دلیلنشانهٔ خطاراه حل پیشنهادی
منابع سرور کم“Maximum execution time exceeded” یا “Failed to download update package”افزایش memory_limit و max_execution_time در php.ini
دسترسی های نادرست“Unable to write to directory” یا “Permission denied”تنظیم chmod پوشه ها به ۷۵۴/۷۵۵؛ اطمینان از مالکیت صحیح (www-data)
تداخل افزونه/تمخطاهای PHP در لاگ یا “Error establishing a database connection”غیرفعال سازی موقت همه افزونه ها و سوئیچ به تم پیش فرض
نسخهٔ PHP قدیمی“Call to undefined function” یا “Fatal error”به روزرسانی PHP به نسخهٔ ۷.۴ یا بالاتر توسط هاست

بررسی وضعیت اتصال سرور

یکی از رایج ترین دلایل بروز خطاهای Updating Failed و Publishing Failed، قطع یا ناپایداری اتصال سرور است. قبل از هر تغییر دیگری، وضعیت ارتباط وب سایت با سرور وب و پایگاه داده را بررسی کنید؛ حتی یک زمان تاخیر کوتاه (latency) می تواند عملیات بروز رسانی را ناتمام بگذارد. برای شروع، می توانید از ابزارهای خط فرمان مانند ping یا traceroute برای تست دسترسی به آدرس IP میزبان استفاده کنید و زمان پاسخ گویی را ثبت کنید.

اگر تست های پایه موفقیت آمیز بودند، نوبت به بررسی تنظیمات فایل wp-config.php می رسد. مقدار DB_HOST باید دقیقاً با نام یا IP سرور پایگاه داده شما همخوانی داشته باشد؛ هر گونه اشتباه (مانند وجود فضای خالی یا کاراکتر نامعتبر) باعث شکست اتصال می شود. همچنین، مطمئن شوید که پورت مورد استفاده (معمولاً 3306 برای MySQL) باز باشد؛ در صورت بسته بودن، می توانید با میزبان خود یا پشتیبانی سرور تماس بگیرید تا قوانین فایروال را اصلاح کنید.

در ادامه، وضعیت سرویس های مرتبط را از طریق پنل مدیریت هاست یا ابزارهای نظارتی بررسی کنید. بسیاری از ارائه دهندگان میزبانی، صفحه ای تحت عنوان Server Status یا Health Check دارند که به صورت زنده میزان استفاده از CPU، RAM و تعداد اتصال های همزمان را نشان می دهد. اگر سرور در وضعیت «overloaded» باشد یا تعداد اتصال های همزمان به حد مجاز رسیده باشد، بهتر است زمان بروز رسانی را به ساعاتی با ترافیک کمتر موکول کنید.

مرحلهابزار/روشنتیجه مورد انتظار
1. تست دسترسی پایهping / tracerouteپاسخ در کمتر از 200 ms
2. بررسی wp-config.phpمتن ویرایشگر، مرور مقدار DB_HOSTنام/آدرس صحیح، پورت باز
3. نظارت بر منابع سرورپنل هاست یا ابزار نظارت (مثلاً New Relic)CPU < 70 %، RAM < 80 %، اتصال همزمان < 70 % ظرفیت
4. تماس با پشتیبانیایمیل یا تیکت پشتیبانی هاستتایید رفع فیلتر یا افزایش محدودیت ها

به عنوان مثال، کاربری که در یک سرویس اشتراکی با محدودیت 20 اتصال همزمان کار می کرد، پس از دریافت خطای «Publishing Failed»، جدول بالا را دنبال کرد؛ پس از رفع محدودیت اتصال در تنظیمات فایروال، توانست به راحتی افزونه های خود را به روز کند. در مجموع، اطمینان از پایداری و صحت اتصال سرور پایه ای اساسی برای جلوگیری از خطاهای بروز رسانی در وردپرس است.

بررسی مجوزهای فایل ها و پوشه ها

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

در اکثر سرورهای لینوکسی، مقدار عددی مناسب برای پوشه ها755 و برای فایل ها644 است. عدد ۷۵۵ به معنای این است که صاحب (owner) می تواند خواندن، نوشتن و اجرا کند، در حالی که گروه و دیگران فقط می توانند بخوانند و اجرا کنند. عدد ۶۴۴ برای فایل ها به همین ترتیب به صاحب اجازه نوشتن می دهد ولی برای دیگران فقط خواندن کافی است. این تنظیمات تعادل بین امنیت و کارایی را فراهم می کند و به طور معمول با اکثر افزونه ها و پوسته های وردپرس سازگار است.

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

  1. از یک کلاینت FTP (مانند FileZilla) به ریشه سایت وصل شوید، روی پوشه wp‑content یا wp‑admin راست‑کلیک کنید و گزینه «File permissions» را انتخاب کنید؛ مقدار را به 755 (پوشه) یا 644 (فایل) تغییر دهید.
  2. اگر به خط فرمان دسترسی دارید، وارد پوشه وب سایت شوید و دستورات زیر را اجرا کنید:
    find . -type d -exec chmod 755 {} ;
    find . -type f -exec chmod 644 {} ;

    این دستورات به صورت بازگشتی تمام پوشه ها و فایل ها را با مقادیر مناسب تنظیم می کند.

  3. همچنین اطمینان حاصل کنید که مالک (owner) فایل ها با کاربری که وب سرور اجرا می شود (مثلاً www-data یا apache) هم خوانی دارد. برای تنظیم مالک می توانید از دستور chown -R www-data:www-data . استفاده کنید.

یک مثال عملی: فرض کنید پس از نصب یک افزونه جدید، هنگام ذخیره سازی تنظیمات، خطای «Publishing Failed» دریافت می کنید. با اتصال به سرور از طریق SSH و اجرای دستورات بالا، مجوزهای wp‑content/plugins را به 755 و مالک را به www-data تغییر می دهید؛ سپس می توانید بدون مشکل تنظیمات افزونه را ذخیره کنید. توجه داشته باشید که استفاده از 777 (دسترسی کامل برای همه) به عنوان راه حل موقت می تواند امنیت سایت را به خطر بیندازد و بهتر است پس از رفع مشکل، مجوزها را به مقادیر توصیه شده بازگردانید.

نوعمقدار پیشنهادیمالک پیشنهادی
پوشه755کاربر وب سرور (مثلاً www-data)
فایل644کاربر وب سرور (مثلاً www-data)

فعال سازی حالت رفع خطاهای PHP

زمانی که در وردپرس با خطاهای «Updating Failed» یا «Publishing Failed» مواجه می شوید، معمولاً علت اصلی، یک خطای PHP است که به صورت پیش فرض مخفی می ماند. (Debug Mode) به شما امکان می دهد تا پیام های خطا را ببینید و دقیقاً بفهمید چه چیزی باعث شکست عملیات می شود. این کار نه تنها برای تشخیص سریع مشکل مفید است، بلکه به خصوص هنگام نصب یا به روزرسانی افزونه ها و قالب ها، به عنوان یک ابزار پیشگیرانه عمل می کند.

برای روشن کردن این حالت کافی است فایل wp-config.php را در ریشهٔ نصب وردپرس باز کنید و خطوط زیر را (اگر قبلاً وجود ندارند) اضافه یا به روزرسانی کنید:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

در اینجا WP_DEBUG کلید اصلی است؛ وقتی مقدار true باشد، تمام هشدارها و خطاهای PHP ثبت می شوند. WP_DEBUG_LOG باعث می شود این پیام ها در فایلی به نام debug.log داخل پوشه wp-content ذخیره شوند. برای جلوگیری از نمایش خطاها به بازدیدکنندگان (که می تواند امنیت سایت را به خطر بیندازد) مقدار WP_DEBUG_DISPLAY را روی false می گذاریم.

پس از ذخیرهٔ تغییرات، دوباره عمل به روزرسانی یا انتشار مطلبی که قبلاً خطا می داد را انجام دهید. سپس به مسیر wp-content/debug.log رفته و محتوای آن را بررسی کنید. معمولاً پیام خطا شامل نام فایل، شماره خط و توضیح کوتاهی از مشکل است؛ برای مثال می توانید خط زیر را ببینید:

PHP Fatal error: Uncaught Error: Call to undefined function wp_insert_post() in /wp-content/plugins/example-plugin/example.php:45

در این مثال واضح است که افزونه ای سعی دارد تابعی را فراخوانی کند که یا بارگذاری نشده است یا نسخهٔ وردپرس شما آن را پشتیبانی نمی کند. با دانستن این اطلاعات می توانید به سرعت افزونهٔ مشکل دار را غیرفعال یا به روز کنید.

ثابتمقدار پیشنهادیتوضیح
WP_DEBUGtrueفعال سازی کلی حالت دیباگ
WP_DEBUG_LOGtrueثبت خطاها در wp-content/debug.log
WP_DEBUG_DISPLAYfalseپنهان کردن خطاها از نمایش عمومی

پس از رفع مشکل، به خاطر داشته باشید که دوباره مقادیر WP_DEBUG و WP_DEBUG_DISPLAY را به false برگردانید تا سایت در حالت تولید (Production) بدون نمایش پیام های فنی باقی بماند. این کار باعث می شود سایت شما هم زمان امن و کارآمد باشد.

به روزرسانی دستی هسته وردپرس

اگر هنگام به روزرسانی هستهٔ وردپرس یا انتشار پست ها با خطای «Updating Failed» یا «Publishing Failed» مواجه می شوید، یکی از راه های موثر برای عبور از این مانع، انجام به روزرسانی به صورت دستی است. این روش به خصوص زمانی مفید است که سرور یا افزونه ای مانع اجرای خودکار می شود و نیاز به بازنشانی فایل های هسته دارید.

قبل از هر کاری، یک پشتیبان کامل از دیتابیس و فایل های سایت بگیرید؛ می توانید از افزونه ای نظیر UpdraftPlus یا از ابزارهای میزبانی گر استفاده کنید. سپس سایت را در حالت maintenance mode قرار دهید تا بازدیدکنندگان به صفحهٔ موقت هدایت شوند و از بروز خطاهای بیشتر جلوگیری شود. برای فعال سازی این حالت کافی است فایلی به نام .maintenance خالی در ریشهٔ وردپرس ایجاد کنید.

گام بعدی دانلود آخرین نسخهٔ وردپرس از wordpress.org است. فایل zip را باز کنید و پوشهٔ wp-admin و wp-includes را به صورت بازنویسی (overwrite) در ریشهٔ نصب خود کپی کنید. سپس محتوای پوشهٔ wp-content را که شامل افزونه ها، قالب ها و رسانه هاست، به دقت بررسی کنید؛ فقط فایل های هسته ای داخل این پوشه را جایگزین نکنید، زیرا ممکن است تنظیمات سفارشی شما حذف شود.

مرحلهعملیاتنتیجه مورد انتظار
1ایجاد پشتیبان کاملقابلیت بازگشت به وضعیت قبلی در صورت بروز مشکل
2فعال سازی حالت نگهداریبازدیدکنندگان به صفحهٔ موقت هدایت می شوند
3جایگزینی پوشه های wp-admin و wp-includesفایل های هستهٔ خراب یا ناقص بازنویسی می شوند
4دستورات wp-admin/upgrade.phpپایگاه داده به روز می شود و خطاهای به روزرسانی رفع می گردد

پس از جایگزینی فایل ها، مرورگر را به آدرس /wp-admin/upgrade.php هدایت کنید؛ صفحه ای برای ارتقاء دیتابیس ظاهر می شود. روی «دکمهٔ ادامه» کلیک کنید تا فرآیند تکمیل شود. در نهایت، فایل .maintenance را حذف کنید و سایت را تست کنید؛ باید قادر باشید پست جدیدی منتشر کنید و خطای «Updating Failed» دیگر ظاهر نشود. اگر هنوز مشکلی باقی مانده بود، بررسی لاگ های سرور یا غیرفعال سازی موقت افزونه های کش می تواند کمک کننده باشد.

تنظیمات حافظه و زمان ساز PHP

خطای Updating Failed یا Publishing Failed معمولاً به دلیل محدودیت های پیش فرض حافظه (memory_limit) و زمان ساز اجرای اسکریپت (max_execution_time) در تنظیمات PHP رخ می دهد. وقتی وردپرس سعی می کند افزونه یا هسته را به روزرسانی کند، اگر عملیات بیش از حد حافظه یا زمان اختصاص یافته باشد، سرور پردازش را متوقف می کند و خطای فوق نمایش داده می شود. بنابراین اولین قدم بررسی و افزایش این دو مقدار است.

برای تغییر این تنظیمات می توانید یکی از روش های زیر را انتخاب کنید:

  • در فایل wp-config.php اضافه کنید: define('WP_MEMORY_LIMIT', '256M'); که حافظه وردپرس را به ۲۵۶ مگابایت افزایش می دهد.
  • در فایل .htaccess یا php.ini مقادیر زیر را تنظیم کنید:
    php_value memory_limit 256M
    php_value max_execution_time 300

    این مقدار زمان ساز را به ۳۰۰ ثانیه (5 دقیقه) ارتقا می دهد.

  • اگر از پنل مدیریت هاست (cPanel یا Plesk) استفاده می کنید، بخش PHP Settings یا MultiPHP INI Editor را باز کرده و مقادیر موردنظر را تغییر دهید.

به عنوان یک مثال عملی، فرض کنید وب سایت شما بر روی یک سرور اشتراکی با تنظیمات پیش فرض 64 MB حافظه و 30 ثانیه زمان اجرا میزبانی می شود. پس از افزودن کدهای بالا، حافظه به 256 MB و زمان اجرا به 300 ثانیه ارتقا می یابد؛ این تغییر معمولاً باعث می شود به روزرسانی های بزرگ یا انتشار پست های حاوی رسانه های سنگین بدون مشکل انجام شود.

تنظیممقدار پیش فرضمقدار پیشنهادی
memory_limit64 M256 M
max_execution_time30 s300 s
WP_MEMORY_LIMIT256 M

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

تست انتشار محتوا پس از رفع

پس از رفع خطاهای Updating Failed و Publishing Failed اولین قدم این است که یک پست آزمایشی بسازید. یک عنوان ساده مثل «تست انتشار» انتخاب کنید، متن کوتاهی بنویسید و سپس دکمه «انتشار» را بزنید. اگر پست بلافاصله در لیست نوشته ها ظاهر شد و URL آن در مرورگر به درستی باز شد، می توان گفت که مشکل اساسی برطرف شده است. در این مرحله بهتر است به سرعت صفحه را تازه کرده (Refresh) و بررسی کنید که محتوای شما همان طور که نوشته اید نمایش داده می شود.

برای اطمینان بیشتر، موارد زیر را به صورت گام به گام بررسی کنید:

  1. باز کردن پست از بخش All Posts و اطمینان از اینکه وضعیت آن «منتشر شده» است.
  2. کلیک بر روی لینک «View Post» و بررسی اینکه آدرس ثابت (Permalink) بدون خطای 404 یا ریدایرکت ناخواسته نمایش داده می شود.
  3. غیرفعال سازی موقت کش (Cache) سایت؛ در صورت استفاده از افزونه کش، گزینه «Clear Cache» را بزنید تا مطمئن شوید مشکل کش نیست.
  4. بررسی کنسول مرورگر برای پیام های خطا (JavaScript) که ممکن است مانع بارگذاری کامل صفحه شوند.

اگر هنوز مشکلی مشاهده شد، می توانید از WP_DEBUG استفاده کنید. این تنظیم در فایل wp-config.php را به true تغییر دهید تا پیام های خطا به صورت واضح در صفحه یا لاگ فایل ها ظاهر شوند. برای مثال، اگر پس از انتشار یک پست، خطای «Cannot modify header information» ظاهر شد، معمولاً به دلیل خروجی غیرمنتظره (مانند فضای خالی قبل از ) در یکی از فایل های قالب یا افزونه است. حذف یا اصلاح این خروجی معمولاً مشکل را حل می کند.

مورد بررسیروش تستنتیجه مورد انتظار
وضعیت پستباز کردن از All Posts«Published»
Permalinkکلیک بر «View Post»صفحه بدون خطا
کشپاک سازی کش سایتتغییرات بلافاصله دیده شود
خطاهای جاوااسکریپتبررسی کنسول مرورگربدون پیام خطا
WP_DEBUGفعال سازی در wp-config.phpنمایش پیام های خطا یا عدم وجود آن ها

در نهایت، یک بار دیگر یک پست دیگر با محتوا و تنظیمات متفاوت (مثلاً یک پست تصویری) منتشر کنید تا اطمینان حاصل شود که مشکل فقط به یک حالت خاص محدود نشده است. این کار به عنوان «تست استرس» ساده عمل می کند و نشان می دهد که تمام مسیرهای انتشار در سایت به درستی کار می کنند. اگر همه این گام ها بدون مشکل پیش رفت، می توانید با اطمینان کامل به ادامه تولید محتوا بپردازید.

سوالات متداول

چرا هنگام به روزرسانی وردپرس خطای Updating Failed ظاهر می شود

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

چطور می توانم خطای Publishing Failed را در ویرایشگر گوتنبرگ رفع کنم

ابتدا ویرایشگر گوتنبرگ را به حالت کلاسیک بازگردانید یا تمام افزونه های مربوط به بلاک را غیرفعال کنید. سپس تنظیمات Permalink را ذخیره کنید؛ در اکثر موارد این کار خطای Publishing Failed را برطرف می کند.

آیا افزونه های امنیتی می توانند مانع به روزرسانی شوند

بله، برخی افزونه های امنیتی درخواست های به روزرسانی را مسدود می کنند. برای تست، آنها را برای مدت کوتاهی غیرفعال کنید و دوباره عملیات به روزرسانی را انجام دهید.

چطور دسترسی های فایل و پوشه ها را برای رفع خطا تنظیم کنم

دسترسی پوشه wp‑content و فایل های داخل آن باید 755 و 644 باشد. می توانید با استفاده از FTP یا خط فرمان دستورات chmod را اعمال کنید تا از درست بودن مجوزها اطمینان حاصل کنید.

آیا می توانم به روزرسانی را به صورت دستی انجام دهم

دانلود آخرین نسخه وردپرس از مخزن رسمی، استخراج فایل ها و جایگزینی پوشه های core از طریق FTP یا WP‑CLI کافی است. پس از بارگذاری، به روزرسانی دیتابیس را در داشبورد تأیید کنید.

چک لیست عملی

  • دلیل های اصلی خطاهای به روزرسانی و انتشار را شناسایی کنید.
  • اتصال سرور به ویژه DNS و فایروال را بررسی کنید.
  • مجوزهای صحیح برای فایل ها و پوشه های وردپرس را تنظیم نمایید.
  • حالت رفع خطاهای PHP را فعال و لاگ ها را مرور کنید.
  • در صورت نیاز، هسته وردپرس را به صورت دستی به روزرسانی کنید.
  • مقدار حافظه و زمان ساز PHP را برای پردازش های سنگین افزایش دهید.
  • پس از اعمال تغییرات، یک پست جدید منتشر کرده و عملکرد را تست کنید.

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

دیدگاهتان را بنویسید

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