این خطا یکی از خطاهای نسبتاً رایج در وردپرس است که معمولاً هنگام نصب یا بروزرسانی قالب و افزونهها نمایش داده میشود که اغلب باعث سردرگمی مدیران سایت میشود ،زیرا در ظاهر پیام مشخصی از علت اصلی مشکل ارائه نمیدهد.
در این مقاله، بهصورت کاملاً کاربردی بررسی میکنیم :
- خطای PCLZIP_ERR_MISSING_FILE دقیقاً چیست؟
- چرا در هاست های وردپرسی و لینوکسی رخ میدهد؟
- در چه شرایطی بیشتر ظاهر میشود؟
- و از همه مهمتر، چطور میتوان آن را بهصورت قطعی برطرف کرد؟
خطای PCLZIP_ERR_MISSING_FILE چیست؟
در وردپرس، برای فشردهسازی و استخراج فایلها (ZIP)، از کتابخانهای به نام PclZip استفاده میشود. زمانی که وردپرس قصد دارد یک فایل ZIP (مثلاً قالب یا افزونه) را استخراج کند اما به هر دلیلی به فایل موردنظر دسترسی ندارد، این خطا رخ میدهد.
به زبان ساده، وردپرس انتظار دارد فایلی وجود داشته باشد، اما آن فایل :
- یا ناقص آپلود شده.
- یا بنا به دلایلی حذف شده.
- یا بهدرستی شناسایی نشده است.
خطای PCLZIP_ERR_MISSING_FILE در چه مواقعی رخ میدهد؟
این خطا بیشتر در سناریوهای زیر مشاهده میشود :
- هنگام نصب افزونه از پیشخوان وردپرس
- هنگام آپلود قالب بهصورت فایل ZIP
- زمان بروزرسانی وردپرس، افزونه یا قالب
- بعد از انتقال سایت به هاست جدید
- روی هاستهایی با محدودیت منابع یا تنظیمات امنیتی خاص
دلایل اصلی بروز خطای PCLZIP_ERR_MISSING_FILE در وردپرس
در این بخش، دلایل فنی را بررسی میکنیم تا بدانیم دقیقاً دنبال چه چیزی باید بگردیم.
۱ : ناقص بودن فایل ZIP قالب یا افزونه
اگر فایل ZIP :
- در هنگام دانلود با مشکلی مواجه گردیده
- هنگام آپلود قطع شده
- و یا از منبعی نامعتبر دریافت شده باشد
وردپرس هنگام استخراج آن با خطای Missing File مواجه میشود.
۲ : کمبود فضای دیسک (Disk Space) در هاست
در هاست، به خصوص بر روی سرورهای اشتراکی، اگر فضای دیسک پر باشد :
- فایل ZIP آپلود میشود.
- اما امکان استخراج کامل آن وجود ندارد.
در نتیجه، فایلهایی که باید ایجاد شوند به مشکل برخواهند خورد.
۳ : سطح دسترسی نادرست پوشهها
وردپرس برای استخراج فایلها نیاز دارد به مسیرهای زیر دسترسی نوشتن داشته باشد :
- wp-content
- wp-content/plugins
- wp-content/themes
- wp-content/uploads
اگر Permission این پوشهها به شکل درستی تنظیم نشده باشد، فرآیند استخراج ناقص میماند.
۴ : محدودیتهای PHP
محدود بودن موارد زیر میتواند باعث این خطا گردد :
- memory_limit
- max_execution_time
- upload_max_filesize
- post_max_size
بهخصوص در قالبها و افزونههای حجیم، این موضوع بسیار رایج است.
۵ : تداخل افزونههای امنیتی یا فایروال هاست
برخی افزونههای امنیتی یا تنظیمات ModSecurity :
- اجازه استخراج فایلها را نمیدهند.
- یا بخشی از فایل ZIP را مسدود میکنند.
در ظاهر فایل آپلود میشود، اما کامل استخراج نمیشود.
آموزش مرحلهبهمرحله رفع خطای PCLZIP_ERR_MISSING_FILE در وردپرس
در این قسمت، روشها بهگونهای نوشته شدهاند که برای شما مقدور باشد به صورت همزمان اجرا کنید.
روش اول : بررسی و آپلود مجدد فایل قالب یا افزونه
- فایل ZIP را مجددا دانلود نمایید (ترجیحاً از منبع اصلی)
- مطمئن شوید فایل ناقص نیست و یا حجم مشخصی دارد.
- مجدداً از پیشخوان وردپرس آپلود نمایید.
اگر مشکل از فایل باشد، معمولاً همین مرحله مشکل را حل میکند.
روش دوم : نصب دستی قالب یا افزونه از طریق File Manager
این روش یکی از قطعیترین راهحلها است.
مراحل :
- وارد File Manager هاست (دایرکت ادمین یا cPanel) شوید.
- به مسیر زیر بروید :
- wp-content/plugins
قالب :
- wp-content/themes
سپس فایل هارا آپلود کرده و از پیشخوان وردپرس فعال نمایید.
روش سوم : بررسی فضای دیسک هاست
- وارد کنترل پنل هاست شوید.
- میزان Disk Usage را بررسی نمایید.
- اگر فضا پر است، فایلهای بکاپ قدیمی را حذف کرده و اطلاعات اضافی را پاکسازی کنید.
بعد از آزادسازی فضا، دوباره نصب را انجام دهید.
روش چهارم : تنظیم صحیح Permission پوشهها
مقادیر پیشنهادی :
پوشهها : 755
فایلها : 644
پوشههای مهم :
- wp-content
- plugins
- themes
- uploads
از دادن Permission 777 خودداری کنید، زیرا میتواند ریسک و تبعات امنیتی داشته باشد.
روش پنجم : افزایش محدودیتهای PHP (در صورت امکان)
اگر به تنظیمات PHP دسترسی دارید، مقادیر زیر را بررسی کنید :
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64Mدر هاستهای دایرکت ادمین، این تنظیمات معمولاً از بخش Select PHP Version یا PHP Settings قابل تغییر است.
روش ششم : غیرفعالسازی موقت افزونههای امنیتی
- افزونههای امنیتی را موقتاً غیرفعال کنید.
- عملیات نصب را انجام دهید.
- سپس مجددا، افزونه امنیتی را فعال نمایید.
- اگر مشکل حل شد، باید تنظیمات آن افزونه را بررسی کنید.
آموزش کامل غیرفعالسازی افزونه ها از طریق پنل هاست را از اینجا ببنید.
آیا خطای PCLZIP_ERR_MISSING_FILE به هاست مربوط است؟
در بسیاری از موارد، بله.
این خطا بیشتر در هاستهایی رخ میدهد که :
- منابع محدود دارند.
- تنظیمات PHP بهینه نیست.
- یا محدودیتهای امنیتی سختگیرانه اعمال شده است.
استفاده از هاست لینوکسی استاندارد مخصوص وردپرس، احتمال بروز این خطا را به شدت کاهش میدهد.
کلام آخر
خطای PCLZIP_ERR_MISSING_FILE در وردپرس معمولاً به دلیل :
- فایل ناقص
- محدودیت منابع
- یا دسترسی نادرست پوشهها رخ میدهد.
با استفاده از روش های مرحله به مرحلهای که در این مقاله بررسی شد، میتوان این خطا را به صورت اصولی و قطعی برطرف نمود، بدون اینکه به ساختار سایت آسیبی وارد شود.