Paylaşımlı Hostingden Linux VPS'e Web Sitesi Taşıma

2 min
VPS/VDS Hosting

Bir PHP/MySQL sitesini VPS Linux Infrawire üzerine taşımak, size ayrılmış kaynaklar ve yazılım yığını üzerinde tam denetim sağlar. Sorunsuz bir taşımanın anahtarı, her şeyi yeni sunucuda hazırlamak, DNS'e dokunmadan önce test etmek ve trafiği ancak ondan sonra yönlendirmektir. Bu rehber bu sırayı izler.

📋 Ön koşullar

  • Ubuntu 24.04 veya Debian 12 yüklü bir Linux VPS (IP adresi ve root parolası müşteri alanınızda yer alır)
  • Paylaşımlı hostinge erişim (dosya yöneticisi, FTP/SSH ve phpMyAdmin gibi bir veritabanı aracı)
  • Alan adınızın DNS bölgesine erişim
  • Bir example.com alan adı ve aşağıda VPS_IP olarak yazılan VPS IP adresiniz

1. Eski siteyi envanterleyin

Sitenin ihtiyaçlarını not edin: PHP sürümü, eklentiler, veritabanı adı, cron görevleri, .htaccess kuralları, SSL sertifikası ve özellikle e-postanızın nerede barındırıldığı. Eski kontrol panelinde PHP sürümüne bakın; SSH erişiminiz varsa:

Bash
php -v php -m | sort crontab -l

Ayrıca son geçişin hızlı olması için DNS kayıtlarınızın TTL değerini şimdiden, taşımadan en az bir gün önce 300 saniyeye düşürün.

2. Dosyaları ve veritabanını dışa aktarın

Eski hosting SSH sunuyorsa dosyaları doğrudan VPS'ten çekebilirsiniz:

Bash
mkdir -p ~/migration && cd ~/migration rsync -avz OLDUSER@OLD_HOST:~/public_html/ ./site/

SSH yoksa FTP veya dosya yöneticisiyle bir arşiv indirin ve scp ile yükleyin. Veritabanını mysqldump ile (veya phpMyAdmin'deki Dışa Aktar düğmesiyle) dışa aktarın:

Bash
mysqldump --single-transaction -u DBUSER -p DBNAME > db.sql

3. VPS üzerinde yazılım yığınını hazırlayın

Bash
sudo 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 ise PHP 8.2 ile gelir; soket /run/php/php8.3-fpm.sock veya /run/php/php8.2-fpm.sock olur. Nginx sitesini /etc/nginx/sites-available/example.com dosyasında oluşturun:

Nginx
1server { 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}
Bash
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx

Nginx .htaccess dosyasını yok sayar: yeniden yazma kurallarını location bloklarına çevirin.

4. Dosyaları ve veritabanını içe aktarın

Bash
sudo 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

Ardından uygulama yapılandırmasını (örneğin wp-config.php) yeni veritabanı adı, kullanıcı ve parola ile düzenleyin. Sunucu artık localhost olur.

5. Geçişten önce test edin

Kendi bilgisayarınızda hosts dosyasını düzenleyerek alan adını VPS'e yönlendirin (Linux ve macOS'ta /etc/hosts, Windows'ta C:\Windows\System32\drivers\etc\hosts):

Bash
VPS_IP example.com www.example.com

Ya da hiçbir şeyi değiştirmeden test edin:

Bash
curl -I --resolve example.com:80:VPS_IP http://example.com/

Sitede gezinin, giriş yapın, bir form gönderin ve /var/log/nginx/error.log günlüklerine bakın. Sonra hosts satırını silin.

6. DNS'i değiştirin ve e-postayı yönetin

Eski sitede içerik değişikliklerini dondurun, son değişiklikleri almak için rsync ile veritabanı dışa/içe aktarmayı tekrarlayın, ardından A kaydını VPS_IP adresine, AAAA kaydını VPS'in IPv6 adresine çevirin. DNS yayıldığında sertifikayı alın:

Bash
sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d example.com -d www.example.com

E-posta: yalnızca A/AAAA kayıtlarını değiştirin. Posta kutularınız eski sağlayıcıda kalıyorsa MX, SPF ve DKIM kayıtlarına dokunmayın. Eski hostingi, birkaç gün sorunsuz geçtikten sonra iptal edin.

🔧 Sorun giderme

502 Bad Gateway
fastcgi_pass içindeki PHP soketi kurulu sürümle eşleşmiyor. ls /run/php/ ve systemctl status php8.3-fpm ile kontrol edin.

"Error establishing a database connection"
Yapılandırma dosyasında kimlik bilgileri veya sunucu yanlış. mysql -u dbuser -p dbname ile test edin.

403 veya boş sayfa
Sahiplik ve izinleri (chown -R www-data:www-data) kontrol edin, sudo tail -n 50 /var/log/nginx/error.log ve PHP günlüklerine bakın.

Geçişten sonra eski site hâlâ görünüyor
DNS önbellekleri hâlâ etkin. dig +short example.com ile kontrol edin ve TTL süresinin dolmasını bekleyin.


✅ Siteniz artık kendi VPS'inde çalışıyor; kesintisiz taşındı ve geri dönüş yolu da güvende.

En yeni teklifler, indirimler ve özel promosyonlardan haberdar olun.

Promosyonları gör

Çerez kullanıyoruz

Sitemizdeki deneyiminizi iyileştirmek için analiz çerezleri kullanıyoruz. Hiçbir veri üçüncü taraflara satılmaz. Daha fazlasını şurada öğrenin: gizlilik politikası.