Instalando WordPress en tu servidor LAMP

Reading time aprox: 6 minutes, 9 seconds

Instalando WordPress en tu servidor LAMP.

Bien porque estás empezando tu camino como «blogger», bien porque quieres tener una copia de trabajo en tu propio servidor, instalar WordPress en tu servidor local creado con «LAMP», es una buena idea.

En esta guía te contaré cómo instalar WordPress en tu LAMP en Ubuntu 18.04.

WordPress en tu servidor LAMP

Prerequisitos

Debes contar con un servidor LAMP, ya sea instalado en una máquina dedicada a servidor, ya sea en tu propio ordenador personal, en cualquiera de los casos, el Sistema Operativo debe ser Ubuntu 18.

Si no cuentas aún con el servidor LAMP, puedes seguir la guía publicada en sololinux.es.

Crea un nuevo usuario en tu entorno, con privilegios de root, aunque en esta guía usaremos un usuario sin privilegios de sudo.

Instalación

Paso 1 – Creando una base de datos en MySQL para usar con WordPress.

Este es un paso preparatorio, para que WordPress trabaje, necesita una base de datos en la que pueda escribir su información.

La creación de la base de datos, se puede realizar mediante aplicaciones de interfaz con el servidor MySQL, como phpmyadmin o la interfaz de Webmin u otro, pero aquí trabajaremos con la consola, para no depender de terceras partes.

Para empezar accedemos al servidor MySQL con privilegios de root, mediante el comando:

$ mysql -u root -p

Se te pedirá la contraseña que indicaste en el momento de la instalación de LAMP.

Lo primero que debemos hacer es crear la base de datos que usará WordPress, el nombre puede ser cualquiera que cumpla los requisitos de nombres SQL, pero en esta guía usaremos el nombre de «wordpress» para hacer más fáciles las cosas. Debes entrar el siguiente comando:

mysql> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

** Nota: ** Todas las sentencias SQL deben terminar con un punto y coma, si tienes dificultades, asegurate primero del final de línea.

Lo siguiente es crear un usuario en MySQL, que será el encargado de usar la base de datos que hemos creado. Desde el punto de vista de la seguridad, siempre es una buena idea crear usuarios y bases de datos con un único propósito. Vamos a crear el usuario, asignarle una contraseña y otorgarle los permisos necesarios para que use nuestra base de datos. Para ello, entra el comando:

mysql> GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

Ahora ya contamos con un usuario y una base de datos para que WordPress pueda trabajar, necesitamos asentar los privilegios de este nuevo usuario; para que pueda operar en el servidor SQL, entramos el comando:

mysql> FLUSH PRIVILEGES;

y a continuación salimos del servidor SQL:

mysql> EXIT;

Paso 2 – Instalar módulos adicionales de PHP.

Cuando instalamos el servidor LAMP, se instala un conjunto de extensiones de PHP necesarias para comunicarse con SQL, pero hay algunas que necesitaremos adicionalmente:

$ sudo apt update
$ sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

y a continuación reiniciamos el servidor Apache, para que se reconozcan las extensiones añadidas:

$ sudo systemctl restart apache2

Paso 3 – Cambiando la configuración de Apache para usar comandos en .htaccess.

Si has realizado una instalación estándar, deberías tener un directorio llamado /etc/apache2/sites-available/ y ahí crearemos un archivo para la configuración llamado /etc/apache2/sites-available/wordpress.conf. Crearemos también el directorio dónde instalaremos nuestra copia de WordPress: /var/www/wordpress, que haremos nuestro directorio raíz.

De forma usual, el directorio por defecto, según se establece en el archivo de control 000-default.conf es /var/www/html, lo que está muy bien si sólo vas a tener un sitio web en tu servidor, en caso contrario, es una buena práctica, crear subdirectorios conteniendo cada uno de los entornos.

Habilitando Override en .htaccess.

En las nuevas versiones de Apache, el uso del archivo ‘.htaccess’ está deshabilitado, por lo que necesitamos cambiar la configuración:

