Instalación de WordPress en Ubuntu Server 20.04

Por Carlos A. Leal S.

En este paso a paso se explicará la manera de instalar WordPress en Ubuntu 20.04. Para quienes no lo sepan WordPress es uno de los sistemas manejadores de contenido (CMS por sus siglas en inglés) más importantes en la actualidad. Se basa en PHP y MySQL, con toneladas de complementos que pueden ser utilizados de forma gratuita, aunque también se debe mencionar que muchos de esos complementos son de pago.

Para este paso a paso vamos asumir que usted…

  1. Tiene un conocimiento básico de GNU/Linux
  2. Sabe cómo utilizar el Shell o la consola de Linux
  3. Dispone de una computadora con Linux (También puede ser una máquina virtual o un VPS)
  4. Ha iniciado sesión como usuario administrado, super-usuario o simplemente como root.

Paso 0 – Iniciar sesión como super-usuario y actualizar el sistema

Antes de instalar cualquier software es importante asegurarse de que el sistema está debidamente actualizado.

sudo -s
apt-get update
apt-get upgrade

Paso 1 – Instalar un servidor LAMP

El servidor LAMP es un conjunto de servidores con las funciones más populares que debe tener un servidor de aplicaciones Web. Esto ya lo expliqué en otra entrada de este blog, ver los detalles aquí

https://jugandoaseringeniero.wordpress.com/2020/07/08/instalar-un-servidor-lamp-ubuntu-server-20-04/

Paso 2 – Instalar WordPress

Lo primero que hay que hacer es ir al sitio de WordPress y descargar la última versión estable

Ojo – Los compañeros del equipo de wordpress, son tan amables que siempre ponen la última versión estable en el mismo enlace, se descarga con:

wget https://wordpress.org/latest.zip

Ubuntu Server no trae pre-instalado el comando unzip tenemos que instalarlo

apt-get install unzip

Se descomprime con:

unzip -q latest.zip -d /var/www/html/

Luego poner todo en el lugar correcto

cd /var/www/html/wordpress

Ajustar los permisos a directorio

chown www-data. -R /var/www/html/wordpress

Paso 3 – Configurar MariaDB para WordPress

Es necesario iniciar sesión en MariaDB y crear una base de datos para WordPress

mysql -u root -p

Una vez adentro hay que crear la base de datos

CREATE DATABASE wordpress character set utf8 collate utf8_bin;

Luego establecer los permisos

GRANT ALL PRIVILEGES on wordpress.* to 'wpuser'@'localhost' identified by 'Tu$Password!';

Luego decierle al servidor que aplique la configuración

FLUSH PRIVILEGES;

Finalmente salir

exit

Paso 4 – Configurar WordPress

En esta parte vamos a editar el archivo de configuración principal de WordPress, el cual se necesita para establecer los parámetros básicos para el usuario se pueda conectar a la base de datos.

Estar en el directorio correcto

cd /var/www/html/wordpress/

Vamos a usar el archivo de configuración que trae de ejemplo

mv wp-config-sample.php wp-config.php

Se puede editar con el editor de su preferencia, yo voy a usar nano

nano wp-config.php

Aquí están los valores que necesitan ser establecidos

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

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

/** MySQL database password */
define('DB_PASSWORD', 'Tu$Password!');

/** MySQL hostname */
define('DB_HOST', 'localhost');

Paso 5 – Iniciar la configuración de WordPress – vía web desde un navegador web con modo gráfico

Acceder a http://localhost/index.php

Seleccionar el idioma que mejor se adecue a nuestras necesidades

Instalar un servidor LAMP Ubuntu Server 20.04

Por Carlos A. Leal S

El servidor LAMP es un conjunto de servidores con las funciones más populares que debe tener un servidor de aplicaciones Web. LAMP significa:

  • L ==> Linux
  • A ==> Apache, el servidor Web más popular
  • M ==> MySQL el servidor de bases de datos más popular
  • P ==> PHP, el lenguaje de programación web de código abierto más popular.

Todos los componentes son software libre y de código abierto, y la combinación es adecuada para crear páginas web dinámicas.

El video con la explicación de este paso a paso se encuentra aquí

Paso 0 –  Convertirse en Super-Usuario y Actualizar el sistema

