• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
El Blog de Jorge de la Cruz

El Blog de Jorge de la Cruz

El Blog de Jorge de la Cruz - Todas las novedades sobre VMware, Veeam, InfluxData, Grafana, Zimbra, etc.

  • Home
  • VMware
    • VMworld
    • VMware vSphere 6.7
    • VMware vSphere 6.5
  • Veeam
    • Resumen Contenido 2021
    • Veeam v11
      • Continuous Data Protection (CDP
      • Ransomware Protection
      • Archive Tier
      • Mejoras en Instant Recovery
      • Veeam Agent for Mac
      • Veeam Backup for AHV v2.1
    • Veeam Backup for Microsoft Office 365
      • 1 – Razones para proteger nuestra información en Microsoft Office 365
      • 2 – Componentes lógicos de Veeam Backup for Microsoft Office 365 2.0
      • 3 – Instalación paso a paso de Veeam Backup for Microsoft Office 365 v2.0
      • 4 – Configuración inicial de Veeam Backup for Microsoft Office 365 v2.0
      • 5 – Creando trabajos de copia en Veeam Backup for Microsoft Office 365 v2.0
      • 6 – Restaurando elementos en Veeam Backup for Microsoft Office 365 v2.0
    • Veeam Backup for AWS
      • Veeam: Veeam anuncia Veeam Backup for AWS Free Edition
      • Veeam: Cómo Desplegar Veeam Backup for AWS – paso a paso
      • Veeam: Vistazo en profundidad al nuevo Veeam Backup for AWS – Creación de Políticas de Backup y Restauración
      • Veeam: Cómo conectar nuestro Veeam Backup & Replication a Veeam Backup for AWS
    • Veaam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte I – Introducción a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte II – Descarga e Instalación de Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte III – Añadir una Infraestructura de VMware vSphere a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte IV – Añadir una Infraestructura de Veeam Backup and Replication a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte V – Realizando troubleshooting de vSphere usando Veeam ONE Monitor
      • En busca del Dashboard perfecto: Veeam ONE – Parte VI – Realizando troubleshooting de Veeam Backup and Replication usando Veeam ONE Monitor
      • En busca del Dashboard perfecto: Veeam ONE – Parte VII – Vistazo profundo a los Dashboards en Veeam ONE Reporter
      • En busca del Dashboard perfecto: Veeam ONE – Parte VIII – Vistazo profundo a Reportes en Veeam ONE Reporter
      • En busca del Dashboard perfecto: Veeam ONE – Parte IX – Chargeback para crear reportes de coste de nuestra Infraestructura
    • Veeam Availability Console
      • 1 – Teoría e información útil sobre el producto
      • 2 – Instalación de Veeam Availability Console
      • 3 – Configuración y conexión con VBR Server
      • 4 – Administración centralizada de Veeam Backup Agents
      • 5 – Backup de Agentes a diferentes destinos, SMB, Repositorio Veeam o Cloud Connect
      • 6 – Reportes de Backup de Veeam Agent y Veeam Backup and Replication
      • 7 – Manejando la Facturación de Veeam Agents, Backup and Replication y Cloud Connect
    • Backup y restore de cargas de trabajo a Microsoft Azure
      • 1 – Introducción
      • 2 – Conectividad entre nuestro Datacenter y Microsoft Azure
      • 3 – Desplegar Veeam Backup and Replication en Microsoft Azure
      • 4 – Configuración en nuestro Datacenter para backup a Microsoft Azure
      • 5 – Restaurando a Microsoft Azure, desde Microsoft Azure
      • 6 – Migrar cargas de trabajo desde Microsoft Azure hacía nuestro Datacenter
    • Veeam v9.5 Update 4
      • Veeam Cloud Tier
        • Cómo controlar el ancho de banda en Veeam Cloud Tier
      • Secure Restore y Staged Restore
      • Mejoras en Veeam Agent Management
      • Veeam Community Edition
      • Actualizar Veeam Enterprise Manager y Veeam Backup and Replication a la última versión
      • VeeamONE con Intelligent Diagnostics, Remediation actions, Business View 2.0 y Application Monitoring
    • VeeamON 2022
      • Novedades en Veeam ONE v12
    • VeeamON 2021
      • VBO v6 – Self-Service y Backup Copy Glacier-Azure Archive
    • VeeamON 2020
      • Veeam Backup for AWS v2.0
    • VeeamON 2019
      • Veeam Availability Orchestrator v2.0 – ¡novedades!
    • VeeamON 2017
      • Sesiones recomendadas
      • Día I – Veeam Availability Suite v10 – ¡novedades!
      • Día II – Veeam Azure PN (Powered Network), Scale-out Archive Tier y mucho más
    • VeeamON 2015
      • VeeamON 2015 volverá a Las Vegas en el único Evento sobre Disponibilidad en el Data Center
      • Completo resumen, keynotes e imágenes
      • vBrownBag – Jorge de la Cruz – Stop sending postcards to your customers
  • Zextras
  • PRTG
  • Office 365
    • Microsoft – Añadiendo nuestro dominio a Office 365, configuración de DNS y migración de actual Mailbox
    • Veeam: Usando Microsoft Office 365 para nuestras notificaciones por correo electrónico
    • PRTG: Usando Microsoft Office 365 para nuestras notificaciones por correo electrónico
  • Zimbra
    • Instalación
      • Instalando Zimbra 8.7.6 sobre Ubuntu 14.04 LTS – ¡con Chat y Drive!
      • Amazon Lightsail para instalar Zimbra Collaboration 8.7.1, Parte II
      • Amazon Lightsail para instalar Zimbra Collaboration 8.7.1, Parte I
      • Instalando Zimbra 8.7.x con un solo comando, incluye Chat y Drive
  • Linux
    • InfluxDB, Grafana y Telegraf
      • 1 – Instalación y configuración de los components
      • 2 – Instalar agente en Linux
      • 3 – Integración con PRTG
      • 4 – Instalar agente Telegraf en Nodos remotos Windows
      • 5 – Activar inputs específicos, Red, MySQL/MariaDB, Nginx
      • 6 – Monitorizando Veeam
    • Ansible y Zabbix
      • 1 – Inicio
      • 2 – Instalación de Ansible e integración con Active Directory
      • 3 – Configuración de AutoDiscovery en Zabbix
      • 4 – Instalación del agente de Zabbix en Windows
      • 5 – Instalación del agente de Zabbix en Linux y Auto Remove en Zabbix
    • Jenkins
      • 1 – Inicio
      • 2 – Instalación de Jenkins en Ubuntu
      • 3 – Instalando nuestro primer plugin
      • 4 – Sincronización NTP de Linux
      • 5 – Añadir un Slave Windows a Jenkins
      • 6 – Ejecutar tareas en Linux
      • 7 – Ejecutar tareas en Windows
    • Kubernetes
      • 1 – Introducción a Kubernetes
      • 2 – Instalación paso a paso
      • 3 – RollingUpdate con Kubernetes
      • 4 – Dashboard
      • 5 – Volúmenes NFS
      • 6 – Registry
      • 7 – Traefik
      • 8 – Systemd con Traefik y Proxy de Kubernetes
      • 9 – Heapster Influx Grafana
      • 10 – Labels de Kubernetes
      • 11 – API: Swagger
      • 12 – API: Creando nuestro primer POD
  • Contribuidores
    • Acerca de Jorge
    • Acerca de Oscar Mas
      • Clúster SQL
        • 1 – Introducción
        • 2 – Preparación de los equipos virtuales
        • 3 – Instalación del Clúster de Microsoft
        • 4 – Instalación de SQL Server para Clúster de Microsoft
        • 5 – Configuración de nuestro Clúster de SQL
        • 6 – Monitorización de Clúster de SQL con Zabbix
        • 7 – Actualizando clúster de SQL

Instalar LEMP Server (nginx, MySQL o MariaDB, PHP) en Ubuntu 14.04LTS

2 March, 2015 - Escrito en: opensource

lemp-banner

Saludos amigos, hoy os dejo este tutorial, del que vendrán asociados diferentes posts para instalar sobre LEMP

LEMP es una combinación de herramientas Open-Source. El acrónimo LEMP viene derivado de las primeras letras de cada uno de los software: (Linux, Nginx HTTP Server, MariaDB y PHP, Perl o Python)

Este tutorial está basado en Ubuntu 14.04.2 LTS

  1. Instalación NGINX
  2. Instalación MariaDB
  3. Instalación PHP
  4. Instalación phpMyAdmin

Instalación Nginx

Nginx (se pronuncia engine-x y de ahí sale el LEMP) es un servidor HTTP y proxy, gratuito y además open-source, se puede incluso usar de proxy de IMAP y POP3 (Zimbra lo hace desde hace tiempo).

Por ser ligero y potente, es el sustituto perfecto de Apache, consumiendo menos recursos y más potente que Apache. Además se puede usar como reverse proxy de nuestros sistemas.

Para instalar nginx debemos comprobar antes que no tenemos Apache corriendo o instalado en el sistema:

[syntax type=”php”]sudo apt-get purge apache2*
sudo apt-get autoremove[/syntax]

Con el siguiente comando instalaremos nginx:

[syntax type=”php”]sudo apt-get install nginx[/syntax]

Vamos a levantar el servicio con el siguiente comando:

[syntax type=”php”]sudo service nginx start[/syntax]

Comprobando Nginx

Abriremos nuestro navegador web e introduciremos lo siguiente http://VUESTRAIPDELSERVER/

lemp-001

Configuración Nginx

Editaremos el fichero /etc/nginx/nginx.conf con el editor que os guste, en este caso nano:

[syntax type=”php”]sudo nano /etc/nginx/nginx.conf[/syntax]

Ahora y según el número de vCPU que tengamos, ajustaremos el worker_processes, se puede comprobar con el siguiente comando lscpu:

[syntax type=”php”]root@nginx-pastebin:/home/oper# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                1
On-line CPU(s) list:   0
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 70
Stepping:              1
CPU MHz:               2494.099
BogoMIPS:              4988.19
Hypervisor vendor:     VMware
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              6144K
L4 cache:              131072K
NUMA node0 CPU(s):     0[/syntax]

En mi caso, en mi lab solamente tengo 1 vCPU asique debe quedar así: worker_processes 1

Y reiniciamos el servicio de Nginx:

[syntax type=”php”]sudo service nginx restart[/syntax]

Toda la configuración por defecto se encuentra en el fichero /etc/nginx/sites-available/default

Editaremos este fichero /etc/nginx/sites-available/default e introduciremos los siguientes cambios, en negrita

[syntax type=”php”][…]
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name FQDN-QUE-QUERAMOS;
[…][/syntax]

Os dejo aquí una explicación sobre que estamos viendo en este fichero:

  • listen 80; –> Puerto de escucha para IPv4
  • listen [::]:80 default_server ipv6only=on; –> puerto de escucha para IPv6
  • root /usr/share/nginx/html; –> Directorio por defecto donde se almacenarán los ficheros HTML, PHP, etc.
  • server_name server.unixmen.local; –> Nombre del Virtualhost

El siguiente paso es una best practice, debemos movernos hasta el siguiente párrafo #location ~ .php$. Descomentarlo y se debe ver así:

[syntax type=”php”]location ~ .php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+.php)(/.+)$;
# # NOTE: You should have “cgi.fix_pathinfo = 0;” in php.ini
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}[/syntax]

