¿Cuándo conviene migrar?
- El sitio es lento y el hosting lo limita en CPU o RAM
- Necesitás configuraciones que el hosting no permite
- La tienda online creció y no podés permitirte caídas
- Necesitás instalar software específico (Redis, FFmpeg, etc.)
Visión general del proceso
1. Preparar el VPS nuevo
2. Instalar el software necesario
3. Copiar archivos y base de datos
4. Configurar el servidor web
5. Probar sin cambiar el DNS
6. Cambiar el DNS
7. Verificar y apagar el hosting viejo
Paso 1: Preparar el VPS
Creá tu VPS (Ubuntu 22.04 LTS) y hacé la configuración inicial básica. Luego instalá el stack:
apt update && apt upgrade -y
apt install nginx php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip mysql-server -y
systemctl enable nginx php8.2-fpm mysql
systemctl start nginx php8.2-fpm mysql
Paso 2: Configurar la base de datos en el VPS
mysql -u root
CREATE DATABASE mi_sitio CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'mi_usuario'@'localhost' IDENTIFIED BY 'contraseña_segura';
GRANT ALL PRIVILEGES ON mi_sitio.* TO 'mi_usuario'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Paso 3: Exportar la base de datos desde el hosting viejo
Desde cPanel usá phpMyAdmin o Backup Wizard. O con SSH:
mysqldump -u usuario_db -p nombre_db > backup_sitio.sql
Paso 4: Importar la base de datos al VPS
scp backup_sitio.sql root@IP_VPS:/tmp/
mysql -u mi_usuario -p mi_sitio < /tmp/backup_sitio.sql
Paso 5: Copiar los archivos del sitio
Con rsync si tenés SSH en el hosting viejo:
rsync -avz --progress [email protected]:/home/usuario/public_html/ /var/www/tusitioweb.com/
O subí el ZIP al VPS:
scp sitio.zip root@IP_VPS:/var/www/
ssh root@IP_VPS
cd /var/www && unzip sitio.zip -d tusitioweb.com
Corregí los permisos:
chown -R www-data:www-data /var/www/tusitioweb.com
find /var/www/tusitioweb.com -type d -exec chmod 755 {} \;
find /var/www/tusitioweb.com -type f -exec chmod 644 {} \;
Paso 6: Configurar Nginx
nano /etc/nginx/sites-available/tusitioweb.com
Para WordPress:
server {
listen 80;
server_name tusitioweb.com www.tusitioweb.com;
root /var/www/tusitioweb.com;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
ln -s /etc/nginx/sites-available/tusitioweb.com /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
Paso 7: Actualizar la configuración de WordPress
Editá wp-config.php:
define('DB_NAME', 'mi_sitio');
define('DB_USER', 'mi_usuario');
define('DB_PASSWORD', 'contraseña_segura');
define('DB_HOST', 'localhost');
Paso 8: Probar sin cambiar el DNS
Modificá tu archivo hosts local:
- Linux/macOS:
/etc/hosts - Windows:
C:\Windows\System32\drivers\etc\hosts
IP_DEL_VPS tusitioweb.com
IP_DEL_VPS www.tusitioweb.com
Verificá que todo funciona: navegación, formularios, login.
Paso 9: Instalar SSL
apt install certbot python3-certbot-nginx -y
certbot --nginx -d tusitioweb.com -d www.tusitioweb.com
Paso 10: Cambiar el DNS
Cuando todo funcione, cambiá el registro A del dominio para que apunte a la IP del VPS.
Tip: Antes del corte, bajá el TTL del registro A a 300 segundos con 24hs de anticipación.
Paso 11: Mantener el hosting viejo por unos días
No canceles el hosting viejo de inmediato. Mantenelo activo 3-5 días como respaldo.
Problemas comunes
El sitio carga pero sin estilos (CSS roto)
UPDATE wp_options SET option_value = 'https://tusitioweb.com'
WHERE option_name IN ('siteurl', 'home');
Error 502 Bad Gateway
systemctl restart php8.2-fpm
Imágenes no cargan
chown -R www-data:www-data /var/www/tusitioweb.com/wp-content/uploads
¿Necesitás ayuda con la migración? Nuestro equipo puede hacerse cargo del proceso completo. Consultanos →