Migrar WordPress a VPS en DigitalOcean

Voy a contar mi experiencia de migrar mi blog en WordPress a un servidor VPS, con los servicios de DigitalOcean.
En primer lugar el motivo de mi cambio fueron algunos aspectos:

  • Mayor control del servidor, poder instalar otros programas, dado que anteriormente tenia un Hosting compartido y no tenia acceso al terminal del servidor y eso me limitaba mucho dado que yo quería hacer otro tipos de pruebas para mejorar el sitio web e investigar otros programas.
  • El precio no varia mucho, pero el beneficio esta en la posibilidad de cambiar de servidor a uno que cuesta menos o que cueste más, dependiendo los requerimientos de tu web.
  • Otro motivo fue la curiosidad, hace buen tiempo quería probar un VPS, así que ya esta.

El primer paso fue crear el servidor en DigitalOcean, para eso tuve que crear un cuenta individual en PayPal dado que mi tarjeta débito no lo soportaba. Se crean una cuenta en PayPal, que es fácil, pero solo demora para verificar la cuenta bancaria, en mi caso demoro unos 5 días, en su cuenta PayPal hay una opción verificar tarjeta, donde ingresan los datos de su tarjeta, una vez que envían, PayPal le hace un cobro de 1.9 dolares, esto me cobro en mi caso en Perú, pero este costo se le devolverá después. En su estado de cuenta de su tarjeta después de 5 días aparecerá en el detalle del cobro un código el cual tendrán que ingresar en su cuenta de PayPal en la opción verificar tarjeta, con este paso su cuenta ya estará validada y disponible para usarla.

Ahora crean una cuenta en DigitalOcean, una vez creado van a Billing y en Manage Payments escogen la opción de PayPal, esta opción les llevara a Paypal donde ingresan a su cuenta y confirmarán la compra.

billing_03
 

Ahora ya podemos crear nuestro servidor, vamos a crear un Droplet, así lo llaman a un servidor VPS.

Ingresen el Hostname del servidor y seleccionen el tamaño de su servidor, según las características que deseen.

create1
 

Ahora seleccionen en que región quieren que este su servidor.
create2
 

Aquí seleccionan el sistema operativo que va ser su servidor y si desean algunas aplicaciones que se instalen por defecto.
create3
 

Ahora hacen click en el botón Create Droplet, les debe quedar algo así.
droplet
 

Hasta aquí ya hemos creado nuestro servidor, el acceso al servidor nos llegará vía correo.

Ahora necesitamos instalar los programas a nuestro servidor, instalaremos lo básico Apache, PHP, MySql, Exim para el servidor de correo SMTP y lo configuraremos con Dovecot para los protocolos POP3 e IMAP, dovecot viene por defecto en Ubuntu. fail2ban para banear IP maliciosas.

Para ingresar lo haremos con el programa Putty.

putty
 

Cuando ingresemos por primera vez nos pedirá cambiar la clave del root.

Ahora agregamos un nuevo usuario, porque no debemos usar el usuario root por seguridad.

adduser demo

y agregamos al grupo de sudo

gpasswd -a demo sudo

Ahora cambiamos el archivo

sudo nano /etc/ssh/sshd_config

Es opcional

Port 2222

Cambiamos a no en:

PermitRootLogin no

Con ctrl + o guardamos, enter para confirmar y con ctrl + x salimos del programa nano, ahora reiniciamos el servicio.

sudo service ssh restart

Actualizamos el servidor.

sudo apt-get update
sudo apt-get upgrade

Instalamos apache

sudo apt-get install apache2 -y

Después de instalar ingresan desde su navegador a http://ip_de_servidor

default_apache
 

Instalamos MySql

sudo apt-get install mysql-server php5-mysql
sudo mysql_install_db

Luego para una instalación segura

sudo mysql_secure_installation

Ahora instalamos PHP

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

Editamos

sudo nano /etc/apache2/mods-enabled/dir.conf

Y cambiamos el orden en que Apache va leer el index.php.

<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
sudo a2enmod rewrite headers expires
sudo service apache2 restart

Probamos que funcione el PHP

sudo nano /var/www/html/info.php
<?php
phpinfo();
?>

http://ip_del_servidor/info.php

Por seguridad borramos el archivo.

sudo rm /var/www/html/info.php

Seguridad en apache y php

No mostrar la versión de apache en los mensajes de error.

security2
 

sudo nano /etc/apache2/conf-available/security.conf
ServerSignature Off
sudo service apache2 restart

security1
 

sudo nano /etc/apache2/conf-available/security.conf
ServerTokens Prod
sudo nano /etc/php5/apache2/php.ini
expose_php = Off
sudo service apache2 restart

 

Vamos a instalar fail2ban, este programa es para banear a IPs que estén tratando de aplicar fuerza bruta al acceso ssh.

sudo apt-get install fail2ban

Configuramos fail2ban.

sudo vi /etc/fail2ban/jail.conf
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6

Instalamos PhpMyAdmin

sudo apt-get install phpmyadmin