$ sudo nano /etc/apache2/sites-available/wordpress.conf

El uso de la directiva Override en ‘.htaccess’ se realiza en un bloque Directory que apunte a nuestro directorio. Así, editamos el archivo para incluir:

AllowOverride All

y salimos del editor, guardando los cambios claro.

Nuestro archivo de configuración habrá quedado parecido a:


  Options Includes
  AllowOverride All
 Order allow,deny
  Allow from all

Habilitando el módulo Rewrite en .htaccess

Si queremos que nuestro WordPress haga uso de las funciones de «permalink» o enlaces permanentes, debemos habilitar este módulo de Apache. Lo hacemos introduciendo el siguiente comando en nuestra terminal:

$ sudo a2enmod rewrite

Habilitando los cambios

Indudablemente, si reiniciamos el servidor, las nuevas directivas que hemos realizado, se aplicarán, pero antes de que por casualidad nos encontremos con algún error de configuración, podemos comprobar que no hemos cometido algún error en nuestra edición, lo hacemos mediante el comando:

$ sudo apache2ctl configtest

Obtendremos una salida en la terminal, con algo parecido a esto:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Si quieres que no aparezca la primera línea, debes establecer un ServerName en tu configuración de Apache. Esto se hace editando el archivo de configuración:

$ sudo nano /etc/apache2/apache2.conf

La directiva ServerName puede ser simplemente la dirección IP de tu servidor, no afectará en absoluto al funcionamiento de tu servidor, pero como salida de la prueba de configuración, obtendrás sólo Syntax OK.

Una vez comprobada la sintaxis del archivo de configuración, procedemos a reiniciar el servidor Apache, mediante el comando en la terminal:

$ sudo systemctl restart apache2

Paso 4 – Descargando WordPress

Ahora estamos listos para descargar la copia de WordPress que instalaremos en nuestro servidor. Pueden descargarse copias previamente «localizadas» al idioma y configuración local de diversos países, pero yo prefiero asegurar que la copia que descargo es la última, en previsión de posibles agujeros, luego ya cambiaré (si hace falta) el idioma y la localización. Ten en cuenta que estos ajustes no determinan lo que verá tu público, sino lo que verás tu en el «backend», el idioma en que publiques tus páginas y entradas (post), es independiente.

Para descargar el paquete, recomiendo que lo hagas en un directorio en el que estés seguro de que puedes escribir.

$ cd /tmp
$ curl -O https://wordpress.org/latest.tar.gz

y extraemos el contenido del archivo comprimido:

$ tar xzvf latest.tar.gz

y recomiendo que antes de que movamos el contenido de la descarga, hasta el directorio de trabajo, se cree un archivo «.htaccess» que luego será usado por Apache.

$ touch /tmp/wordpress/.htaccess

y copiamos ahí el archivo de ejemplo de configuración que nos suministra WordPress:

$ cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

Aquí cabe un apunte: En ocasiones, al actualizar el WordPress, se produce un conflicto de derechos y la actualización no se realiza con éxito, para evitar muchos de estos casos, creamos de antemano, el directorio «upgrade», de esta forma estará ya disponible desde el inicio:

$ mkdir /tmp/wordpress/wp-content/upgrade

Y ahora ya podemos copiar la totalidad al directorio destino:

$ sudo cp -a /tmp/wordpress/. /var/www/wordpress

** Nota: ** No olvides el parámetro «-a» que asegurará que se copie el contenido entero, incluyendo los archivos ocultos como ‘.htaccess’.

Paso 5 – Configurando el directorio de WordPress.

Antes de proceder a la instalación asistida que nos proporciona el mismo WordPress, debemos terminar unos ajustes que nos evitarán sorpresas más tarde. Por ejemplo, debemos determinar la propiedad de los archivos, al usuario y grupo que luego se hará cargo, que no es otro que el que determina Apache. Por suerte, este usuario y grupo es conocido, así que procedemos con el comando:

