¿En qué podemos ayudarte?

Instalar WordPress en VPS con Ubuntu

En esta guía haremos algo a primera vista muy simple: instalar WordPress. Sin embargo, nos centraremos en las tareas que debemos realizar para preparar nuestro servidor y sacarle el máximo rendimiento posible. 

Requisitos previos para instalar WordPress en una VPS

  • Servidor VPS con LAMP - Podemos seguir esta guía para instalar un servidor web en nuestra VPS. 
  • Software de conexión a la instancia, como por ejempo PuTTY y/o WinSCP
  • Dominio registrado, lo necesitaremos para poder implementar SSL y poder implementar Virtual Hosts en Apache. 

Para los efectos de esta guía asumiremos que trabajamos en una instancia con Ubuntu 18.04, PHP 7.2, Apache 2.4 y MySQL 5.7


Ajustes en PHP

Instalación de módulos adicionales

La instalación de PHP 7.2 incluye todos los módulos necesarios para instalar de WordPress. Solo necesitaremos algunos más que nos faciltarán el trabajpo

  • GD - este módulo nos permitirá optimizar las imágenes en nuestro servidor
  • cURL - este módulo es usado con frecuencia para la transferencia de datos entre servidores web.
  • SimpleXML- Es una librería que facilita mucho el trabajo con documentos XML.
  • Memcached - Es un sistema de cache distribuido que mejorará los tiempos de respuesta de nuestro servidor

Instalaremos inicialmente estos  módulos. Si en el futuro necesitásemos otros el proceso de instalación será similar

Nos conectamos a nuestra instancia por SSH y ejecutamos los siguientes comando en la consola

sudo apt update
sudo apt upgrade
sudo apt install php7.2-gd php-curl php7.2-xml memcached php-memcached

Despues de instalar los paguetes, reiniciamos nuestro servidor con sudo service apache2 restart. Podemos usar el archivo inform.php de la guia anterior para comprobar que los módulos instalados están activos. Por ejemplo, en el caso de memcached tendremos:

Si queremos más detalles sobre la configuración y monitorización de memcached, la encontraremos en este artículo.

Ajustar la configuración de PHP

Ahora podemos pasar a retocar la configuración general de PHP. La mayoría de las opciones por defecto son aceptables, sin embargo yo suelo ajustar las siguientes opciones:

  • memory_limit: Es el máximo de RAM que puede usar PHP. Suele estar establecido en 128M. Yo prefiero 256M. 
  • post_max_size: Tamaño máximo para subidas de datos. Valor por defecto 8M y suele ser pequeño. Prefiero subirlo a 32M o más
  • upload_max_filesize: Tamaño máximo para un archivo individual subido al servidor. Valor por defecto 2M.Prefiero subirlo a 32M o más. No puede ser mayor que post_max_size.

Para modificar estos parámetros usamos el comando sudo nano /etc/php/7.2/apache2/php.ini

La ubicación del archivo de configuración puede variar, dependiendo de la versión de php instalada en nuestro servidor.

Una forma rápida de realizar las modificaciones es buscando los textos. Usamos Ctrl+W, escribimos el texto a localizar y pulsamos Intro.

Localizamos los tres parámetros y los modificamos según nuestras necesidades.

Guardamos los cambios con Ctrl+O y cerramos el editor con Ctrl+X

Reiniciamos el servidor Apache y comprobamos que se han activado nuestras modificaciones

Con esto termina la preparación de PHP. Si tenemos que realizar otros ajustes con posterioridad, seguiremos el mismo procedimiento.


Configuracion del Apache

Por defecto el servidor Apache sirve las páginas webs desde la carpeta /var/www/html. Podemos instalar Wordpres copiando los archivos de instalación a dicha carpeta o a una subcarpeta,.

Sin embargo, yo prefiero hacerlo de un modo diferente. Aunque la configuración inicial es ligeramente más compleja, al final tendremos diferentes instalaciones independiente unas de otras. Esto facilita en gran medida la gestion y el mantenimiento posterior. Lo haremos configurando Virtual Hosts basados en nombres

Crear los registros DNS

Será necesario acceder al panel de control de nuestro dominio y agregar las entradas de tipo A en la zona DNS correspondiente. 

Probablemente tengamos un acceso mediante un panel de control tipo cPanel. Si es así, los pasos a seguir no tienen mayores complicaciones:

  1. Añadimos un nuevo registro
  2. Asignamos un nombre de nuestra elección
  3. Indicamos que el registro es de tipo A
  4. Escribimos la IP pública de nuestro servidor
  5. Confirmamos la creacion del nuevo registro.

Las modificaciones suelen ser efectivas en unos pocos minutos. A partir de este momento podemos acceder al servidor por el nombre que le hayamos asignado.

Una forma rápida de comprobarlo es utilizando el comando

nslookup nombre-del -dominio

Deberíamos tener una respuesta similar a la siguiente imagen

Una vez activo el nombre DNS, podemos continuar configurando el servidor web

Configurar los Virtual Hosts en Apache

Para llevar a cabo esta tarea, crearemos en la carpeta /etc/apache2/sites-avaliable un archivo con el siguiente contenido:

<VirtualHost *:80>
       ServerAdmin correo-administrador@example.com
       ServerName dominio.example.com
       DocumentRoot /var/www/carpeta-virtual-host/html/
       ErrorLog /var/www/carpeta-virtual-host/logs/error.log
       CustomLog /var/www/carpeta-virtual-host/logs/access.log combined
