رفع ارور Destination Folder Already Exists در وردپرس
خلاصه (TL;DR): خطای «Destination folder already exists» هنگام نصب یا بهروزرسانی افزونه یا قالب در وردپرس یعنی پوشهای با همان نام از قبل در مسیر wp-content/plugins یا wp-content/themes وجود دارد و وردپرس اجازه ندارد روی آن بنویسد. راهحل ساده است: پوشهٔ قدیمی یا ناقص را از طریق FTP یا File Manager حذف کنید و سپس دوباره نصب را انجام دهید. علت رایج، نصب ناتمام قبلی، تلاش برای نصب دستی افزونهای که از قبل هست، یا باقیماندن پوشهٔ خالی پس از حذف ناقص است. در ادامه سه روش حذف پوشه و راه پیشگیری را توضیح میدهیم.
این یکی از رایجترین و در عین حال بیخطرترین خطاهای وردپرس است. برخلاف ظاهر نگرانکنندهاش، معمولاً به معنی خرابی سایت نیست، بلکه فقط یک تداخل نام پوشه است. وردپرس هنگام نصب یک افزونه یا قالب، ابتدا یک پوشه با نام آن میسازد؛ اگر آن پوشه از قبل وجود داشته باشد، وردپرس برای جلوگیری از بازنویسی و از دست رفتن احتمالی داده، عملیات را متوقف و این پیام را نمایش میدهد.
ارور Destination Folder Already Exists یعنی چه؟
پیام کامل معمولاً به این شکل است: «Destination folder already exists. /home/user/public_html/wp-content/plugins/plugin-name/». این پیام دقیقاً به شما میگوید کدام پوشه باعث تداخل شده است. وردپرس هنگام نصب، فایل zip را باز و محتوای آن را در یک پوشهٔ جدید کپی میکند؛ اگر پوشهای با همان نام موجود باشد، از ادامهٔ کار خودداری میکند تا نسخهٔ فعلی شما پاک نشود.
این رفتار در واقع یک مکانیزم ایمنی است. اما وقتی میخواهید همان افزونه را دوباره یا نسخهٔ جدیدتری از آن را نصب کنید، همین مکانیزم مانع کارتان میشود.
چرا این خطا رخ میدهد؟
چند سناریوی رایج باعث بروز این خطا میشوند:
- نصب دستی افزونهای که از قبل نصب است: اگر بخواهید نسخهٔ جدید را با آپلود فایل zip نصب کنید در حالی که نسخهٔ قدیمی هنوز فعال است.
- نصب ناتمام قبلی: اگر نصب قبلی بهدلیل قطع اتصال یا اتمام حافظه ناقص مانده و پوشهٔ خالی باقی گذاشته باشد.
- حذف ناقص افزونه: گاهی پس از حذف افزونه، پوشهٔ آن بهطور کامل پاک نمیشود و باقی میماند.
- انتقال یا بازیابی سایت: پس از مهاجرت، ممکن است پوشههای تکراری در مسیر باقی بماند.
جدول زیر رابطهٔ سناریو و بهترین راهحل را نشان میدهد:
| سناریو | وضعیت پوشه | راهحل مناسب |
|---|---|---|
| بهروزرسانی دستی افزونهٔ فعال | پوشهٔ سالم موجود | استفاده از افزونهٔ جایگزینی یا بهروزرسانی خودکار |
| نصب ناتمام قبلی | پوشهٔ خالی یا ناقص | حذف پوشه و نصب مجدد |
| حذف ناقص | پوشهٔ باقیمانده | حذف دستی پوشه |
راهحل اول: حذف پوشه از طریق File Manager در cPanel
سادهترین روش برای اکثر کاربران این است:
- وارد کنترلپنل هاست (cPanel یا DirectAdmin) شوید و بخش File Manager را باز کنید.
- به مسیر
public_html/wp-content/plugins(برای افزونه) یاpublic_html/wp-content/themes(برای قالب) بروید. - پوشهای را که در پیام خطا نامش آمده پیدا کنید.
- اگر مطمئن هستید که این پوشه قدیمی یا ناقص است، آن را انتخاب و حذف کنید.
- به داشبورد وردپرس برگردید و نصب یا بهروزرسانی را دوباره انجام دهید.
کنترلپنلهای cPanel و DirectAdmin که در سرویسهای هاست برتینا ارائه میشوند، این کار را با یک رابط گرافیکی ساده ممکن میکنند و نیازی به دانش فنی خاصی ندارد.
راهحل دوم: حذف پوشه از طریق FTP
اگر با نرمافزارهای FTP مانند FileZilla کار میکنید:
- با اطلاعات FTP خود به سرور متصل شوید.
- به پوشهٔ
wp-content/pluginsیاwp-content/themesبروید. - پوشهٔ مورد نظر (با همان نامی که در خطا آمده) را انتخاب و حذف کنید.
- اتصال را ببندید و دوباره از داشبورد وردپرس نصب را انجام دهید.
پیش از حذف، اگر مطمئن نیستید، ابتدا یک نسخهٔ پشتیبان از پوشه بگیرید تا در صورت نیاز بازگردانی امکانپذیر باشد.
راهحل سوم: استفاده از افزونه برای جایگزینی خودکار
اگر میخواهید نسخهٔ جدید یک افزونهٔ فعال را نصب کنید بدون آنکه ابتدا پوشهٔ قدیمی را دستی حذف کنید، افزونههای «جایگزینی افزونه/قالب» این کار را خودکار انجام میدهند. این افزونهها هنگام آپلود فایل zip، پوشهٔ قبلی را با نسخهٔ جدید جایگزین میکنند و از بروز خطا جلوگیری میکنند. پس از استفاده، میتوانید افزونهٔ کمکی را غیرفعال کنید.
برای افزونههایی که در مخزن رسمی وردپرس هستند، بهترین راه استفاده از دکمهٔ بهروزرسانی خودکار در بخش «افزونهها» است که این مشکل را بهکلی دور میزند.
رفع خطا هنگام بهروزرسانی قالب
این خطا فقط مخصوص افزونهها نیست و هنگام نصب یا بهروزرسانی دستی قالب هم رخ میدهد. اگر میخواهید نسخهٔ جدید یک قالب فعال را با آپلود فایل zip نصب کنید، وردپرس بهدلیل وجود پوشهٔ قالب قبلی خطا میدهد. برای رفع آن:
- ابتدا مطمئن شوید قالب دیگری بهعنوان قالب پیشفرض فعال است، چون نمیتوانید قالب فعال را حذف کنید.
- به مسیر
wp-content/themesبروید و پوشهٔ قالب قدیمی را حذف کنید. - نسخهٔ جدید را از داشبورد یا با آپلود zip نصب کنید.
- سپس قالب جدید را دوباره بهعنوان قالب فعال انتخاب کنید.
نکتهٔ مهم این است که در قالبهایی که از child theme استفاده میکنند، فقط پوشهٔ قالب اصلی (parent) را که در خطا آمده حذف کنید و به child theme دست نزنید تا سفارشیسازیهای شما حفظ شود.
رفع خطا با استفاده از WP-CLI
اگر روی سرور مجازی یا اختصاصی دسترسی SSH دارید، WP-CLI سریعترین راه برای مدیریت این خطاست. با دستورهای زیر میتوانید بدون درگیرشدن با تداخل پوشه، افزونه یا قالب را نصب و جایگزین کنید:
wp plugin install plugin-name --forceافزونه را دانلود و پوشهٔ قبلی را با نسخهٔ تازه جایگزین میکند، بدون خطای Destination Folder.wp theme install theme-name --forceهمین کار را برای قالب انجام میدهد.wp plugin update --allهمهٔ افزونهها را بهروز میکند بدون تداخل نام پوشه.
پرچم --force دقیقاً برای همین موقعیت طراحی شده و پوشهٔ موجود را با نسخهٔ جدید بازنویسی میکند. دسترسی به این ابزار قدرتمند یکی از مزایای استفاده از سرور مجازی با دسترسی root است که مدیریت وردپرس را بهشدت ساده میکند.
چطور از بروز دوبارهٔ این خطا جلوگیری کنیم؟
برای اجتناب از تکرار این خطا، این نکات را رعایت کنید:
- از بهروزرسانی خودکار استفاده کنید: برای افزونههای موجود در مخزن، بهروزرسانی از داشبورد این خطا را ایجاد نمیکند.
- افزونهها را کامل حذف کنید: هنگام حذف افزونه، مطمئن شوید پوشهٔ آن نیز پاک شده است.
- حافظهٔ کافی PHP: نصب ناتمام اغلب بهدلیل کمبود حافظه رخ میدهد؛ مقدار
memory_limitرا به سطح مناسب افزایش دهید. - اتصال پایدار: هنگام نصب، از قطع نشدن اتصال اینترنت مطمئن شوید تا نصب نیمهکاره نماند.
منابع کافی سرور نقش مهمی در جلوگیری از نصبهای ناتمام دارد. هاستهایی با دیسک NVMe و منابع پایدار مانند سرویسهای برتینا، احتمال نصب ناقص و در نتیجه این خطا را کاهش میدهند.
چرا نصب ناتمام رخ میدهد و چطور آن را ریشهای حل کنیم؟
پوشههای ناقص که باعث این خطا میشوند، اغلب نتیجهٔ نصبی هستند که در نیمهٔ راه متوقف شده است. شناخت علل این توقف کمک میکند مشکل را ریشهای حل کنید:
- کمبود حافظهٔ PHP: اگر
memory_limitپایین باشد، هنگام استخراج فایل zip حجیم، فرایند متوقف میشود و پوشهٔ ناقص باقی میماند. افزایش این مقدار به ۲۵۶ مگابایت اغلب مشکل را حل میکند. - محدودیت زمان اجرا: مقدار
max_execution_timeپایین باعث میشود نصب افزونههای بزرگ نیمهکاره رها شود. افزایش آن به سرور فرصت میدهد کار را تمام کند. - قطع اتصال اینترنت: اگر هنگام آپلود، اتصال شما قطع شود، فایل بهطور کامل منتقل نمیشود.
- مشکل دسترسی فایل (Permissions): اگر مجوز پوشهٔ
wp-contentنادرست باشد، وردپرس نمیتواند نصب را کامل کند. مجوز صحیح معمولاً ۷۵۵ برای پوشهها و ۶۴۴ برای فایلهاست.
با اصلاح این عوامل، نهتنها این خطا بلکه بسیاری از خطاهای دیگر نصب و بهروزرسانی نیز برطرف میشوند. منابع پایدار سرور در این میان نقش کلیدی دارد؛ هاستهایی با دیسک NVMe و منابع تضمینشده مانند سرویسهای هاست برتینا احتمال نصب ناتمام را به حداقل میرسانند.
نکتهٔ مهم دربارهٔ حذف پوشهها
پیش از حذف هر پوشه، این نکات را در نظر بگیرید:
- فقط پوشهای را حذف کنید که نامش دقیقاً در پیام خطا آمده است.
- پوشههای
wp-admin،wp-includesو فایلwp-config.phpرا هرگز دست نزنید. - اگر افزونه تنظیمات مهمی دارد، توجه کنید که حذف پوشه معمولاً دادههای ذخیرهشده در دیتابیس را پاک نمیکند، اما بهتر است پیش از هر تغییری بکاپ بگیرید.
اگر روی هاست اشتراکی هستید و به File Manager دسترسی ندارید یا مطمئن نیستید، بهجای ریسک، از پشتیبانی هاست کمک بگیرید. پشتیبانی ۲۴/۷ فارسی میتواند پوشهٔ درست را برای شما شناسایی و حذف کند.
تفاوت این خطا با سایر خطاهای نصب افزونه
وردپرس هنگام نصب افزونه و قالب میتواند چند خطای مختلف نمایش دهد که گاهی با هم اشتباه گرفته میشوند. شناخت تفاوت آنها به رفع سریعتر کمک میکند:
- Destination folder already exists: پوشهای با همان نام از قبل وجود دارد؛ راهحل، حذف پوشهٔ تکراری است.
- The uploaded file exceeds the upload_max_filesize: حجم فایل zip از حد مجاز سرور بیشتر است؛ باید محدودیت آپلود را افزایش دهید.
- Could not create directory: مشکل در مجوز دسترسی پوشهٔ
wp-content؛ باید مجوزها را اصلاح کنید. - Installation failed / PCLZIP error: فایل zip خراب است یا بهطور کامل دانلود نشده؛ فایل را دوباره دریافت کنید.
هرکدام از این خطاها ریشهٔ متفاوتی دارند، بنابراین اولین قدم همیشه خواندن دقیق متن پیام است. خطای Destination Folder از همه سادهتر است، چون فقط به یک حذف پوشهٔ ساده نیاز دارد و هیچ ریسک امنیتی یا دادهای در پی ندارد. اگر روی هاست اشتراکی هستید و در تشخیص نوع خطا مطمئن نیستید، پشتیبانی ۲۴/۷ فارسی میتواند بهسرعت شما را راهنمایی کند.
سوالات متداول
آیا حذف پوشهٔ افزونه، تنظیمات آن را پاک میکند؟
معمولاً خیر. بیشتر افزونهها تنظیمات خود را در دیتابیس ذخیره میکنند، بنابراین حذف پوشه و نصب مجدد اغلب تنظیمات را حفظ میکند. با این حال برای اطمینان، پیش از حذف یک بکاپ کامل تهیه کنید.
چرا این خطا هنگام بهروزرسانی خودکار رخ نمیدهد؟
چون در بهروزرسانی خودکار، وردپرس ابتدا نسخهٔ قدیمی را بهدرستی مدیریت و جایگزین میکند. این خطا بیشتر هنگام نصب دستی فایل zip روی افزونهٔ موجود رخ میدهد.
آیا این خطا نشانهٔ هک یا بدافزار است؟
خیر. این خطا یک تداخل ساده در نام پوشه است و ارتباطی با مسائل امنیتی ندارد. کافی است پوشهٔ اضافه را حذف کنید.
اگر پوشه اصلاً وجود نداشت چه کنم؟
گاهی خطا بهدلیل کش مرورگر یا کش سرور نمایش داده میشود در حالی که پوشه واقعاً پاک شده است. کش را پاک کنید، از داشبورد خارج و دوباره وارد شوید و نصب را تکرار کنید.
نقش مجوز دسترسی فایلها در این خطا
گاهی حتی پس از حذف پوشهٔ تکراری، خطا دوباره برمیگردد یا حذف پوشه ناموفق میشود. علت رایج، مجوز دسترسی نادرست فایلها و پوشههاست. اگر مالکیت (ownership) پوشهٔ wp-content یا مجوزهای آن اشتباه باشد، وردپرس نه میتواند پوشه را کامل حذف کند و نه نصب جدید را بهپایان برساند. مجوز استاندارد و امن معمولاً ۷۵۵ برای پوشهها و ۶۴۴ برای فایلهاست و مالک فایلها باید همان کاربری باشد که وبسرور با آن اجرا میشود. در cPanel میتوانید از بخش File Manager مجوز هر پوشه را با کلیک راست و انتخاب Permissions بررسی و اصلاح کنید. روی سرور مجازی یا اختصاصی نیز با دستور chmod و chown میتوانید این تنظیمات را دقیق کنترل کنید. اصلاح مجوزها اغلب نهتنها این خطا، بلکه بسیاری از مشکلات آپلود و نصب را یکجا برطرف میکند.
جمعبندی
خطای Destination Folder Already Exists با وجود ظاهر نگرانکنندهاش، یکی از سادهترین خطاهای وردپرس برای رفع است: کافی است پوشهٔ تکراری یا ناقصی را که در پیام خطا نامش آمده، از طریق File Manager یا FTP حذف کنید و دوباره نصب را انجام دهید. برای پیشگیری، از بهروزرسانی خودکار استفاده کنید، افزونهها را کامل حذف کنید و حافظهٔ کافی PHP فراهم کنید. زیرساخت پایدار نقش مهمی در جلوگیری از نصبهای ناتمام دارد؛ هاست وردپرس برتینا با دیسک NVMe، LiteSpeed، کنترلپنل cPanel و پشتیبانی ۲۴/۷ فارسی محیطی فراهم میکند که اینگونه خطاها کمتر رخ دهد و در صورت بروز، سریع رفع شود. اگر به کنترل کامل روی فایلها و منابع سرور نیاز دارید نیز سرور مجازی با دسترسی root انتخاب حرفهایتری است.




