نقل موقع PHP/MySQL إلى VPS Linux Infrawire يمنحك موارد مخصصة وتحكماً كاملاً في بيئة التشغيل. مفتاح الهجرة السلسة هو تجهيز كل شيء على الخادم الجديد، واختباره قبل لمس DNS، ثم تحويل الزيارات في النهاية. يتبع هذا الدليل هذا الترتيب.
📋 المتطلبات المسبقة
- خادم VPS لينكس بنظام Ubuntu 24.04 أو Debian 12 (تجد عنوان IP وكلمة مرور root في منطقة العميل)
- وصول إلى الاستضافة المشتركة (مدير الملفات وFTP/SSH وأداة قواعد بيانات مثل phpMyAdmin)
- وصول إلى منطقة DNS الخاصة بنطاقك
- نطاق
example.comوعنوان IP لخادمك، يُكتب أدناهVPS_IP
1. جرد الموقع القديم
دوّن ما يحتاجه الموقع: إصدار PHP والإضافات واسم قاعدة البيانات ومهام cron وقواعد .htaccess وشهادة SSL، وخصوصاً مكان استضافة بريدك الإلكتروني. اطّلع على إصدار PHP في لوحة التحكم القديمة؛ وإن توفر وصول SSH:
Bashphp -v php -m | sort crontab -l
اخفض الآن أيضاً قيمة TTL لسجلات DNS إلى 300 ثانية، قبل الهجرة بيوم على الأقل، ليكون التحويل النهائي سريعاً.
2. تصدير الملفات وقاعدة البيانات
يمكنك سحب الملفات مباشرة من الـ VPS إذا كانت الاستضافة القديمة توفر SSH:
Bashmkdir -p ~/migration && cd ~/migration rsync -avz OLDUSER@OLD_HOST:~/public_html/ ./site/
بدون SSH نزّل أرشيفاً عبر FTP أو مدير الملفات وارفعه بـ scp. صدّر قاعدة البيانات بـ mysqldump (أو زر التصدير في phpMyAdmin):
Bashmysqldump --single-transaction -u DBUSER -p DBNAME > db.sql
3. تجهيز البيئة على الـ VPS
Bashsudo apt update sudo apt install -y nginx mariadb-server php-fpm php-mysql php-xml php-mbstring php-curl php-zip php-gd sudo mysql_secure_installation php -v
يأتي Ubuntu 24.04 مع PHP 8.3 وDebian 12 مع PHP 8.2؛ والمقبس هو /run/php/php8.3-fpm.sock أو /run/php/php8.2-fpm.sock. أنشئ موقع Nginx في /etc/nginx/sites-available/example.com:
Nginx1server { 2 listen 80; 3 listen [::]:80; 4 server_name example.com www.example.com; 5 root /var/www/example.com; 6 index index.php index.html; 7 8 location / { 9 try_files $uri $uri/ /index.php?$args; 10 } 11 12 location ~ \.php$ { 13 include snippets/fastcgi-php.conf; 14 fastcgi_pass unix:/run/php/php8.3-fpm.sock; 15 } 16}
Bashsudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx
يتجاهل Nginx ملف .htaccess: حوّل قواعد إعادة الكتابة فيه إلى كتل location.
4. استيراد الملفات وقاعدة البيانات
Bashsudo mkdir -p /var/www/example.com sudo cp -a ~/migration/site/. /var/www/example.com/ sudo chown -R www-data:www-data /var/www/example.com sudo mysql -e "CREATE DATABASE dbname CHARACTER SET utf8mb4;" sudo mysql -e "CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'STRONG_PASSWORD';" sudo mysql -e "GRANT ALL ON dbname.* TO 'dbuser'@'localhost'; FLUSH PRIVILEGES;" sudo mysql dbname < ~/migration/db.sql
ثم عدّل إعدادات التطبيق (مثل wp-config.php) باسم قاعدة البيانات والمستخدم وكلمة المرور الجديدة. أصبح المضيف الآن localhost.
5. الاختبار قبل التحويل
على حاسوبك، وجّه النطاق إلى الـ VPS بتعديل ملف hosts (/etc/hosts على لينكس وmacOS، وC:\Windows\System32\drivers\etc\hosts على ويندوز):
BashVPS_IP example.com www.example.com
أو اختبر دون تغيير أي شيء:
Bashcurl -I --resolve example.com:80:VPS_IP http://example.com/
تصفّح الموقع وسجّل الدخول وأرسل نموذجاً وراجع السجلات في /var/log/nginx/error.log. ثم احذف سطر hosts.
6. تحويل DNS ومعالجة البريد
أوقف تعديلات المحتوى على الموقع القديم، وكرّر rsync وتصدير/استيراد قاعدة البيانات لالتقاط آخر التغييرات، ثم غيّر سجل A إلى VPS_IP وسجل AAAA إلى عنوان IPv6 الخاص بالـ VPS. بعد انتشار DNS أصدر الشهادة:
Bashsudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d example.com -d www.example.com
البريد الإلكتروني: غيّر سجلات A/AAAA فقط. اترك سجلات MX وSPF وDKIM كما هي إذا بقيت صناديق بريدك لدى المزود القديم. ألغِ الاستضافة القديمة بعد بضعة أيام دون مشاكل فقط.
🔧 استكشاف الأخطاء
502 Bad Gateway
مقبس PHP في fastcgi_pass لا يطابق الإصدار المثبت. تحقق عبر ls /run/php/ وsystemctl status php8.3-fpm.
"Error establishing a database connection"
بيانات الاعتماد أو المضيف خاطئة في ملف الإعداد. اختبر بـ mysql -u dbuser -p dbname.
403 أو صفحة بيضاء
تحقق من المالك والأذونات (chown -R www-data:www-data)، وراجع sudo tail -n 50 /var/log/nginx/error.log وسجلات PHP.
ما زال الموقع القديم يظهر بعد التحويل
ذاكرات DNS المؤقتة لا تزال نشطة. تحقق بـ dig +short example.com وانتظر انتهاء TTL.
✅ موقعك يعمل الآن على VPS خاص به، نُقل دون انقطاع ومع طريق آمن للعودة.