مالک یک وبسایت میتواند به شما دسترسی به یکی از وبسایتهایش را بدهد — نه به حساب کاربریاش، نه به صورتحسابهایش و نه به سایر وبسایتهایش — و شما با ورود (Login) اختصاصی خودتان در Zinn Digital® و ابزار خط فرمان (CLI) رایگان Zinnector® روی آن کار میکنید. این راهنما شامل هر دو بخش این فرآیند است: کارهایی که مالک انجام میدهد و کارهایی که شما انجام میدهید.
اگر پیش از این از Zinnector® استفاده نکردهاید، مقاله شروع کار با Zinnector® آن را در حدود دو دقیقه نصب میکند. هیچکدام از مراحل اینجا نیازی به خرید هاست ندارند.
برای مالک وبسایت — به اشتراکگذاری یک وبسایت
- وبسایت را در داشبورد خود باز کنید و به بخش Security بروید.
- در قسمت Who else can reach this site، گزینه Share this site را انتخاب کنید.
- آدرس ایمیل توسعهدهنده را وارد کنید. آنها از قبل نیازی به داشتن حساب کاربری ندارند — اگر هرگز وارد سیستم نشده باشند، دعوتنامهای دریافت میکنند و دسترسی بهمحض پذیرش آن آغاز میشود.
- یک نقش (Role) انتخاب کنید:
- Viewer — میتواند وبسایت را ببیند، اما هیچچیزی را نمیتواند تغییر دهد.
- Editor — نقشی که یک توسعهدهنده معمولاً به آن نیاز دارد. او میتواند فایلهای وبسایت را تغییر دهد، از wp-admin استفاده کند و آرشیوی از وبسایت را برای کار بهصورت محلی (Local) دانلود کند. آن آرشیو شامل پایگاه داده (Database) نیز هست.
- Manager — هر کاری که یک ویرایشگر میتواند انجام دهد، به علاوه امکان بازیابی نسخه پشتیبان (Backup).
- یک دلیل (Reason) وارد کنید و اگر کار تاریخ پایان مشخصی دارد، یک تاریخ انقضا (Expiry) تعیین کنید. دسترسی در آن تاریخ بهخودیخود متوقف میشود؛ نیازی نیست بهخاطر بسپارید که آن را حذف کنید.
- ذخیره کنید.
هر نقشی که انتخاب کنید، یک همکار هرگز نمیتواند وبسایت را حذف کند، صورتحسابهای شما را ببیند یا به سایر وبسایتهایتان دسترسی پیدا کند.
منظور از اینکه «آرشیو شامل پایگاه داده است» چیست
یک ویرایشگر یا مدیر میتواند کپیای از وبسایت را برای کار روی آن تهیه کند، و کپی یک وبسایت شامل فایلهای آن و پایگاه دادهاش است. پایگاه داده WordPress هرآنچه را که بازدیدکنندگان به وبسایت دادهاند در خود نگه میدارد — نام نظردهندگان و آدرسهای ایمیل آنها، حسابهای کاربری مشتریان، سفارشها و آدرسهای تحویل WooCommerce و ارسال فرمها.
این معمولاً دقیقاً همان چیزی است که یک توسعهدهنده نیاز دارد: بدون آن، او فقط قالب شما را روی یک وبسایت خالی میبیند. دانستن این موضوع مهم است، زیرا این دادهها اطلاعات شخصی واقعی هستند و صاحبان آنها مشتریان شما هستند، نه ما.
دو پیامد از این موضوع ناشی میشود و پلتفرم هر دو را برای شما انجام میدهد:
- هر خروجی در گزارش حسابرسی (Audit log) شما ثبت میشود. بخش Audit log را باز کنید و بهدنبال عبارت
site.backup.exported بگردید. هر ردیف نشان میدهد که چه کسی خروجی را گرفته، چه زمانی و آیا آن آرشیو حاوی پایگاه داده بوده است یا خیر. نیازی نیست بپرسید.
- میتوانید هر زمان که خواستید به آن پایان دهید. لغو دسترسی فوری است — در ادامه توضیح داده شده است.
اگر ترجیح میدهید آنها بدون پایگاه داده کار کنند، از آنها بخواهید هنگام دریافت (Pull) از پرچم --no-database استفاده کنند؛ این تنها یک پرچم است و بقیه کارها به همان صورت انجام میشود.
برای توسعهدهنده — آوردن وبسایت روی سیستم خودتان
۱. نصب Zinnector®
npm install -g zinnector
zinnector --version
شما به Node نسخه 24 یا جدیدتر نیاز دارید. دستور node باید نسخه v24 یا بالاتر را چاپ کند --version`.
۲. ورود به حساب کاربری خود
zinnector login
این دستور مرورگر شما را باز میکند و شما را با حساب کاربری اختصاصی خودتان در Zinn Digital® وارد میکند — همان حسابی که دعوتنامه به آن ارسال شده است. شما هرگز به رمز عبور مالک نیاز ندارید و آنها نیز نیازی به دادن رمز عبور به شما ندارند.
بررسی کنید چه دسترسیهایی به شما داده شده است:
zinnector sites
شما دقیقاً وبسایتهایی را که با شما به اشتراک گذاشته شدهاند خواهید دید و هیچ چیز دیگری را مشاهده نخواهید کرد. اگر فهرست خالی است، یعنی دعوتنامه هنوز پذیرفته نشده است، یا دسترسی لغو شده یا منقضی شده است.
۳. دریافت وبسایت
zinnector clone client-domain.com
cd client-domain.com
دستور clone یک پروژه محلی از وبسایت میزبانیشده ایجاد میکند. این دستور موارد زیر را دریافت میکند:
- پوشه
wp-content — شامل قالبها، افزونهها، افزونههای ضروری (mu-plugins)، زبانها و رسانههایی که کارکرد اختصاصی وبسایت هستند؛
- پایگاه داده، که در فایل
database.sql در داخل پروژه ذخیره میشود.
این ابزار بهطور عمدی هسته WordPress (زمان اجرای محلی شما نسخه مناسب را فراهم میکند)، فایل wp-config.php (که حاوی رمز عبور پایگاه داده وبسایت زنده است) و هر رسانهای را که به فضای ذخیرهسازی ابری منتقل (Offload) شده است، باقی میگذارد.
هر بار اجرا، دقیقاً اقلام گرفتهشده و باقیمانده را به همراه تعدادشان چاپ میکند. اگر فقط فایلها را میخواهید، --no-database را اضافه کنید.
از قبل پروژه را دارید و فقط آخرین تغییرات را میخواهید؟ دستور zinnector pull را داخل آن اجرا کنید.
۴. اجرای محلی وبسایت با محتوای واقعی
zinnector dev --runtime docker
در محیط اجرایی Docker، این دستور database.sql را وارد میکند، آدرس URL وبسایت را به آدرس محلی شما بازنویسی میکند و وبسایت را با محتوای واقعی مشتری باز میکند. با حسابهای کاربری واقعی WordPress همان وبسایت وارد شوید.
محیط اجرایی پیشفرض — یعنی WordPress Playground که نیازی به Docker ندارد — سریعتر شروع به کار میکند و پایگاه داده را وارد نمیکند؛ به جای اینکه بیصدا خالی بماند، این موضوع را به شما اعلام میکند. زمانی که روی کد کار میکنید و نیازی به محتوا ندارید، از آن استفاده کنید.
۵. مراقبت از کپیای که به شما داده شده است
فایل database.sql پایگاه داده یک وبسایت زنده است. Zinnector® بهمحض نوشتن این فایل، آن را به فایل .gitignore پروژه شما اضافه میکند تا یک دستور حواسپرتکننده مثل git add -A نتواند اطلاعات مشتریان کسی را در یک مخزن (Repository) منتشر کند. آن خط را دست نزنید و پس از اتمام کار، فایل را حذف کنید.
کارهایی که یک همکار میتواند و نمیتواند انجام دهد
| | Viewer | Editor | Manager | |---|---|---|---| | مشاهده وبسایت و تنظیمات آن | ✔ | ✔ | ✔ | | تغییر فایلها، استفاده از wp-admin، استقرار (Deploy) | | ✔ | ✔ | | دریافت وبسایت، به همراه پایگاه داده | | ✔ | ✔ | | بازیابی نسخه پشتیبان روی وبسایت زنده | | | ✔ | | حذف وبسایت | | | | | مشاهده صورتحسابها یا فاکتورها | | | | | دسترسی به سایر وبسایتهای مالک | | | |
سه سطر آخر برای تمام نقشها خالی است. اینها یک تنظیمات نیستند.
پایان دادن به دسترسی
مالک بخش Security وبسایت را باز میکند و گزینه Revoke را در کنار نام شخص انتخاب میکند. این کار بلافاصله اعمال میشود: دستور بعدی Zinnector® که آن توسعهدهنده اجرا میکند نمیتواند وبسایت را ببیند و هیچ ابزار دیگری که در اختیار دارد نیز قادر به دیدن آن نخواهد بود.
تاریخ انقضا نیز همین کار را در تاریخ مشخصی انجام میدهد، بدون اینکه کسی مجبور باشد آن را به خاطر بسپارد. اگر هنگام اشتراکگذاری وبسایت تاریخی تعیین کردهاید، کار شما از قبل به پایان رسیده است.
زمانی که چیزی کار نمیکند
- دستور
zinnector sites چیزی را نشان نمیدهد. دعوتنامه پذیرفته نشده است، یا دسترسی لغو شده یا منقضی شده است. از مالک بخواهید بخش Security وبسایت را بررسی کند — دعوتنامه در انتظار تایید در آنجا فهرست شده است.
- دستور
zinnector pull میگوید وبسایت هیچ نسخه پشتیبان جدیدی ندارد. این دستور در صورت مجاز بودن طرح، یک نسخه پشتیبان تازه میگیرد و ابتدا اجازه میگیرد. اگر طرح شامل نسخههای پشتیبان در لحظه (On-demand) نیست، --max-age را افزایش دهید تا نسخه قدیمیتر پذیرفته شود.
- دستور
zinnector dev یک WordPress خالی را اجرا میکند. شما روی محیط اجرایی Playground هستید که پایگاه داده را وارد نمیکند. دستور zinnector dev --runtime docker را اجرا کنید.
- وبسایت محلی مدام به دامنه زنده هدایت (Redirect) میشود. فرآیند ایمپورت، آدرس URL وبسایت را بازنویسی میکند؛ اگر آن مرحله با شکست مواجه شود، دستور پیام خطا را نمایش میدهد و خط دستور
wp search-replace را برای اجرا چاپ میکند.
خطاهای بیشتر و راهحل آنها: عیبیابی Zinnector®.