أحياناولغرض ما نحتاج إلى نقل ووردبريس الخاص بنا إلى استضافة جديد، هذه العملية قد تجعلك ترتبك خصوصا إذا كنت من المبتدئين في المجال.
منذ أن تعرفت على ووردبريس هذه اللحظة، قمت بنقل عديد كبير من المواقع منها شخصية لكن اغلبها لعملاء. في هذه التدوينة سأشرح لك بالتفصيل كل المراحل التي اتبعها لنقل ووردبريس من استضافة إلى أخرى وأيضا طريقة طريقة آمنة لتغيير اسم الدومين دون فقدان الأرضفة في محركات البحث، لنبدأ.
هذه الطريقة هي كذلك صالحة لنقل ووردبريس من مجلد فرعي إلى المجلد الرئيسي و العكس، وصالحة أيضاً لنقل ووردبريس من خادم محلي إلى استضافة.
نقل ووردبريس إلى استضافة جديدة
هناك عدة طرق للقيام بهذا لكن أنا سأشرح الطريقة التي استعملتها في نقل موقعي واستعملها دائماً.
نقل محتوى الموقع إلى الاستضافة الجديدة
أول شيء نقوم به هو إنشاء نسخة احتياطية كاملة للموقع، بعدها نقوم بفتح ملف wp-config.php
وتغيير بيانات قاعدة بيانات الاستضافة القديمة ببيانات الاستضافة الجديدة.
// Database name.
define('DB_NAME', 'my_database_name');
// Database user.
define('DB_USER', 'my_database_user');
// Database password.
define('DB_PASSWORD', 'my_database_pass');
// Database host.
define('DB_HOST', 'localhost');
ثم نرفع جميع الملفات إلى الخادم الجديد، بعد ذلك ندخل إلى phpMyAdmin الخاص بالاستضافة الجديدة ونقوم باستيراد قاعدة بيانات موقعنا.
بهذه الطريقة نكون قد انتهينا من نقل كل محتوى الموقع إلى الاستضافة الجديدة، لكن قاعدة البيانات لازالت تحتوي على روابط النطاق القديم ويتوجب علينا تغييرها، هذا ما سأشرحه في الفقرة التالية.
تغيير اسم النطاق
لتغيير اسم النطاق أو ما يعرف عامة بالدومين، يجب علينا تعديل الروابط في قاعة البيانات، ولقيام بهذا سنستخدم أداة Search and Relplace مكتوبة بلغة PHP مفتوحة المصدر يمكننا تحميلها من مستودعها على Github، بعد تحميلها نقوم بفك الضغط ورفعها إلى جدر الموقع ونفتحه بهذه الطريقة: https://saidelbakkali.com/Search-Replace-DB (يجب إستبدال saidelbakkali.com
باسم نطاقك). وعندما تظهر لنا هذه الصفحة نقوم بالنقر على Submit.
في الصفحة الموالية ستظهر لنا معلومات قاعدة البيانات، دون تغيير أي شيء ننقر على Submit DB details.
في الصفحة الموالية دون تغيير أي شيء ننقر على Continue.
وفي النهاية نقوم بكتابة النطاق القديم في الخانة الأولى والنطاق الجديد في الخانة الثانية وننقر على Submit Search string فيظهر لنا ملخص بكل التغييرات التي حصلت.
بهذه الطريقة نكون قد قمنا باستبدال كل روابط النطاق القديم بروابط النطاق الجديد بطريقة سهلة وبسيطة.
searchreplacedb2.php
من جذر الموقع مباشرة بعد انتهاء من تحديث الروابط وذلك بدافع الحمايةعمل إعادة توجيه من النطاق القديم إلى النطاق الجديد
عندما نقو م بتغيير نطاق موقعنا من الضروري عمل إعادة توجيه من النطاق القديم إلى النطاق الجديد وذلك لعدم فقدان الزيارات، الروابط التي حصلنا عليها من المواقع الأخرى (link building), أرشفة النطاق القديم… الخ
أول شيء نقوم به هو عمل إعادة توجيه 301 من النطاق القديم إلى النطاق الجديد، هناك عدة طرق للقيام بهذا لكن أنا أفضل عمل إعادة التوجه من ملف .htaccess
بواسطة Mod Rewrite.
فقط عليك فتح ملف .htaccess
الخاص بالاستضافة القديمة، مسح كل محتواه ثم وضع هذا الكود داخله:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^saidweb2\.com [NC]
RewriteRule (.*) https://saidelbakkali.com/$1 [R=301,L]
تبليغ Google بتغيير نطاق الموقع
كل ما قمنا به حتى لآن جيد لكن لنتمكن من الحفاض على نفس أرشفة النطاق القديم علينا إبلاغ Google بأننا قمنا بتغيير نطاق موقعنا.
أول شيء نقوم به هو إضافة النطاق الجديد والتحقق من الملكية في نفس حساب أدوات مديري المواقع الذي يوجد به النطاق القديم، بعدها نذهب إلى النطاق القديم (في أدوات مديري المواقع طبعاً) ونقوم بما يأتي:
نقوم بالنقر على الإعدادات ونختار “تغيير العنوان”.
بعد ذلك نذهب إلى “أخبرنا بعنوان URL لنطاق الجديد” ونختار النطاق الجديد ثم نضغط على “إرسال” فتطهر لنا رسالة تأكد أنه قد تم نقل النطاق القديم إلى النطاق الجديد… ليس هناك زمن أو وقت محدد لعملية النقل فهذا يتغير حسب حجم الموقع وأهميته بالنسبة ل Google.
وهكذا نصل إلى نهاية هذا الشرح، أتمنا أن تكون قد عمَّت الاستفادة.
إذا كان لديك أي سؤال أو استفسار لا تتردد في تركه من خلال التعليقات.
zidanoo قال
شكرا جزيلا لك …كنت محتاج لهذا الدرس بشدة
سعيد البقالي قال
لا شكر على واجب أخي, أنا رهن الإشارة 🙂
zidanoo قال
ملاحظة : الملف المرفق لم استطع تحميله موقعك (كتب لي الملف غير موجود) فاضطررت لتحميله من موقع اخر.
muhanned قال
السلام عليكم
اخي عندما اريد تحميل ملف s[code lang=”php” inline=true]earchreplacedb2.php[/code] يظهر لي خطأ لامكنني تحميله من هذا الموضوع.
سعيد البقالي قال
و عليكم السلام أخي,
لقد قمت بتعديل الرابط, شكراً على المرور.
سمير على قال
تعجز كلمات الشكر عن وصف تقديرى وامتنانى لك على هذا الموضوع بالفعل موضوع هام ومنفرد …….ولقد بحث مرارا وتكرارا على كيفية اعادة رفع المدونة او نقلها بالفعل موضوع مميز …
سعيد البقالي قال
يسعدني معرفة ان الشرح قد أعجبك, شكرا لك على المرور 🙂
Hamdi قال
شكراً جزيلاً اخي الكريم
كان لدي استفسار فقلت ربما اجد ضالتي لديك
اخي انا عندي موقع ASP.NET وموقع اخر PHP اريد ربطهما بقاعدة بيانات واحدة علما ان الموقعين كل واحد في سيرفر منفصل
سعيد البقالي قال
العفو أخي شكرا لك أنت على مرورك العطر
صراحة لا أستطيع أن أفيدك في هذا الموضوع ﻷن معرفتي بلغات الدوت نت تكاد تكون منعدمة، كنظرة أولى أرى أن اﻷمر معقد لكن في البرمجة كل شيء وارد… ابحث عن شخص متمكن من اللغتين فهو الوحيد الذي يمكن أن يعطيك الجواب.
أدعو لك بالتوفيق، تحياتي!!
احمد قال
شكرا جزيلا لك
amine قال
شكرا لك اخي على الشرح الجميل لكن متى يجب ازالة السكربت بعد الانتهاء من الامر لاني لم اجد له اي جدار حماية اي شخص يستطيع الولوج اليه و تعديل وشكرا
سعيــــد البقـــــــــــــــالي قال
يجب حذف السكربت مباشرة بعد اﻹنتهاء من استعماله ﻷن تركه يشكل تهديد كبير على مستوى الحماية.
نسيت ذكر ذلك في التدوينة لكن اﻷن سأقوم بإضافة هذه المعلومة
تحياتي
amine قال
شكرا لك اخي على المتابعة و اتمنى ان تضع شرح حول طريقة حماية وردبريس بعدج تنصيبها بالتوفيق و النجاح
سعيــــد البقـــــــــــــــالي قال
العفو أختي، سيتم عمل شرح لذلك قريبا إن شاء الله.
حكيم قال
اشكر لك جهودك الرائعه
عند تحميل قاعدة بيانات الورد بريس الى موقع اخر تظر الحروف العربية علامات استفهام
كيف يمكن حلها ؟؟؟
سعيــــد البقـــــــــــــــالي قال
السلام عليكم أخي،
أظن ان المشكل هو بسبب الترميز المعتمد في قاعدة البيانات الخاصة بك يجب ان يكون utf8.
تحدث مع مستضيفك لحل المشكل.
تحياتي.
Noreddine قال
أخي طلقت كل خطوة من خطواتك على استضافة ipage لاكن عندما أدخل للرابط أجد صفحة بيضاء أتمنى أن تساعدني فقد بحتث و لم أجد من يساعدني في حل مشكلتي
سعيــــد البقـــــــــــــــالي قال
لا يمكنني تحديد السبب أخي، ربما نسيت تغيير معلومات اﻹتصال بقاعدة البيانات في ملف [code lang=”php” inline=true]wp-config.php[/code]
Noreddine قال
شكرا لك اخي سعيد موضوعك افادني كثيرا لا اعرف كيف ارد لك الجميل موقعك رائع ما شاء الله الله يوفقك يا رب و ينور طريقك بالمزيد من النجاح
يبدو ان المشكل من القالب المدفوع يجب ان اضيف كود تفعيل القالب حتى يظهر هذا ما قاله لي الدعم
شكرا على ردك السريع ^^ اراك في موضوع اخر
سعيــــد البقـــــــــــــــالي قال
العفو أخي و يسعدني جدا أن مشكلتك قد حلت
بالتوفيق دائما!
benkaddour قال
هل يمكنني أن أنقل المقالات فقط مع صورها و كلماتها الدلالية؟
كيف أفعل ذلك؟
لا أريد نقل كل قاعدة البيانات.
سعيد البقالي قال
نعم يمكن وذلك بدمج جدولي المقالات [code lang=”php” inline=true]wp_posts[/code]، لكن يمكن أن يحدث تضارب بسبب تطابق في الـ IDs لهذا أنصحك بالبحث عن شخص خبير ليقوم بذلك.
سحابة التفاصيل قال
السلام عليكم :
شكراً أخي على الدرس الرائع ، لكن هنالك نقطة ، ماذا لو أردت أن أبقي موقعي يعمل ، و أردت أن أركب نسخة مماثلة تماماً لموقعي على استضافة أخرى و دومين آخر ؟
أتمنى أن تكون وصلتك الفكرة ، و شكراً لك على مجهودك مرة أخرى .
سعيد البقالي قال
وعليكم السلام ورحمة الله، يمكنك اتباع الشرح مع عدم حذف الملفات وقاعدة البيانات من الموقع اﻷول و تفادي الجزئين اﻷخيرين من الشرح وهما “عمل إعادة توجيه من النطاق القديم إلى النطاق الجديد” و “تبليغ Google بتغيير نطاق الموقع”.
شكرا على المرور، تحياتي.
سحابة التفاصيل قال
شكراً لك على الرد السريع ، هل يمكن إفادتي إذا كانت الخطوات التالية صحيحة لو اتبعتها :
– نسخ الملفات من الاستضافة القديمة إلى الجديدة كما هي . ” دون تغيير في ملف الكونفيغ و دون إنشاء قاعدة بيانات جديدة ”
– تصدير قاعدة بيانات الموقع القديم و استيرادها للموقع الجديد .
– تعديل الروابط في قاعدة البيانات .
سعيد البقالي قال
الخطوات هي كالتالي:
_ عمل نسخة احتياطية للملفات و قاعدة البيانات
_ رفع الملفات إلى اﻹستضافة الجديدة
_ إنشاء قاعدة البيانات و استيراد ملف قاعدة بيانات الموقع اﻷول إليها
_ التعديل على ملف wp-config.php
_ تحديث الروابط في قاعدة البيانات
بالتوفيق.
سحابة التفاصيل قال
شكراً لك على الرد 🙂
أحمد الراجحي قال
البقالي.. بارك الله سعيك وشكرًا لجهودك، محتوى الملف لا يوجد به اسم.. searchreplacedb2.php قمت بكافة التعليمات وتم نقل الموقع تبقّى تعديل الروابط فقط!
سعيد البقالي قال
الشرح قمت بعمله من مدة طويلة وهو خاص بالاصدار 2، في الاصدار 3 يمكنك الوصول لصفحة التعديل على الروابط بوضع Search-Replace-DB-master بعد اسم النطاق الخاص بموقعك، على هذا الشكل [code lang=”none” inline=false]www.yoursite.com/Search-Replace-DB-master/[/code]
سأعمل على تحديث الشرح قريبا إن شاء الله.
أحمد الراجحي قال
بارك الله فيك أستاذي الكريم، ونحن بحاجة لتحديث كافة المواضيع المعنية بووردبريس، تاليًا هل من تحديث للملف المرفق أم الملف كما هو؟
سعيد البقالي قال
الملف كما هو لأن التحميل يتم مباشرة من على Github 🙂
أحمد الراجحي قال
وهذا ما شاهدته وقد تمت العملية بنجاح.. بُورك مسعاك أستاذي الكريم!!
انس قال
اخي سعيد شكرا على الشرح الجميل
قمت بعمل المطلوب وعند استبدال النطاقات القديمة بالنطاقات الجديدة بقاعدة البيانات تظهر لي هذه الرسالة:
The script encountered an error while running an AJAX request. If you are using your hosts file to map a domain try browsing via the IP address directly. If you are still running into problems we recommend trying the CLI script bundled with this package. See the README for details.
هل لديك خلفية عن حل هذه المشكلة ؟؟ بارك الله فيك