</VirtualHost>

repasemos brevemente las directivas:

  • <VirtualHost *:80> - Indica que el sitio web será accesible en el puerto 80 (HTTP) de cualquier dirección IP
  • En ServerAdmin indicamos el correo electrónico de administracion del servidor
  • ServerName sirve para identificar al sitio web. 
  • DocumentRoot identifica la carpeta donde colocaremos los archivos que servirá la web
  • ErrorLog y CustomLog son los archivos donde tendremos el registro de errores y el registro de acceso.

Las carpetas indicadas en las directivas deben ser creadas antes de activar el sitio. Sin embargo los archivos de registro serán creados por el servidor automáticamente.

Siguiendo con nuestro ejemplo, creamos el archivo de configuracion con sudo nano /etc/apache2/sites-available/pruebas.rjcardenas.com.conf. 

Su contenido será similar al de la imagen. Grabamos los datos y creamos las carpetas de la configuración, en mi caso

sudo mkdir /var/www/pruebas.rjcardenas.com
sudo mkdir /var/www/pruebas.rjcardenas.com/html
sudo mkdir /var/www/pruebas.rjcardenas.com/logs

Solo tenemos que activar el virtual host recien creado, para ello usamos
sudo a2ensite pruebas.rjcardenas.com.conf

Yo recomiendo desactivar el sitio web por defecto con sudo a2dissite 000-default.conf. A continuación  procedemos a reiniciar el servidor Apache para  activar la nueva configuración con sudo service apache2 reload. Si accedemos a nuestro sitio de pruebas, tendremos una bonita página en blanco, ya que nos falta subir los archivos de nuestra web.

Ahora solo nos queda instalar los certificados SSL de Let's Encrypt. Utilizaremos el ciente de Certbot. y una vez finalizado el proceso de instalación comprobaremos que el acceso al servidor se realiza mediante HTTPS


Preparación de MySQL

WordPress necesita una base de datos y podemos crearla desde la consola, pero prefiero instalar phpmyadmin. De esta forma tenemos una herramienta visual que nos permitirá trabajar de una forma mucho más cómoda.

Una vez instalado, phpymyadmin accedemos y creamos una base de datos. Recomiendo utlizar utf8mb4_general_ci, que soporta un juego de caracteres más amplio

Si preferimos usar la consola de comando activamos el cliente de mysql con sudo mysql y una vez dentro ejecutamos los comandos:

CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO usuario-bbdd@localhost IDENTIFIED BY 'contaseña-bbdd';
FLUSH PRIVILEGES;
exit


Copiar archivos para instalar WordPress

Ajustar permisos de carpetas 

Lo primero que debemos hacer es darle al servidor web los permiso necesarios sobre las carpetasque hemos  creado para WordPress. Primero lo hacemos propietario

sudo chown www-data:www-data /var/www/carpeta-virtual-host/ -R

y a continuación hacemos a nuestro usuario (ubuntu en este ejemplo) miembro del grupo www-data, para luego concederle al grupo permisos de escritura sobre las carpetas

sudo usermod -aG www-data ubuntu
sudo chmod g+rwx /var/www/carpeta-virtual-host/ -R

Subir archivos de instación 

Una vez hecho esto, podemos descargar los archivos de instalación de WordPress mediante la consola:

cd /var/www/carpeta-virtual-host/html
sudo wget http://wordpress.org/latest.tar.gz
sudo tar zxf latest.tar.gz
sudo mv wordpress/* .
sudo rm -fr wordpress

O bien, utlizar WinSCP y hacerlo gráficamente

Son los mismos pasos, copiamos el archivo descargado, lo descomprimimos y movemos los archivos de instalación fuera de la carpeta wordpress. Finalmente eliminamos la carpeta wordpress y el archivo comprimido.

Para terminar hacemos al servidor propietario de los archivos extraidos

sudo chown www-data:www-data /var/www/carpeta-virtual-host/ -R

Ahora ya podemos acceder a nuestro VPS e instalar WordPress según el procedimiento habitual

.

Conclusión

Hemos repasado los pasos necesarios para instalar WordPress en un servidor VPS. 

El procedimiento seguido permite tener varias instalaciones totalmente independientes, mediante la creación de diferentes virtual hosts.Por ejemplo un WordPress en www.dominio.com, nuestra nube privada en cloud.otrodominio.com, un sitio de pruebas en pruebas.domino.com y así sucesivamente.

Básicamente, segmentamos nuestra VPS. y aprovechamos al máximo la capacidad de nuestro servidor. Y lo más importante es que no tendremos que preocuparno por posibles interferencias entre las instalaciones. Es posible incluso utilizar diferentes versiones de PHP o mezclar sitios con HTTP y HTTPS.


0 0 votes
Valoración del artículo
Suscribir
Notificar de
guest
3 Comentarios
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Carlos
Carlos
3 años atrás

Muchas gracias por el tutorial.
Sólo me falta saber cómo poder hacer cambios en los permanent links en wordpress. Creo que tiene algo que ver con apache

Carlos
Carlos
3 años atrás
Reply to  RJCardenas

Muchas gracias. Solucionado.
Gracias de nuevo por todo lo que aportas. Un saludo