$ sudo chown -R www-data:www-data /var/www/wordpress

De esta forma asignamos de forma recursiva (-R) la propiedad al grupo www-data y al usuario www-data de todo el contenido del directorio ‘wordpress’. Ahora, debemos otorgar permisos a los directorios y archivos contenidos en ‘wordpress’, lo que hacemos con un par de comandos find:

$ sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;
$ sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;

Aunque algunos plugin necesiten otros ajustes, esto es lo más general y aconsejable.

Paso 6 – Ajustando el archivo de configuración de WordPress.

Para que WordPress funcione, debemos decirle cuál es el usuario y la contraseña que debe usar para acceder a la base de datos (que también debemos especificar, entre otras cosas) esto se hace editando un archivo especial llamado «wp-config.php».

La primera cosa que deberíamos hacer, es proveer las claves de seguridad que usará nuestra copia de WordPress. Estas claves no son claves de usuario, ni se usarán más tarde, son para el funcionamiento interno de la aplicación, así que no debemos preocuparnos por que sean «poco amigables»; se llaman «salt keys» y podemos solicitar a WordPress para que nos provea con un conjunto único para nuestra instalación. Esto lo realizamos mediante el comando:

$ curl -s https://api.wordpress.org/secret-key/1.1/salt/

La salida de este comando es única y es algo parecido a (** Nota: ** No intentes copiar estás claves):

define('AUTH_KEY',         '1jl/vqfs<XhdXoAPz9 ... ... ... c_j{iwqD^<+c9.k<J@4H');
define('SECURE_AUTH_KEY',  'E2N-h2]Dcvp+aS/p7X ... ... ... {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY',    'W(50,{W^,OPB%PB<JF ... ... ... 2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY',        'll,4UC)7ua+8<!4VM+ ... ... ... #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT',        'koMrurzOA+|L_lG}kf ... ... ...  07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY ... ... ... C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT',   'i^/G2W7!-1H2OQ+t$3 ... ... ... t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT',       'Q6]U:K?j4L%Z]}h^q7 ... ... ... 1% ^qUswWgn+6&xqHN&%');

Estos valores, puedes copiarlos directamente, suplantando las líneas correspondientes en el archivo de configuración.

A continuación, localiza en el archivo, las líneas en las que pondremos los datos correspondientes a la base de datos, el usuario y la contraseña. Estas líneas con sus correspondientes valores que hemos determinado en el Paso 1:

define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpressuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

Guarda y sal del editor, nuestra configuración ha finalizado.

Paso 7 – Configuración con el ayudante de WordPress.

Una vez finalizada la configuración de los parámetros necesarios para el funcionamiento, podemos pedir a WordPress que nos guie en la instalación de la parte visible. Para ello, abrimos un navegador y nos dirigimos a la url de nuestro servidor; al ser la primera vez que accedemos, WordPress nos llevará automáticamente a las páginas adecuadas:

https://dirección-ip-del-servidor

Donde aparecerá una pantalla en la que debemos seleccionar el lenguaje que usaremos para la instalación. Ese lenguaje será también el lenguaje usado como «nativo» por WordPress, por lo que todas las páginas a continuación aparecerán en esa lengua.

Pantalla de selección de lenguaje

A continuación, debemos crear el usuario principal de nuestra copia de WordPress, así como la contraseña. Por seguridad, evita usar nombres comunes tales como «Admin» o «Administrador».

Configuración del usuario 1.

Y con esto, ya tenemos instalado y funcionando nuestro WordPress, a continuación podremos acceder a editar nuestra primera entrada, para lo que necesitamos entrar la dirección URL en nuestro navegador.

https://dirección-ip-del-servidor/wp-login.php

 


¡Gracias por leernos!


¡Tus comentarios y preguntas nos ayudan a mejorar, por favor comenta!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

3 × 5 =

Para ofrecer las mejores experiencias, utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. El consentimiento de estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.    Más información
Privacidad