Documentos de Académico
Documentos de Profesional
Documentos de Cultura
com
1
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Prólogo 2
¿A quién va dirigido este libro? 5
¿Qué es una máquina virtual? 6
¿Para qué sirven estas máquinas? 7
¿Cómo instalar Oracle VirtualBox? 7
¿Qué es un gestor de máquinas virtuales? 12
¿Y para qué quiero eso? 13
¿Cómo instalar Vagrant? 14
¿Cómo crear máquinas virtuales? 19
¿Qué es un servidor de aplicaciones web? 28
¿Cómo instalar un servidor de aplicaciones web? 28
¿Qué es una aplicación web? 39
¿Y dónde guardamos todos los datos? 40
¿Qué es una base de datos relacional? 40
¿Cómo es un entorno de aplicaciones web tradicionales? 41
¿Qué es una aplicación web CMS? 41
Preparando el entorno LAMP 44
Instalando WordPress 49
Configuración inicial de Wordpress 55
¡Tu primer reto conseguido! 61
¡Aspira a ser ingenios@ de sistemas! 61
Agradecimientos 64
2
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Prólogo
¡Déjame que te eche el jarro de agua fría cuanto antes! Esto no es verdad.
Los trabajadores cambiamos nuestro tiempo por dinero pagado por nuestra
empresa. Estas implantaciones precisan de nuestro tiempo en horas laborales,
por lo que lógicamente, no salen gratis a la organización.
No obstante, las aplicaciones de software libre están cada vez más extendidas e
implantadas en el mundo empresarial. A medida que vamos conociendo mejor
su funcionamiento, invertimos menos tiempo o dinero en su implantación, por lo
que salen más baratas.
3
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
En este libro quiero hablarte sobre una mentalidad, una actitud. Déjame
mostrarte lo fácil que resulta poder instalar estas herramientas y practicar con
ellas. No necesitarás más recursos que tu propio ordenador y una conexión a
internet.
4
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Si te gusta pasar el tiempo aprendiendo cosas nuevas, pero eres una persona
práctica y necesitas experimentar lo que aprendes, en este libro vas a encontrar
una serie de procesos que te van a guiar.
5
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Si quieres ser un Ingenios@ de sistemas, lo primero que debes saber es, que es
una máquina virtual y cómo aprovechar estas máquinas en tu beneficio para un
buen aprendizaje.
Una VPS es realmente igual que una máquina virtual, pero resulta más cómoda
para ti porque está alojada en internet y todo el mundo puede tener acceso a
ella sin que tengas que configurar nada en tu router. Lo que aquí aprendas para
máquinas virtuales lo podrás aplicar a VPS.
6
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Para crear máquinas virtuales vas a usar un programa que se conoce como
Hypervisor. Es como un supervisor pero de tecnología Hyper-V, que es la que le
permite a tu ordenador compartir sus recursos y dividirlos entre varios sistemas
operativos.
Para hacer las prácticas vas a usar una distribución de Linux concreta - Ubuntu -
en su versión estable 20.04, que es la más nueva. Así, estás seguro de que tienes
la última versión y sus dependencias.
La instalación de Oracle VirtualBox es muy sencilla: tan solo tienes que ejecutar
el instalador de Oracle VirtualBox que encontrarás en el enlace.
7
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
8
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
En el siguiente cuadro de diálogo, marca las opciones que quieras, entre aquellas
que te propone el instalador:
9
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
10
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
11
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
12
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Imagina que quieres instalar un gestor de contenido web, como p. ej. WordPress,
o que estás aprendiendo a programar.
En cualquiera de los dos casos, vas a necesitar instalar una serie de programas o
lenguajes de programación sobre el sistema operativo. Estos programas tienen
muchas dependencias.
Confía en mí. Sigue leyendo un poquito más y cuando hayas instalado el gestor
de máquinas virtuales, vas a alucinar con lo potente y útil que puede resultar.
13
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
14
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
15
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Elige la ruta para la instalación (la que viene por defecto es correcta) y haz clic en
«Next».
16
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
17
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
¿Preparad@?
18
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
C:\Users\charliealonso>
19
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Una vez ahí, vas a crear una nueva carpeta para una nueva máquina virtual. Esta
nueva carpeta contendrá los archivos de configuración de la máquina virtual de
Vagrant.
C:\Users\charliealonso>mkdir prueba
Después pulsa la tecla “enter” y aparecerá una nueva línea de consola. Teclea el
siguiente comando para situarte dentro de esa carpeta,
C:\Users\charliealonso>cd prueba
Pulsa otra vez “enter” y estarás dentro de la carpeta prueba. Ahora el “prompt”
de consola (texto que te indica la ruta en la que te encuentras) te mostrará la ruta
“C:\Users\charliealonso\prueba” para indicarnos en qué directorio nos
encontramos.
C:\Users\charliealonso\prueba>
20
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Ahora pulsa la tecla “enter”. Si todo ha ido bien, recibirás un mensaje como este;
Si haces un listado de ese directorio con el comando dir, verás que contiene:
C:\Users\charliealonso\prueba>dir
Directorio de C:\Users\charliealonso\prueba
Los datos que te aparecerán a ti serán diferentes, con otras fechas, pero lo
importante es que localices el fichero Vagrantfile, que es el que ha creado
nuevo, tras el comando de inicialización de la máquina virtual.
21
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
config.vm.box = "bento/ubuntu-18.04"
22
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
# View the documentation for the provider you are using for more
# information on available options.
¡No dejes que te asuste tanto código! Son todo comentarios para que
puedas hacer configuraciones avanzadas, pero realmente, la esencia de ese
fichero se resume a tres líneas de código:
Vagrant.configure("2") do |config|
config.vm.box = "bento/ubuntu-18.04"
end
Son las únicas tres líneas que no están comentadas (#), y que por tanto, se
ejecutan.
Ejecuta este comando en tu consola para pedirle a Vagrant que ejecute tu nueva
máquina virtual
C:\Users\charliealonso\prueba>vagrant up
==> default: Box 'bento/ubuntu-18.04' could not be found. Attempting to find and
install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Loading metadata for box 'bento/ubuntu-18.04'
default: URL: https://vagrantcloud.com/bento/ubuntu-18.04
==> default: Adding box 'bento/ubuntu-18.04' (v202008.16.0) for provider:
virtualbox
23
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
default: Downloading:
https://vagrantcloud.com/bento/boxes/ubuntu-18.04/versions/202008.16.0/providers/vi
rtualbox.box
default: Download redirected to host:
vagrantcloud-files-production.s3.amazonaws.com
default:
==> default: Successfully added box 'bento/ubuntu-18.04' (v202008.16.0) for
'virtualbox'!
==> default: Importing base box 'bento/ubuntu-18.04'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'bento/ubuntu-18.04' version '202008.16.0' is up to
date...
==> default: Setting the name of the VM: prueba_default_1600192133976_36393
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection reset. Retrying...
default: Warning: Connection aborted. Retrying...
default: Warning: Remote connection disconnect. Retrying...
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you
see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 6.1.12
default: VirtualBox Version: 6.0
==> default: Mounting shared folders...
default: /vagrant => C:/Users/charliealonso/prueba
24
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Hay otra característica muy importante en la que debes fijarte. En la última línea
de los mensajes que Vagrant te ha devuelto mientras levantaba tu máquina
virtual, podrás ver que directorio de tu ordenador ha compartido con la máquina
virtual.
Acuérdate que la máquina virtual es Linux, entonces en esa línea vemos que el
directorio Windows C:/Users/charliealonso/prueba es el mismo que el directorio
/vagrant en Linux
25
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
C:/Users/charliealonso/prueba
/vagrant
En el caso de que se trate de una página web, lo mismo. Puedes poner los
archivos HTML en la carpeta C:/Users/charliealonso/prueba y decirle al servidor
de aplicaciones web Apache o Nginx que has instalado en tu máquina virtual
Linux, que el directorio para la web es /vagrant
Esto evita que tengas que usar un programa FTP para subir tus archivos al
servidor y actualizar los cambios cada vez que los hagas. Estás trabajando en
local. Ambos sistemas operativos están dentro de la misma máquina, ejecutando
a la vez, así que los cambios que hagas en esa carpeta que comparten ambas
máquinas, la real y la virtual, son cambios que ambas máquina pueden ver de
inmediato.
26
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
vagrant@vagrant:/$ cd vagrant
Y después:
Haces un wget al sitio web donde está el fichero que quieres descargarte y a
continuación pones el nombre del fichero que quieres descargarte.
C:/Users/charliealonso/prueba
27
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Toca ahora enseñarte a instalar un servidor web en la máquina virtual que has
creado. Antes vamos a cambiar la configuración de esta máquina virtual que has
creado para que cumpla los requisitos de red que necesitamos,
28
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Vagrant.configure("2") do |config|
end
C:\Users\charliealonso\laboratorio>vagrant up
Comprueba que haces “ping” desde una consola del sistema, tu ordenador, a la
dirección 192.168.1.51.
Una vez que hayas comprobado que haces ping a esta máquina, puedes
proceder con la instalación. Para instalar Apache en este servidor, conéctate
mediante ssh.
C:\Users\charliealonso\laboratorio>vagrant ssh
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 5.4.0-42-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
29
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
* Support: https://ubuntu.com/advantage
Lo primero que vas a hacer, para poder instalar el servidor web Apache, es
actualizar el sistema operativo Ubuntu 18.04 que viene con la imagen con la que
has levantado el entorno virtual. Esta actualización descarga las últimas
versiones de los paquetes y dependencias del sistema operativo.
Para poder actuar sobre estas máquinas y realizar algunas acciones, necesitas
privilegios de superusuario. Este superusuario en Linux, es el usuario “root”, con
privilegios totales sobre el sistema.
Para actualizar la máquina vamos a usar el comando apt update precedido del
comando sudo. En la consola ssh del server01, escribe lo siguiente:
30
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
31
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
32
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Progress: [ 47%]
[######################################.............................................]
Progress: [ 49%]
[########################################...........................................]
Progress: [ 53%]
[############################################.......................................]
Progress: [ 58%]
[###############################################....................................]
Progress: [ 60%]
[#################################################..................................]
Unpacking libaprutil1-dbd-sqlite3:amd64 (1.6.1-4ubuntu2) ...
Selecting previously unselected package libaprutil1-ldap:amd64.
Preparing to unpack .../03-libaprutil1-ldap_1.6.1-4ubuntu2_amd64.deb ...
Progress: [ 62%]
[###################################################................................]
Progress: [ 67%]
[#######################################################............................]
Progress: [ 71%]
[###########################################################........................]
Progress: [ 76%]
[##############################################################.....................]
Progress: [ 80%]
[##################################################################.................]
Progress: [ 84%]
[######################################################################.............]
Progress: [ 89%]
[#########################################################################..........]
Progress: [ 93%]
[#############################################################################......]
Progress: [ 96%]
[###############################################################################....]
Unpacking apache2-bin (2.4.41-4ubuntu3.1) ...
Selecting previously unselected package apache2-data.
Preparing to unpack .../07-apache2-data_2.4.41-4ubuntu3.1_all.deb ...
Unpacking apache2-data (2.4.41-4ubuntu3.1) ...
Selecting previously unselected package apache2-utils.
Preparing to unpack .../08-apache2-utils_2.4.41-4ubuntu3.1_amd64.deb ...
Unpacking apache2-utils (2.4.41-4ubuntu3.1) ...
Selecting previously unselected package apache2.
Preparing to unpack .../09-apache2_2.4.41-4ubuntu3.1_amd64.deb ...
Unpacking apache2 (2.4.41-4ubuntu3.1) ...
Selecting previously unselected package ssl-cert.
Preparing to unpack .../10-ssl-cert_1.0.39_all.deb ...
Unpacking ssl-cert (1.0.39) ...
Setting up libapr1:amd64 (1.6.5-1ubuntu1) ...
Setting up libjansson4:amd64 (2.12-1build1) ...
Setting up ssl-cert (1.0.39) ...
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a
controlling terminal.)
debconf: falling back to frontend: Readline
Setting up liblua5.2-0:amd64 (5.2.4-1.1build3) ...
Setting up apache2-data (2.4.41-4ubuntu3.1) ...
Setting up libaprutil1:amd64 (1.6.1-4ubuntu2) ...
Setting up libaprutil1-ldap:amd64 (1.6.1-4ubuntu2) ...
Setting up libaprutil1-dbd-sqlite3:amd64 (1.6.1-4ubuntu2) ...
Setting up apache2-utils (2.4.41-4ubuntu3.1) ...
Setting up apache2-bin (2.4.41-4ubuntu3.1) ...
Setting up apache2 (2.4.41-4ubuntu3.1) ...
Progress: [ 98%]
[#################################################################################..]
Enabling module authz_core.
33
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Ahora comprueba el estado del servidor web que acabas de instalar. Utiliza el
siguiente comando sudo systemctl status apache2, que significa: “como
superusuario pídele al controlador del sistema (systemctl) que me diga el estado
(status) del servidor web (apache2)”. Este comando puede variar ligeramente de
un sistema Linux a otro, pero en esencia será así.
34
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Te informará del estado que tiene tu servidor web (en este caso Activo) y del
tiempo que lleva en ese estado, así como del identificador de proceso que está
ejecutando el programa y la memoria que utiliza. Sin duda, profundizaremos
más adelante sobre todos estos datos, pero por ahora esto es suficiente para
saber que Apache está ejecutándose y que ya podrías servir páginas web.
35
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Apache crea una página web inicial que está en esta ruta,
/var/www/html/index.html, y carga esa página web por defecto, porque
cuando se instala, tiene configurado un sitio web por defecto, en un fichero de
configuración que está en la ruta /etc/apache2/sites-available/ y que se
llama 000-default.conf, donde tiene configurado que el directorio por defecto
para el sitio web es /var/www/html.
Como es una carpeta compartida, puedes crear la carpeta HTML bien desde
Windows o bien desde Linux. Es más propio de un ingenios@ de sistemas hacerlo
desde Linux usando la consola de comandos.
Ahora usa el comando “touch” para crear otro fichero index.html dentro de la
carpeta que acabas de crear /vagrant/html
Y recuerda…. ¡Es una carpeta compartida y que puedes usar cualquier editor de
texto que te guste para editar el contenido de ese fichero! Abre el fichero con tu
editor de texto y pega este contenido dentro del fichero HTML.
<!DOCTYPE html>
<html lang="en">
36
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1> Eres ingenios@ de sistemas</h1>
</body>
</html>
Bien, ahora solo vamos a mover la carpeta HTML que ha creado Apache para ti,
para no borrar nada. La vamos a poner dentro de la carpeta /var.
Y después solo tenemos que hacer otro truquito de ingenios@ de sistemas. Harás
un link o enlace para que la carpeta HTML que pongamos dentro de /var/www
sea la carpeta /vagrant/html, Eso lo puedes hacer con el siguiente comando.
37
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
38
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Si has llegado hasta aquí, ya has visto lo que es una página web y cómo se
monta un servidor, para que cuando un usuario navegue hasta tu dirección, vea
el contenido web.
Una página HTML es lo que se conoce como una página estática. La de nuestro
ejemplo solo tiene una cabecera que te dice que “Eres un ingenios@ de
sistemas”. Podría tener muchas más cosas: más texto o enlaces a otras páginas.....
Todo lo que se te ocurra.
Como ya te dije al principio del libro, este no pretende ser una guía de
programación HTML ni de diseño de páginas web. Está orientado a aprender
sobre sistemas, sobre servidores y servicios que se ejecutan en ellos y que se
pueden relacionar entre sí.
La verdad es que no hemos montado todo este lío para poder ver una página
web. Vamos a instalar una aplicación web, en concreto un CMS (Content
Manager System) o gestor de contenido web. Es una aplicación porque tiene
datos dinámicos y tiene funcionalidad. No es únicamente un conjunto de páginas
web estáticas.
Aquí me puedes decir: “Charlie ¡Yo me las apaño con una página simple y
estática a modo de tarjeta de visita!”
39
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Ya. Eso crees tú ahora. En cuando quieras recoger datos de tus potenciales
clientes a través de un formulario de contacto, o bien su correo electrónico para
enviarle emails en un futuro, ya tienes que utilizar un formulario, con funciones
de envío de información y que guarde los datos de tus posibles clientes.
Para eso vamos a usar este gestor de contenido, que es ni más ni menos
WordPress, el más conocido e implantado en internet.
Una base de datos relacional es aquella en la que los datos se guardan en tablas,
con columnas (que son los nombres de los datos que quieres almacenar) y filas
(que son los datos que almacenas).
Una tabla para guardar datos de los suscriptores a tu lista de correo, necesita al
menos una columna, que sería la correspondiente al correo electrónico. Pero
debería tener más columnas. Como mínimo otra más, en la que se guarde si este
usuario ha confirmado su suscripción a través del correo de confirmación que le
has enviado. Así que tendrías una tabla con dos columnas “email” y”confirmado”,
más otra columna que añade el propio gestor de base de datos de manera
automática. Esta columna corresponde al identificador de cada fila, un valor
40
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Además de esta tabla, si vendes cosas a través de tu web, vas a tener un montón
de tablas más: tablas de productos, otra para registrar las ventas de los
productos y otra para registrar los clientes que te compran los productos, etc.
La tabla “pedidos” tendrá relación con la tabla clientes y con la tabla productos.
Un pedido estará relacionado con un cliente y tendrá relación con uno o con
varios productos.
Antes has instalado Apache para servir páginas web, pero para poder servir
aplicaciones web, necesitamos un entorno más completo. Necesitamos un
entorno que en Linux se conoce como LAMP (Linux, Apache, MySQL y PHP). Este
es el conjunto que se necesita para la mayoría de aplicaciones web hoy en día.
Como ves, vas a tener la opción que necesites, pero utilizando un entorno virtual
con máquinas virtuales. Da igual qué sistema operativo tenga tu ordenador. Todo
será tal y como lo has aprendido en este libro.
41
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
A estas alturas del libro, ya eres muy ingenios@ de sistemas. Estoy convencido de
que se te pueden ocurrir muchas formas ingeniosas de usar un gestor de
contenido, o cualquier otra de las muchas aplicaciones de código abierto que
hay en internet. Todas se instalan prácticamente igual que la que estás a punto
de instalar.
En esencia vamos a instalar WordPress, que consiste en una serie de páginas web
y una serie de carpetas e información. La información puede ser de dos tipos:
datos, que guardaremos en la base de datos, y archivos estáticos, que serán
logotipos, fotografías, documentos PDF y todos aquellos activos que quieras
gestionar, dependiendo de la aplicación para la que hayas instalado el gestor.
Si, por ejemplo, lo que quieres es hacer un blog, estos archivos serán las
fotografías que utilices en tus artículos,
En el capítulo anterior habías instalado Apache como servidor web, pero para
este capítulo, en vez de continuar, vamos a empezar desde cero.
42
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Como solo quieres actuar sobre la máquina server01, vas a ser específico con los
comandos que utilizas.
Te preguntará si estás seguro, y respondes que sí con una “y”, después pulsa
“enter”
C:\Users\charliealonso\laboratorio>vagrant up server01
Bringing machine 'server01' up with 'virtualbox' provider...
==> server01: Importing base box 'bento/ubuntu-18.04'...
==> server01: Matching MAC address for NAT networking...
==> server01: Checking if box 'bento/ubuntu-18.04' version '202008.16.0' is up to
date...
==> server01: Setting the name of the VM: laboratorio_server01_1600460971841_5277
==> server01: Clearing any previously set network interfaces...
==> server01: Preparing network interfaces based on configuration...
server01: Adapter 1: nat
server01: Adapter 2: bridged
server01: Adapter 3: intnet
==> server01: Forwarding ports...
server01: 22 (guest) => 2222 (host) (adapter 1)
==> server01: Booting VM...
==> server01: Waiting for machine to boot. This may take a few minutes...
server01: SSH address: 127.0.0.1:2222
server01: SSH username: vagrant
server01: SSH auth method: private key
server01: Warning: Connection reset. Retrying...
server01: Warning: Connection aborted. Retrying...
server01:
server01: Vagrant insecure key detected. Vagrant will automatically replace
server01: this with a newly generated keypair for better security.
server01:
server01: Inserting generated public key within guest...
==> server01: Machine booted and ready!
==> server01: Checking for guest additions in VM...
==> server01: Setting hostname...
==> server01: Configuring and enabling network interfaces...
==> server01: Mounting shared folders...
43
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Empieza a instalar tu entorno LAMP sobre la máquina virtual. Te conectas por ssh
a tu máquina y actualizas el sistema operativo.
44
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
45
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Contesta “y” a la pregunta. Continúa con la instalación hasta que termine. Como
es un laboratorio, vamos a concluir la instalación de MySQL aquí.
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Acabas de comprobar que MySQL funciona. Teclea “exit” para salir de la consola
del gestor de base de datos y continuar con la instalación.
mysql> exit
El siguiente paso es instalar PHP y las librerías que vamos a necesitar. Hazlo con
este comando:
46
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Y una vez que termine el instalador tendrás que comprobar que está bien
instalado,
vagrant@server01:~$ php -v
PHP 7.4.3 (cli) (built: May 26 2020 12:24:22) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
vagrant@server01:~$
1. Crear una base de datos llamada laboratorio para guardar los datos del
sitio “laboratorio” que vas a instalar.
2. Crear un usuario llamado “usrlab” para que sea el usuario que WordPress
use para conectarse a la base de datos.
3. Otorgar privilegios al usuario “urslab” para la base de datos “laboratorio”.
47
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Con este comando creamos una base de datos llamada “laboratorio” con un
juego de caracteres utf8 unicode (quiere decir compatible con acentos y
símbolos del castellano).
Por último, ejecuta este comando que garantiza todos los privilegios del usuario
‘usrlab’ sobre la base de datos ‘laboratorio’, (lectura escritura y borrado de
datos) para que WordPress pueda operar en esta base de datos sin problemas
de permisos. Por último, solo te queda inicializar los privilegios y salir de la
consola de MySQL.
mysql>FLUSH PRIVILEGES;
mysql>exit;
En este punto te conviene hacer otra actualización del sistema operativo con el
comando que ya conoces:
48
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Ahora añadimos alguna librería más de PHP que sabemos que WordPress va a
necesitar.
Y reinicias el servicio Apache para que refleje todos estos cambios que has
hecho con las actualizaciones.
cuando haya terminado de ejecutarse, ejecuta este otro para reiniciar el servidor
web y cargar los nuevos cambios
Instalando WordPress
vagrant@server01:~$ cd /tmp
vagrant@server01:~$ curl -O https://wordpress.org/latest.tar.gz
49
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
~$ touch /tmp/wordpress/.htaccess
Copia la plantilla del fichero de configuración que te has descargado del archivo
de WordPress para poder tener tu propio fichero de configuración, respetando el
original, por si algo sale mal y tienes que volver a utilizar el que te has
descargado.
~$ cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
Crea el directorio donde WordPress pondrá los ficheros para sus actualizaciones:
~$ mkdir /tmp/wordpress/wp-content/upgrade
Ahora vamos con la configuración del directorio de la aplicación para que pueda
funcionar correctamente. Por una parte, Linux es bastante quisquilloso con el
tema de los permisos que tiene que tener un usuario a la hora de ejecutar
ficheros, y por otra parte, Apache es una aplicación que necesita también sus
permisos para ejecutar ficheros.
50
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Y por último, creas un enlace simbólico (un acceso directo en lenguaje Windows)
desde la carpeta /vagrant/html hasta la carpeta /var/www/html , que es donde
Apache espera encontrar las páginas de WordPress.
Ejecuta este comando para obtener unas claves de seguridad con las que
WordPress encripta una serie de datos en su base de datos.
~$ curl -s https://api.wordpress.org/secret-key/1.1/salt/
Cuando ejecutes este comando la consola te devolverá estos valores. Tienes que
copiarlos, ya que los vas a pegar en el fichero de configuración de WordPress.
51
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'laboratorio' );
Copia también las claves que has obtenido para la seguridad de wordpress y las
pegas, sustituyendo esta sección en el fichero.
. . .
. . .
52
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
<?php
/**
* The base configuration for WordPress
*
* The wp-config.php creation script uses this file during the
* installation. You don't have to use the web site, you can
* copy this file to "wp-config.php" and fill in the values.
*
* This file contains the following configurations:
*
* * MySQL settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* @link https://wordpress.org/support/article/editing-wp-config-php/
53
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
*
* @package WordPress
*/
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'laboratorio' );
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link
https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies.
This will force all users to have to log in again.
*
* @since 2.6.0
*/
define('AUTH_KEY', 'zym-7G Js@p/(hp`gidz1_y/#l(KAjhgr=f=vx({vLu= mp[-RZO2,VIl3*IBEnQ');
define('SECURE_AUTH_KEY', '=Nv;VY)InSzuBz=[YDep-aMq,W6wg1-C$kV)7W|]u*p-eG5HDfI0t-a/dQ4|BB7%');
define('LOGGED_IN_KEY', '0]P5n+-$5S{9N[b b&{w_Wj(d Z6_/KC{S {@eSDebNu]7-k/J2KCVb>g+pciv!k');
define('NONCE_KEY', 'o,90:ahRP(?}ylX<:(}TF16b9r-]s75:z!T%2F*q/pnM|K87@eXv7IX]`N&Ba6Ss');
define('AUTH_SALT', '0 m12cR6Cief5kr-o<XvglEFC<Th-~]wsHecUjK$XQV2mOyf^i{&k#V9nrjQ[za]');
define('SECURE_AUTH_SALT', 'T:bPp2U[U[I{h5a%Dx }X*|UD,&( uSRR*d}.3gyX5xzTK`U0,=UI]&Evs|(N(D(');
define('LOGGED_IN_SALT', ':?Pehb))`Xj7BXb-<QO7b79&${&bsXm|F@-V+czk+Tx5(qH$$tbmx n41+i.FdM[');
define('NONCE_SALT', '/$hU!`)tBm2<w/@|:YHsWoIgT+;/#6ocT+>BK<&D>h-$3?kXky )XNe9c24a+fn(');
/**#@-*/
define('FS_METHOD', 'direct');
/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
54
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
*/
$table_prefix = 'wp_';
/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the documentation.
*
* @link https://wordpress.org/support/article/debugging-in-wordpress/
*/
define( 'WP_DEBUG', false );
55
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
56
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Rellena este formulario con tus propios datos y pulsa el botón de Instalar
Wordpress. El proceso de instalación durará unos segundos, Cuando termine
aparecerá esta página.
57
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
58
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
59
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
60
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Si has llegado hasta aquí es que acabas de conseguir tu primer reto. Más claro
aún. Has conseguido instalar una plataforma WordPress en una máquina virtual
en tu propio ordenador. ¿Te sientes estupendamente? ¡Seguro que sí!
Es posible que ya supieras que son las máquinas virtuales, o no. También es
posible que ya conocieras WordPress, o no.
Con este libro pretendo darte a entender lo que haces, haciéndolo de una forma
diferente y utilizando herramientas que te dan un mayor control y entendimiento
de los procesos que conlleva la administración de servidores, plataformas y
servicios informáticos.
61
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Hay dos preguntas básicas que te tienes que hacer a cada momento, “¿Cómo
podría?” y “¿Qué pasa si?” No tiene que ser necesariamente en ese orden.
¿Cómo podría montar una página web para hacer un festival de cortos online?.
- Necesitaría una página web donde los usuarios se pudieran dar de alta y
subir los videos de sus cortos,
.¿Qué pasaría si tiene éxito y se apuntan muchos usuarios y quieres subir muchos
vídeos?
62
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
¿Cómo podría montar un sistema muy básico hasta validar la idea y luego ir
ampliando el almacenamiento poco a poco?
- Sin tener que invertir en un servidor con mucho almacenamiento, que voy
a tener que pagar desde el primer día aunque esté vacío.
Por eso, para que puedas adquirir más conocimiento y experimentar con un
completo laboratorio de máquinas virtuales, mezclando e integrando tecnología
de código abierto, he escrito la segunda parte de este libro. La puedes descargar
de mi página web.
Pero antes te voy a pedir un favor. Me gustaría saber más sobre ti, para conocer
tus intereses y poder orientar mis contenidos a cosas que realmente te sean
útiles. Te voy a pedir que rellenes un pequeño formulario.
Haz clic en el enlace que te llevará al formulario para después poder descargar
Como ser ingenios@ de sistemas (almacenamiento redundante)
63
Como ser “Ingenios@ de sistemas” sin ser ingenier@ Tecnolitas.com
Agradecimientos
64