Antes de instalar cualquier software es importante asegurarse de que el sistema está debidamente actualizado.

apt-get update
apt-get upgrade

Paso 1 – Instalar apache

La instalación de apache es sencilla, se puede hacer con apt-get

apt-get install apache2 links

Después de instalarlo es necesario hacer unas cuentas comprobaciones

systemctl status apache2
systemctl enable apache2
systemctl restart apache2

Como no tenemos modo gráfico si queremos comprobar desde la terminal tenemos que usar el links un navegador web en modo texto

links http://localhost

Paso 2 – Instalar MariaDB

MariaDB es un sistema de gestión de bases de datos derivado de MySQL. Es desarrollado por Michael (Monty) Widenius, fundador de MySQL, la fundación MariaDB y la comunidad de desarrolladores de software libre. Tiene una alta compatibilidad con MySQL ya que posee las mismas órdenes, interfaces, API y bibliotecas, siendo su objetivo poder cambiar un servidor por otro directamente.

apt-get install mariadb-server

Una vez completada la instalación

systemctl enable mariadb
systemctl restart mariadb
systemctl status mariadb

De manera predeterminada, MariaDB no viene asegurada, pero trae un script para asegurar la instalación. Hay que leer cuidadosamente, especialmente porque se le va a poner contraseña al usuario root, se van a eliminar usuarios anónimos y además se van a eliminar los datos de prueba, entre otras configuraciones importantes.

mysql_secure_installation

Configurar así:

- Change the root password? [Y/n] n
- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] y
- Reload privilege tables now? [Y/n] y

Para iniciar sesión en MariaDB es necesario usar el siguiente comando

mysql -u root -p

Paso 3 – Instalar PHP

De manera predeterminada Apache soporte HTML, pero no PHP, se necesita instalar PHP pero también el módulo para conectarse con MariaDB (MySQL)

apt-get install php php-mysql

Por si acaso es buena idea re-iniciar los servidores

systemctl restart apache2
systemctl restart mariadb

Paso 4 – Comprobar configuración

Para probar que PHP ya está funcionando se puede crear un archivo llamado php.info

nano /var/www/html/info.php

lo dejamos así

<?php
phpinfo();
?>

Para ver el resultado accedemos con links a http://localhost/info.php

links http://localhost/info.php

¡Listo! El servidor LAMP ya está funcionando, ahora ya podemos instalar WordPress, Joomla o cualquier otro manejador de contenido

Servidor DNS en Ubuntu 20.04 para WordPress

Por: Carlos Antonio Leal Saballos

El DNS es sin lugar a dudas uno de los servicios más importantes en el mundo de Internet. El DNS es por mucho el alma, nervio y músculo de Internet. Es un sistema que permite usar nombres de dominio en lugar de direcciones IP. La verdad es que un ser humano promedio será incapaz de recordar todos los números IP de todos los servidores que utiliza, no obstante, le resulta sencillo recordar los nombres de dominio.

El servidor DNS se necesita para implementar un servidor con wordpress para escribir el nombre de dominio y no escribir directamente el número IP.

Un video explicativo con el paso a paso de este tutorial lo encuentran aquí:

