الاستعادةُ على الجهاز نفسه تعيد الملفّات إلى نظامٍ مضبوطٍ سلفًا. أمّا على جهازٍ جديد فتصل النسخةُ إلى لا شيء — وكلُّ ما أُقيم باليد على مدى سنتين مفقودٌ دفعةً واحدة. تلك الفجوةُ هي العملُ الحقيقيّ.

ما في النسخة

  • جذرُ الوِب
  • قاعدةُ البيانات
  • الرفوعاتُ والملفّاتُ المولَّدة

وما ليس فيها عادةً

  • إصدارُ PHP وامتداداته.
  • إعدادُ الموقع في Nginx أو Apache.
  • الشهادةُ، أو القدرةُ على إصدار واحدةٍ قبل انتقال الـ DNS.
  • مهامُّ الجدولة ووحداتُ systemd.
  • متغيّراتُ البيئة والأسرار، وهي مستثناةٌ من النسخ بحقّ، فلا بدّ أن تأتي من مكانٍ آخر.
  • إعدادُ البريد، والـ DNS العكسيّ على العنوان الجديد.

الترتيبُ الذي ينجح

  1. ابنِ الجهاز أوّلًا — بإصدار PHP نفسه والامتدادات نفسها — وphp -m على القديم هو القائمة.
  2. استعد الملفّات وقاعدة البيانات — ثمّ اضبط الملكيّة: sudo chown -R sara:www-data /var/www/site.
  3. أعد إنشاء مستخدم قاعدة البيانات وصلاحيّاته — فمسكنها مخطّط mysql لا نسختُك. انظر المستخدمون والصلاحيّات.
  4. أعد الإعدادات — خادمَ الوِب، والجدولة، والوحدات، وملفَّ البيئة من مدير كلمات المرور عندك.
  5. اختبر على العنوان الجديد قبل انتقال الـ DNS — بمدخلٍ في ملفّ hosts على جهازك أنت.
  6. أصدِر الشهادة ثمّ انقل الـ DNS — انظر النقل بلا انقطاع.
# test the new server while DNS still points at the old one
# /etc/hosts on your laptop
203.0.113.99  yourdomain.com www.yourdomain.com
لا تنقل الـ DNS حتى يجيب الموقعُ إجابةً صحيحةً على العنوان الجديد بذلك المدخل. فالنقلُ أوّلًا يحوّل أصيلةً عسيرة إلى انقطاعٍ علنيّ.
اكتب ما اضطررت أن تفعله باليد. فتلك القائمةُ هي الجزءُ الناقص من نسختك، وفي المرّة القادمة تكون سكربتًا لا أصيلةً من التذكّر.