رفتن به محتوا

انتقال یک سایت

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

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

در بررسی، این مراحل عبارتند از:

  • دریافت هاست، از جمله هر نام دامنه یا ایمیل مورد نیاز
  • یک حساب کاربری و رمز عبور MySQL دریافت کنید
  • یک پایگاه داده MySQL به دست آورید که کاربر فوق دارای تمام امتیازات است

بقیه مراحل کاملاً شبیه به یک نصب معمولی است، اما:

  • به جای کپی کردن فایل ها از توزیع XOOPS، آنها را از سایت موجود کپی می کنید
  • به جای اجرای نصب کننده، پایگاه داده ای را وارد می کنید که قبلاً پر شده است
  • به جای وارد کردن پاسخ ها در نصب کننده، پاسخ های قبلی را در فایل ها و پایگاه داده تغییر می دهید

فایل های سایت موجود را کپی کنید

Section titled “فایل های سایت موجود را کپی کنید”

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

مهم است که به یاد داشته باشید که دایرکتوری های xoops_data و xoops_lib را حتی اگر به and/or تغییر نام داده اند، اضافه کنید.

برای روان‌تر کردن کارها، باید فایل‌های کش و قالب‌های کامپایل‌شده Smarty را از نسخه خود حذف کنید. این فایل‌ها در محیط جدید شما دوباره ایجاد می‌شوند و در صورت پاک نشدن ممکن است باعث ایجاد مشکلاتی در حفظ اطلاعات نادرست قدیمی شوند. برای انجام این کار، تمام فایل‌ها به جز index.html را در هر سه فهرست زیر حذف کنید:

  • xoops_data/caches/smarty_cache
  • xoops_data/caches/smarty_compile
  • xoops_data/caches/xoops_cache

توجه: پاک کردن smarty_compile به ویژه هنگام انتقال یک سایت به یا از XOOPS 2.7.0 مهم است. XOOPS 2.7.0 از Smarty 4 استفاده می کند و قالب های کامپایل شده Smarty 4 با قالب های کامپایل شده Smarty 3 قابل تعویض نیستند. باقی ماندن فایل‌های کامپایل‌شده در جای خود باعث ایجاد خطاهای الگو در بارگذاری صفحه اول در سایت جدید می‌شود.

xoops_lib و وابستگی های آهنگساز

Section titled “xoops_lib و وابستگی های آهنگساز”

XOOPS 2.7.0 وابستگی های PHP خود را از طریق Composer در داخل xoops_lib/ مدیریت می کند. دایرکتوری xoops_lib/vendor/ شامل کتابخانه های شخص ثالثی است که XOOPS در زمان اجرا به آنها نیاز دارد (Smarty 4، PHPMailer، HTMLPurifier و غیره). هنگام انتقال یک سایت، باید کل درخت xoops_lib/ - از جمله vendor/ - را در میزبان جدید کپی کنید. سعی نکنید vendor/ را در میزبان هدف بازسازی کنید، مگر اینکه توسعه‌دهنده‌ای باشید که composer.json را سفارشی کرده و Composer را روی هدف در دسترس داشته باشد.

محیط جدید را راه اندازی کنید

Section titled “محیط جدید را راه اندازی کنید”

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

اطلاعات کلیدی (mainfile.php و secure.php)

Section titled “اطلاعات کلیدی (mainfile.php و secure.php)”

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

دو فایل، mainfile.php در ریشه وب سایت شما، و data/secure.php در سایت شما (تغییر نام and/or تغییر مکان داد) xoops_data دایرکتوری شما را تعیین می کند، پارامترهای اصلی سایت شما را چگونه به هاست متصل می کند. پایگاه داده

شما باید هم ارزش ها را در سیستم قدیمی و هم در سیستم جدید بدانید.

mainfile.php| نام | مقدار قدیمی در mainfile.php | ارزش جدید در mainfile.php |

Section titled “mainfile.php| نام | مقدار قدیمی در mainfile.php | ارزش جدید در mainfile.php |”

| :--- | :--- | :--- | | XOOPS_ROOT_PATH | | | | XOOPS_PATH | | | | XOOPS_VAR_PATH | | | | XOOPS_URL | | | | XOOPS_COOKIE_DOMAIN | | |

mainfile.php را در ویرایشگر خود باز کنید. مقادیر تعریف شده در نمودار بالا را از مقادیر قدیمی به مقادیر مناسب برای سایت جدید تغییر دهید.

مقادیر قدیمی و جدید را یادداشت کنید، زیرا در مراحل بعدی باید تغییرات مشابهی را در جاهای دیگر ایجاد کنیم.

به عنوان مثال، اگر سایتی را از رایانه محلی خود به یک سرویس میزبانی تجاری منتقل می کنید، ممکن است مقادیر شما به این صورت باشد:

ناممقدار قدیمی در mainfile.phpمقدار جدید در mainfile.php
XOOPS_ROOT_PATHc:/wamp/xoopscore27/htdocs/home8/example/public_html
XOOPS_PATHc:/wamp/xoopscore27/htdocs/xoops_lib/home8/example/private/xoops_lib
XOOPS_VAR_PATHc:/wamp/xoopscore27/htdocs/xoops_data/home8/example/private/xoops_data
XOOPS_URLhttp://localhost/xoopshttps://example.com
XOOPS_COOKIE_DOMAINلوکال هاستexample.com

بعد از اینکه mainfile.php را تغییر دادید، آن را ذخیره کنید.

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

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

همین کار را برای مقدار XOOPS_ROOT_PATH قدیمی انجام دهید و همه موارد را با مقدار جدید جایگزین کنید.

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