Hemos añadido la línea ‘try_files $uri =404;’ para mejorar la seguridad.

Salvaremos el fichero y ya podemos salir de él.

Verificando la configuración de Nginx

Podemos comprobar si nuestra config de Nginx es correcta:

[syntax type=”php”]sudo nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

[/syntax]

Y finalmente reiniciamos el servicio de nginx

[syntax type=”php”]sudo service nginx restart[/syntax]

Instalación MariaDB

Instalaremos MariaDB para nuestro server LEMP. MariaDB es un software sustituto a MySQL.
Vamos a asegurarnos que eliminamos los paquetes de MySQL.

[syntax type=”php”]sudo apt-get purge mysql*[/syntax]

Lanzaremos el siguiente comando para eliminar los paquetes:

[syntax type=”php”]sudo apt-get autoremove[/syntax]

Lo mejor par instalar MAriaDB es añadir los PPA de Maria DB para Ubuntu 14.04LTS

[syntax type="php"]sudo apt-get install software-properties-common 
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db 
sudo add-apt-repository 'deb http://lon1.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main'[/syntax]

Haremos una actualización de paquetes e instalaremos MariaDB usando los siguientes comandos:

[syntax type=”php”]sudo apt-get update
sudo apt-get install mariadb-server mariadb-client[/syntax]