Comprobamos

http://ip_del_servidor/phpmyadmin

Aseguremos PhpMyAdmin

Cambiamos la url de acceso.

sudo nano /etc/phpmyadmin/apache.conf
Alias /dbadmin253 /usr/share/phpmyadmin
sudo service apache2 restart

http://ip_del_servidor/dbadmin253

Ahora usemos un protocolo seguro.

sudo a2enmod ssl
sudo service apache2 restart
sudo mkdir /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
sudo nano /etc/apache2/sites-available/default-ssl.conf
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
sudo a2ensite default-ssl
sudo /etc/init.d/apache2 restart

Forzando a https.

sudo nano /etc/phpmyadmin/config.inc.php
$cfg['ForceSSL'] = true;

Ya hemos instalado lo básico para que funcione nuestro blog, ahora vamos hacer un backup del WordPress de nuestro Hosting compartido y luego subirlo al VPS.
En el Hosting ingresamos al Administrador de Archivos.
backup1
 

Luego en la siguiente ventana seleccionamos todo los archivos de la carpeta public_html y comprimimos en formato backup.tar.gz y descargamos el archivo.

Para la base de datos ingresamos a phpMyAdmin.
backup2
 

Seleccionamos la base de datos y exportamos.

Ahora ingresamos a https://ip_del_servidor/dbadmin253
creamos una base de datos wordpress
backup3
 

ingresamos a la base de datos y creamos un nuevo usuario en la pestaña Privilegios, agregar nuevo usuario.

backup4
 

Ahora importamos la base de datos, seleccionamos el archivo y continuar.
backup5
 

Ahora tenemos que subir los archivos al servidor, lo vamos hacer con el programa WinSCP, descargamos e instalamos.
backup6
 

Ahora subimos el backup a la carpeta /var/www/html del servidor.
Primero cambiamos el propietario.

sudo chown -R demo:demo /var/www/html

backup8
 

cd /var/www/html
sudo rm index.html
sudo tar -xzvf backup.tar.gz
sudo rm backup.tar.gz

Editamos

sudo nano /var/www/html/wp-config.php

Cambiamos a los nuevos datos.
Si usan el plugin WP Super Cache.

define( 'WPCACHEHOME', '/var/www/html/wp-content/plugins/wp-super-cache/' );
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'xxxxxxxx');
define('DB_HOST', 'localhost');

Cambiar los DNS

Ya hemos terminado configurar el servidor con el WordPress, ahora nos toca cambiar los DNS del dominio para que apunten a los DNS de DigitalOcean, si la administración de tu dominio esta en otro proveedor, cambia solo los DNS en tu panel de administración que apunten a:

ns1.digitalocean.com
ns2.digitalocean.com
ns3.digitalocean.com

Transferir dominio

En mi caso yo he trasferido mi dominio a otro proveedor, para transferir tienes que desbloquear el dominio desde tu panel de dominio, luego debe haber una opción de código de transferencia, ese código le envías a tu nuevo proveedor de dominios y haces el pago por la transferencia y ellos se encargan de lo demás, debes estar al pendiente de las confirmaciones que te van a llegar a tu correo para que prosiga con la transferencia, en mi caso demoró unos 4 días.

Luego que ya este la transferencia, ingresa los DNS de DigitalOcean, la actualización debe tomar unos minutos, mientras debemos configurar en la cuenta de DigitalOcean los DNS para nuestro servidor.

En DNS agrega un dominio, ingresa el nombre del dominio, selecciona en el combo tu Droplet, al seleccionar el Droplet automáticamente aparece la ip de tu servidor.

dns3
 

Al crearlo debería quedar así.

dns2
 

Una vez que actualicen los DNS el blog ya debería estar funcionando en tu VPS.

Instalar el servidor de correo

Debo mencionar que no he podido hacer que funcione bien con hotmail, llegaban como span, pero de todos modos les dejo la configuración que hice:

Configurar los DNS, quedaría así.

correo1
 

Instalamos Exim

apt-get install exim4
dpkg-reconfigure exim4-config

Respondemos a las preguntas.

internet site; mail is sent and received directly using SMTP (OK)
Enter FQDN
hostname.yourdomain.tld
SMTP Listener
127.0.0.1; ::1; ip_del_servidor
Al siguiente (ok)
Mail Destinations
mail.midominio.com; midominio.com; localhost.localdomain; localhost
Relay Options (ok)
Al siguiente (ok)
DNS Queries (No)
Delivery Method
mbox
Configuration File (No)

Instalamos dovecot

Responder si crea certificado.

apt-get install dovecot-imapd dovecot-pop3d
vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
vim /etc/dovecot/conf.d/10-mail.conf
mail_location = mbox:~/mail:INBOX=/var/mail/%u

Estas son las primeras configuraciones que tuve que hacer para migrar a un servidor VPS en DigitalOcean.

(Visited 1.218 times, 1 visits today)
Puedes saltar al final y dejar una respuesta. Hacer ping no está permitido actualmente.