ناممقدار قدیمی در data/secure.phpمقدار جدید در data/secure.php
XOOPS_DB_HOST
XOOPS_DB_USER
XOOPS_DB_PASS
XOOPS_DB_NAME

data/secure.php را در فهرست تغییر نام یافته and/or به xoops_data در ویرایشگر خود باز کنید. مقادیر تعریف شده در نمودار بالا را از مقادیر قدیمی به مقادیر مناسب برای سایت جدید تغییر دهید.

ممکن است فایل های دیگری وجود داشته باشد که ممکن است هنگام جابجایی سایت شما نیاز به توجه داشته باشند. برخی از مثال‌های رایج کلیدهای API برای سرویس‌های مختلفی هستند که ممکن است به دامنه مرتبط باشند، مانند:

  • نقشه های گوگل
  • Recaptch2
  • مانند دکمه ها
  • اشتراک گذاری لینک تبلیغات and/or مانند Shareaholic یا AddThis

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

فایل ها را در سایت جدید کپی کنید

Section titled “فایل ها را در سایت جدید کپی کنید”

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

پایگاه داده سایت موجود را کپی کنید

Section titled “پایگاه داده سایت موجود را کپی کنید”

از پایگاه داده از سرور قدیمی نسخه پشتیبان تهیه کنید

Section titled “از پایگاه داده از سرور قدیمی نسخه پشتیبان تهیه کنید”

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

تنظیمات پیش‌فرض معمولاً خوب هستند، بنابراین فقط “روش صادرات” را از Quick و “Format” از SQL را انتخاب کنید.

برای دانلود نسخه پشتیبان پایگاه داده از دکمه Go استفاده کنید.

صادر کردن پایگاه داده با phpMyAdmin

اگر جداول در پایگاه داده خود دارید که از XOOPS یا ماژول های آن نیستند و قرار نیست جابجا شوند، باید “روش صادرات” Custom را انتخاب کنید و فقط جداول مربوط به XOOPS را در پایگاه داده خود انتخاب کنید. (اینها با “پیشوند” شروع می شوند که در هنگام نصب مشخص کرده اید. می توانید پیشوند پایگاه داده خود را در فایل xoops_data/data/secure.php جستجو کنید.)

پایگاه داده را به سرور جدید بازیابی کنیددر هاست جدیدتان، با استفاده از پایگاه داده جدیدتان، پایگاه داده را با استفاده از ابزار مانند تب Import در phpMyAdmin (یا bigdump در صورت نیاز) بازیابی کنید.

Section titled “پایگاه داده را به سرور جدید بازیابی کنیددر هاست جدیدتان، با استفاده از پایگاه داده جدیدتان، پایگاه داده را با استفاده از ابزار مانند تب Import در phpMyAdmin (یا bigdump در صورت نیاز) بازیابی کنید.”

URL ها و مسیرها را در پایگاه داده به روز کنید

Section titled “URL ها و مسیرها را در پایگاه داده به روز کنید”

هر پیوند http را به منابع موجود در سایت خود در پایگاه داده خود به روز کنید. این می تواند تلاش بزرگی باشد، و یک ابزار برای آسان کردن این کار وجود دارد.

Interconnect/it محصولی به نام Search-Replace-DB دارد که می تواند در این مورد کمک کند. این ابزار با آگاهی از محیط های وردپرس و دروپال ساخته شده است. همانطور که هست، این ابزار می تواند بسیار مفید باشد، اما زمانی که از XOOPS شما آگاه باشد حتی بهتر است. می‌توانید یک نسخه آگاه از XOOPS را در https://github.com/geekwright/srdb بیابید

دستورالعمل های موجود در فایل README.md را برای دانلود و نصب موقت این ابزار در سایت خود دنبال کنید. قبلاً تعریف XOOPS_URL را تغییر دادیم. وقتی این ابزار را اجرا می کنید، می خواهید تعریف اصلی XOOPS_URL را با تعریف جدید جایگزین کنید، یعنی http://localhost/xoops را با https://example.com جایگزین کنید.

استفاده از جستجو و جایگزینی DB

URL های قدیمی و جدید خود را وارد کرده و گزینه dry run را انتخاب کنید. تغییرات را مرور کنید و اگر همه چیز خوب به نظر می رسد، به سراغ گزینه اجرای زنده بروید. این مرحله موارد پیکربندی و پیوندهایی را در داخل محتوای شما که به URL سایت شما ارجاع می دهند، پیدا می کند.

بازبینی تغییرات در SRDB

فرآیند را با استفاده از مقادیر قدیمی و جدید خود برای XOOPS_ROOT_PATH تکرار کنید.

راه دیگر برای انجام این مرحله بدون ابزار srdb این است که پایگاه داده خود را تخلیه کنید، آن را در یک ویرایشگر متن ویرایش کنید و URL ها و مسیرها را تغییر دهید و سپس پایگاه داده را از Dump ویرایش شده خود بارگذاری مجدد کنید. بله، این فرآیند به اندازه کافی درگیر است و به اندازه کافی خطر دارد که افراد انگیزه ایجاد ابزارهای تخصصی مانند Search-Replace-DB را داشته باشند.

سایت تغییر مکان خود را امتحان کنید

Section titled “سایت تغییر مکان خود را امتحان کنید”

در این مرحله، سایت شما باید آماده اجرا در محیط جدید خود باشد!

البته همیشه ممکن است مشکلاتی وجود داشته باشد. از ارسال هرگونه سوال در تالارهای انجمن نترسید.