Durante la instalación, nos solicitará una contraseña y una verificación de la misma:

lemp-002

Nos la pedirá una vez más y terminará la instalación en pocos segundos.
Podemos comprobar que versión de MariaDB tenemos con el siguiente comando:

[syntax type=”php”]root@nginx-pastebin:/home/oper# mysql -v -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 41
Server version: 10.0.16-MariaDB-1~trusty-log mariadb.org binary distribution

Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.

Reading history-file /root/.mysql_history
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [(none)]> [/syntax]

Y comprobar si el servicio está levantado usando el siguiente comando:

root@nginx-pastebin:/home/oper# sudo service mysql status
* /usr/bin/mysqladmin  Ver 9.1 Distrib 10.0.16-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.

Server version          10.0.16-MariaDB-1~trusty-log
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/run/mysqld/mysqld.sock
Uptime:                 1 min 7 sec

Threads: 1  Questions: 698  Slow queries: 0  Opens: 563  Flush tables: 2  Open tables: 31  Queries per second avg: 10.417
root@nginx-pastebin:/home/oper#

Instalación PHP

Instalaremos PHP con el siguiente comando:

[syntax type=”php”]sudo apt-get install php5 php5-fpm php5-mysql[/syntax]

Configuración PHP

Vamos a editar primeramente un parámetro en el fichero de configuración de PHP:

[syntax type=”php”]sudo nano /etc/php5/fpm/php.ini[/syntax]

Y buscaremos la línea que contiene ‘cgi.fix_pathinfo=1′, la descomentaremos y cambiaremos el valor de 1 por 0.