Requisitos para configurar un servidor DNS

  • Es posible que necesite también un servidor DHCP.
  • Configurar adecuadamente los parámetros de red, en este caso se utiliza 192.168.56.12 para el servidor.
  • Se debe definir apropiadamente el nombre del equipo y del dominio, en este caso el nombre del servidor es webserver y utilizaremos los dominios hipotéticos wordpress.edu.ni
    • Tomar en cuenta que:
      • Si el número IP del servidor es privado, entonces el dominio será privado.
      • Para tener un dominio público se necesita un IP público.
      • En Nicaragua quien autoriza los dominios públicos es el nic.NI (http://www.nic.ni/)

Paso -1 – Abrir un terminar y convertirse en super-usurio

cleal@webserver:~$ sudo -s
Contraseña: 
root@webserver:~#

Paso 0 – Agregar el nuevo servidor DNS en la configuración de red de servidor

nano -c /etc/netplan/00-installer-config.yaml

Ajustemos lo que está en rojo

network:
  ethernets:
   enp0s3:
    dhcp4: true

   enp0s8:
    addresses: [192.168.10.12/24]
    # gateway4: 192.168.10.1
    nameservers:
     search: [wordpress.edu.ni]
     addresses: [192.168.10.12, 192.168.0.1]
version: 2

En Azul la puerta de enlace: Múltiples puertas de enlace pueden causar problemas, en este ejemplo lo dejamos con un comentario o lo eliminamos de una vez.

En verde el segundo servidor DNS debe ser el que nos proporciona el proveedor de servicios de internet

Aplicar cambios en los servicios de red con

netplan apply

Paso 1 – Instalar el software necesario

apt-get update ; apt-get install bind9 dnsutils

Paso 2 – Copia de seguridad

Realizar una copia de respaldo del archivo de configuración original

cp /etc/bind/named.conf.local /etc/bind/named.conf.local.original

Paso 3 – Editar el archivo de configuración principal

nano /etc/bind/named.conf.local

Agregamos al final

zone "wordpress.edu.ni" {
type master;
file "db.wordpress.edu.ni.zone";
};

zone "10.168.192.in-addr.arpa" {
type master;
file "db.192.168.10";
};

Para asegurarnos que el archivo está bien

named-checkconf

Paso 4 – Crear los archivos de zona

Procedamos a crear los (nuevos) archivos de zona, esos archivos contienen los registros del DNS y en Ubuntu se encuentran en el directorio /var/cache/bind/

Creamos el archivo de la zona wordpress.edu.ni

nano /var/cache/bind/db.wordpress.edu.ni.zone

¿Aparece en blanco? ¡No importa! Lo dejamos así:

$ORIGIN wordpress.edu.ni.
$TTL 86400 ; 1 dia
@ IN SOA ns.wordpress.edu.ni. info.wordpress.edu.ni. (
          2020070801 ; serie
          6H ; refresco (6 horas)
          1H ; reintentos (1 hora)
          2W ; expira (2 semanas)
          3H ; mínimo (3 horas)
)

@     IN     NS     ns
@     IN     MX 10  mail
@     IN     A      192.168.10.12 
ns    IN     A      192.168.10.12
mail  IN     A      192.168.10.12
www   IN     A      192.168.10.12
mail  IN     TXT    "v=spf1 a mx a:wordpress.edu.ni ip4:192.168.10.12 -all"

Vale la pena detectar errores en el archivo de zona

named-checkzone wordpress.edu.ni /var/cache/bind/db.wordpress.edu.ni.zone

Ahora la zona de búsqueda inversa

nano /var/cache/bind/db.192.168.10

¿Aparece en blanco? ¡No importa! Lo dejamos así:

$ORIGIN 10.168.192.in-addr.arpa.
$TTL 86400 ; 1 dia
@ IN SOA ns.wordpress.edu.ni. info.wordpress.edu.ni. (
        2020042501 ; serie
        6H ; refresco (6 horas)
        1H ; reintentos (1 hora)
        2W ; expira (2 semanas)
        3H ; mínimo (3 horas)
)

@     IN     NS     ns.wordpress.edu.ni.
12    IN     PTR    ns.wordpress.edu.ni.
12    IN     PTR    mail.wordpress.edu.ni.
12    IN     PTR    www.wordpress.edu.ni.

También es se puede comprobar que la configuración esté bien con:

named-checkzone 10.168.192.in-addr.arpa /var/cache/bind/db.192.168.10

Paso 5 – Re-iniciar Servicios


Servidor DNS

systemctl restart bind9
systemctl status bind9

Paso 6 – Probar la configuración desde el servidor

Con el  dominio interno

nslookup wordpress.edu.ni
Server: 192.168.10.12
Address: 192.168.10.12#53

Name: wordpress.edu.ni
Address: 192.168.10.12

Con un dominio externo

nslookup google.com.ni
Server: 192.168.8.1
Address: 192.168.8.1#53

Non-authoritative answer:
Name: google.com.ni
Address: 172.217.2.195

Felicidades, ya lo tenemos

Configurar red en Ubuntu Server 20.04

El escenario

Tenemos dos adaptadores de red, el primero recibirá su dirección IP vía DHCP al segundo se le configurará manualmente, o sea:

  • enp0s3 ==>Configuración automática con DHCP
  • enp0s8 ==>Configuración estática manual

 

 

Estas configuraciones están bien explicadas en un video que subí a mi canal de YouTube

 

Paso 0 – Saber el nombre de los adaptadores

Escribimos el comando ls /sys/class/net/ deberá salir algo así:

ls /sys/class/net/

enp0s3 enp0s8 lo

Paso 2 – Respaldar la configuración original

El archivo de configuración original es mejor dejarlo en otra carpeta por ejemplo /root

cp /etc/netplan/00-installer-config.yaml /root/00-installer-config.yaml.org

Paso 3 – Editar el archivo de configuración

nano -c /etc/netplan/00-installer-config.yaml

Agregamos la configuración del segundo adaptador

# This is the network config written by 'subiquity'
network:
  ethernets:
   enp0s3:
    dhcp4: true

   enp0s8:
    addresses: [192.168.10.12/24]
    gateway4: 192.168.10.1
    nameservers:
     search: [redinterna.local]
     addresses: [192.168.10.10]
version: 2

Paso 4 – Aplicar y verificar cambios

Aplicamos los cambios con

netplan apply

Verificamos con ip a

ip -a

Tendrá que salir algo similar a esto

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:c6:9a:93 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fec6:9a93/64 scope link
valid_lft forever preferred_lft forever

3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:4a:4a:e5 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.12/24 brd 192.168.10.255 scope global enp0s8
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe4a:4ae5/64 scope link
valid_lft forever preferred_lft foreve

Creación de usuarios en Ubuntu Server 20.04 en Línea de comandos

La administración de usuarios es uno de los procesos más importantes que realiza un administrador de servidores, vamos a explicar la manera de crear usuarios en Ubuntu Server 20.04 utilizando la línea de comandos, en este ejemplo vamos a crear un primer usuario llamado juan el cual tendrá privilegios de root, luego vamos a crear otro usuario llamado pedro, pero lo vamos a crear de otra forma.

El proceso

Paso 0 –  Iniciar sesión y convertirse en super-usurio

cleal@webserver:~$ sudo -s
Contraseña:
root@webserver:~#

Paso 1 – Creación del usuario juan

root@tserver:~# adduser juan
Añadiendo el usuario `juan' ...
Añadiendo el nuevo grupo `juan' (1001) ...
Añadiendo el nuevo usuario `juan' (1001) con grupo `juan' ...
Creando el directorio personal `/home/juan' ...
Copiando los ficheros desde `/etc/skel' ...
Introduzca la nueva contraseña de UNIX: # Escribir la contraseña
Vuelva a escribir la nueva contraseña de UNIX: # Confirmar
passwd: contraseña actualizada correctamente
Cambiando la información de usuario para juan
Introduzca el nuevo valor, o pulse INTRO para usar el valor predeterminado
      Nombre completo []: Juan # Completar datos (opcional)
      Número de habitación []: # [enter] para no completar datos
      Teléfono del trabajo []:
      Teléfono de casa []:
      Otro []:
¿Es correcta la información? [S/n] S # Confirmar información
root@webserver:~#

Si quieres dar privilegios de administrador a juan hay que agregarlo a sudoers abrimos el archivo con el editor de nuestra preferencia (a mí me gusta vim) y lo agregamos (aproximadamente línea 22)

root@tserver:~# nano -c /etc/sudoers

Lo dejamos así

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
juan ALL=(ALL:ALL) ALL

Iniciamos sesión con juan y probamos si tiene privilegios de root

juan@webserver:~$ sudo -s
[sudo] password for juan: # Poner contraseña de juan
root@tserver:/home/juan#

Paso 2 – Creación del usuario pedro

Creamos el usuario con

root@tserver:~# useradd -m pedro

Establecemos la contraseña de pedro con

root@tserver:~# passwd pedro
Introduzca la nueva contraseña de UNIX: # Escribir contraseña
Vuelva a escribir la nueva contraseña de UNIX: # Repetir contraseña
passwd: contraseña actualizada correctamente
root@tserver:~#

Muchas felicidades, hemos creado los dos usuarios

Hay un video explicativo de este proceso en