دسته بندی:

آموزش افزودن قابلیت زیپ و آنزیب کردن به دایرکت ادمین

اگر نسخه دایرکت‌ادمین شما 1.688 یا جدیدتر است، فشرده‌سازی و باز کردن فایل زیپ به‌صورت داخلی در خود پنل انجام می‌شود و دیگر لازم نیست بسته‌ای روی سرور نصب کنید یا مقدار zip=1 را به کانفیگ اضافه کنید. اگر این دکمه‌ها را در فایل منیجر نمی‌بینید، تقریباً همیشه یا پنل قدیمی است، یا امکانات فایل منیجر با یک کلید کانفیگ محدود شده‌اند.

چرا دکمه فشرده‌سازی در فایل منیجر دیده نمی‌شود؟

سه دلیل رایج وجود دارد و ترتیب بررسی آن‌ها مهم است:

  • نسخه پنل قدیمی است. در نسخه‌های پیش از 1.688 دایرکت‌ادمین برای کار با زیپ به ابزارهای خود سیستم‌عامل تکیه می‌کرد؛ اگر بسته zip روی سرور نصب نبود، گزینه‌ای هم نمایش داده نمی‌شد.
  • کلید کانفیگ فعال نشده بود. این هم فقط مربوط به نسخه‌های قدیمی است: تا وقتی zip=1 در فایل directadmin.conf قرار نمی‌گرفت، ساخت آرشیو غیرفعال می‌ماند.
  • فایل منیجر عمداً محدود شده است. مدیر سرور می‌تواند با کلید filemanager_disable_features بخش‌هایی از فایل منیجر، از جمله استخراج آرشیو، را خاموش کند.

قدم اول: نسخه دایرکت‌ادمین را مشخص کنید

با دسترسی روت در SSH این دستور را بزنید:

da version

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

da update

همین کار از مسیر Admin Level و سپس Licensing / Updates و گزینه Update DirectAdmin هم انجام می‌شود. دایرکت‌ادمین نرم‌افزاری تجاری است و به‌روزرسانی با لایسنس فعال انجام می‌گیرد؛ اگر لایسنس سرور شما منقضی شده، اول باید از راه تهیه یا تمدید لایسنس دایرکت‌ادمین وضعیت آن را درست کنید.

در نسخه‌های جدید دیگر کاری لازم نیست

در نسخه 1.688 که پاییز ۱۴۰۴ منتشر شد، دایرکت‌ادمین پشتیبانی از آرشیو zip را به کدِ خودش منتقل کرد و وابستگی به ابزارهای zip سیستم‌عامل را کنار گذاشت. نتیجه مستقیم این تغییر: کلیدهای zip، zip_bin، unzip_bin و extra_unzip_option در فایل کانفیگ دیگر بی‌اثر هستند. پس اگر آموزشی به شما می‌گوید این مقادیر را ست کنید، آن آموزش برای نسخه‌های قدیمی نوشته شده و روی پنل امروزی هیچ تغییری ایجاد نمی‌کند.

یک نکته ظاهری هم هست: از نسخه 1.691 نام پنجره Compress به Archive تغییر کرده است. اگر دنبال دکمه‌ای به اسم Compress می‌گردید و پیدا نمی‌کنید، همان Archive جای آن را گرفته و خطاها را هم در همان پنجره نشان می‌دهد.

نصب بسته‌های zip و unzip روی سرور

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

  • AlmaLinux، Rocky Linux و RHEL نسخه ۸، ۹ و ۱۰: dnf install zip unzip
  • Debian و Ubuntu: apt update && apt install zip unzip

آموزش‌های قدیمی yum install zip را پیشنهاد می‌دهند. آن دستور برای CentOS نوشته شده بود؛ CentOS 7 در تیر ۱۴۰۳ به پایان پشتیبانی رسید و CentOS 8 زودتر از آن. روی توزیع‌های امروزی yum در بهترین حالت فقط نام مستعاری برای dnf است و روی دبیان و اوبونتو اصلاً وجود ندارد. برای اطمینان از نصب شدن بسته‌ها:

command -v zip unzip

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

فعال‌سازی روی نسخه‌های قدیمی‌تر

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

da config-set zip 1 --restart

سوییچ --restart بعد از ذخیره مقدار، سرویس را هم ری‌استارت می‌کند. روش قدیمی، یعنی باز کردن /usr/local/directadmin/conf/directadmin.conf و افزودن دستی خط، هنوز کار می‌کند؛ اما در آن حالت ری‌استارت را با systemctl restart directadmin انجام دهید. دستور service directadmin restart که در آموزش‌های قدیمی می‌بینید مربوط به سیستم init قبلی است و روی توزیع‌های امروزی فقط به systemd پاس داده می‌شود.

اگر باز هم دکمه‌ای ظاهر نشد

مقدار فعلی محدودیت‌های فایل منیجر را ببینید:

da config | grep filemanager_disable_features

این کلید مجموع چند بیت است. بیت FM_F_EXTRACTABLE = 256 مربوط به استخراج آرشیو و بیت FM_F_DOWNLOAD_AND_COMPRESS = 32768 مربوط به دانلود به‌صورت فشرده است. اگر عدد ذخیره‌شده شامل این بیت‌ها باشد، دکمه‌های مربوطه پنهان می‌شوند. برداشتن کامل محدودیت‌ها با این دستور انجام می‌شود:

da config-set filemanager_disable_features 0 --restart

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

تست کنید که واقعاً کار می‌کند

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

کجا واقعاً به درد می‌خورد

سه کاربرد عملی که بیشترین وقت را برای شما ذخیره می‌کنند:

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

برای آرشیوهای بزرگ سراغ SSH بروید

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

  • ساخت آرشیو: tar -czf backup.tar.gz public_html
  • دیدن فهرست محتویات پیش از استخراج: tar -tzf backup.tar.gz | head
  • استخراج در مسیر دلخواه: tar -xzf backup.tar.gz -C /home/user/domains/example.com/
  • باز کردن زیپ بدون بازنویسی فایل‌های موجود: unzip -n archive.zip -d /path/to/target

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

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

chown -R user:user /home/user/domains/example.com/public_html

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

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