[syntax type=”php”]cgi.fix_pathinfo=0[/syntax]

Ahora haremos un reinicio al servicio php-fpm

[syntax type=”php”]sudo service php5-fpm restart[/syntax]

Probando que PHP está bien instalado

Vamos a crear el típico “testphp.php” dentro del directorio raíz de nginx.

[syntax type=”php”]sudo nano /usr/share/nginx/html/testphp.php[/syntax]

Y añadiremos las siguientes líneas en él: .

[syntax type=”php”]<?php
phpinfo();
?>[/syntax]

Salvar y salir del fichero.

Navegar a la siguiente dirección http://VUESTRAIP/testphp.php para ver información adicional, toda esta información la provee el phpifo, una vez hemos visto que funciona, se recomienda borrar este fichero.

lemp-003

Instalación phpMyAdmin

phpMyAdmin es una herramienta web Open-Source que nos permite administrar bases de datos MySQL o MariaDB.

Instalación phpMyAdmin

Está disponible en los repositorios oficiales:

[syntax type=”php”]sudo apt-get install phpmyadmin[/syntax]

En un primer paso nos preguntará sobre que servidor web weremos instalarlo, si sobre apache2 o lighthttpd, seleccionaremos apache, aunque no tiene mayor importancia.

En la siguiente pregunta sobre dbconfig-common marcaremos Yes

lemp-004

Crearemos una contraseña para poder administrar phpMyAdmin:

lemp-005

Y también una contraseña para la aplicación de MySQL.

Confirmamos la password

Crearemos un enlace simbólico entre la carpeta de phpMyAdmin y el directorio root de nginx.

[syntax type=”php”]sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/html/[/syntax]

Instalaremos adicionalmente la extensión mcrypt:

[syntax type=”php”]root@nginx-pastebin:/home/oper# apt-get install php5-mcrypt
root@nginx-pastebin:/home/oper# php5enmod mcrypt
root@nginx-pastebin:/home/oper# service php5-fpm restart[/syntax]

Reiniciamos el servicio de nginx.

[syntax type=”php”]sudo service nginx restart[/syntax]

Accediendo a la consola Web de phpMyAdmin

Ahora, ya podremos acceder a nuestra consola de phpMyAdmin visitando http://VUESTRAIP/phpmyadmin/

Nos solicitará el usuario y password que hemos creado anteriormente, suele ser root y la pass que hayáis escrito previamente.

lemp-006Y según que versión de Base de Datos tengamos, veremos un motor de Base de Datos u otro:

En MariaDB veremos lo siguiente

lemp-007

Para más información sobre Ubuntu 14.04LTS, por favor visitar Ubuntufacil.

Filed Under: opensource Tagged With: lemp, ubuntu 14 server, ubuntu lemp

Reader Interactions

Comments

  1. carlos says

    24 June, 2015 at 1:21

    excelente explicación, la mas clara que he encontrado, me sirvió de mucho, gracias

    Reply
  2. Hector says

    9 August, 2015 at 23:50

    Hola Jorge, estoy siguiendo tus pasos y todo ok! Pero no me queda claro porque creas un enlace simbólico entre el directorio de phpMyAdmin y el directorio root de nginx. Es realmente necesario?

    Podrías explicarlo?

    Gracias!

    Reply
    • Jorge de la Cruz says

      10 August, 2015 at 9:04

      Saludos Hector,
      Siempre puedes mover la carpeta de PHPMyadmin de donde se encuentra /usr/share/phpmydadmin a la de root de nginx, pero en este caso he preferido un enlace simbolico.

      Un saludo

      Reply
  3. joseph merello says

    24 September, 2015 at 18:41

    Hola puedo utilizar ubuntu server para la instalacion de LEMP

    Reply
    • Jorge de la Cruz says

      24 September, 2015 at 18:42

      Si claro, cualquier distribucion.

      Reply
  4. alberto roca says

    29 September, 2015 at 0:19

    hola jorge una consulta yo quiero instalar chamilo LMS usando nginx los archivos de instalacion tendria q colocarlos en la ruta /usr/share/nginx/html/

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar

  • Email
  • GitHub
  • LinkedIn
  • RSS
  • Twitter
  • YouTube

Gold Partners

Silver Partners

Libros Gratuitos

Cloud por vExperts
VMware por vExperts

VMware vExpert

Puesto 16 en Top vBlog

Calendario de Posts

March 2015
M T W T F S S
 1
2345678
9101112131415
16171819202122
23242526272829
3031  
« Feb   Apr »

Disclaimer

Todas las opiniones expresadas en este sitio son las mías propias y no representan las opiniones de ninguna compañía con la que haya trabajado, esté trabajando o vaya a estar trabajando.

Copyright © 2026 · El Blog de Jorge de la Cruz