LEMP es una combinación de herramientas open-source. El acronimo LEMP, viene derivado de las primeras letras de cada software: (Linux, Nginx HTTP Server, MySQL o MariaDB y PHP, Perl o Python)
El tutorial que hoy os dejamos se trata de instalar LEMP en nuestros VPS con la reciente Ubuntu 14.04LTS, de la cual fuimos pioneros en soportar en nuestros planes de Servidores Virtuales.
Instalar Nginx
Nginx (que se pronuncia engine-x) es un servidor HTTP y proxy, gratuito y open-source, se puede incluso usar de proxy de IMAP y POP3, fijaros si es potente. Es un claro sustituto a Apache, consumiendo muchos menos recursos y con mucha más potencia que Apache. Además se puede usar como reverse proxy de nuestros sistemas. Por ejemplo Facebook o Hulu, utilizan nginx para soportar sus millones de peticiones por segundo diarias.
Para instalar Nginx en nuestro VPS, realizaremos los siguientes pasos:
Nota: Si tuvieras instalado apache2 en el VPS, hay que eliminarlo primero, para desinstalarlo, introduciremos los siguientes comandos:
sudo apt-get purge apache2*
sudo apt-get autoremove
Ahora, podemos instalar nginx sin problemas:
sudo apt-get install nginx
Arrancaremos el servicio Nginx con el siguiente comando:
sudo service nginx start
Probando Nginx
Abriremos nuestro navegador web e introduciremos lo siguiente >http://ip-address/ Veremos una imagen similar a la siguiente:

Configurar Nginx
Abriremos el fichero /etc/nginx/nginx.conf con vuestro editor preferido:
sudo nano /etc/nginx/nginx.conf
Y tendremos que cambiar el worker_processes (Número de CPU de nuestro VPS). Para ver el número de CPU de nuestro VPS, ejecutaremos el comando «lscpu»:
root@ubuntu:/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: 45
Stepping: 7
CPU MHz: 2500.000
BogoMIPS: 5000.00
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 15360K
NUMA node0 CPU(s): 0
Asi que, deberiamos dejarlo de la siguiente manera: worker_processes 1
Y reiniciamos el servicio de Nginx:
sudo service nginx restart
El vhost por defecto está definido en el fichero /etc/nginx/sites-available/default
Abriremos el fichero /etc/nginx/sites-available/default en cualquier editor. Iremos hasta la sección Server, deberemos dejar la configuración como se indica en este tutorial, se indican en negrita:
[…]
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;
[…]
Una breve explicación de cada comando que vemos:
- listen 80; –> puerto para escuchar mediante ipv4
- listen [::]:80 default_server ipv6only=on; –> puerto para escuchar mediante ipv6
- root /usr/share/nginx/html; –> Directorio por defecto donde debemos alojar los ficheros HTML
- server_name server.unixmen.local; –> Nombre del Virtualhost
Ahora y para corregir un posible fallo de zero day, realizaremos estos cambios a continuación, ir hasta la sección #location ~ .php$. Descomentar y dejar como se adjunta:
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;
}
Hemos añadido la línea ‘try_files $uri =404;’ para prevenir exploits zero day.
Salvar y salir del fichero
Probar la configuración de Nginx
Deberemos de comprobar si nuestro fichero de configuración de Nginx es correcto:
sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Y finalmente reiniciamos el servicio de nginx
sudo service nginx restart
Instalar MySQL
MySQL es un sistema de bases de datos relacionales (RDBMS) que se ejecuta sobre un servidor, y provee un acceso multi usuario a diferentes bases de datos. Es uno de los principales pilares del Internet moderno, millones de sitios web guardan sus datos sobre este sistema. Vamos a ver los comandos para la instalación:
sudo apt-get install mysql-server mysql-client
En la instalación, nos solicitará una password para el usuario root:
Y volvemos a repetir la password una vez más:
Podemos verificar el estado de MySQL con el siguiente comando:
sudo service mysql status
mysql start/running, process 3901
Instalar MariaDB
Si por el contrario, queremos MariaDB para nuestro LEMP, hemos de seguir estos pasos. MariaDB es el software que sustiuirá a MySQL. Es robusto, escalable e incluye numerosas mejoras para nuestro entorno SQL.
Lo primero que tendremos que hacer, es eliminar los paquetes de MySQL. Para completar una desinstalación de MySQL, si es que la hubiera, hay que realizar el siguiente comando:
sudo apt-get purge mysql*
Lanzaremos el siguiente comando para eliminar los paquetes:
sudo apt-get autoremove
Ahora, tendremos que añadir los PPA de Maria DB para Ubuntu 14.04LTS
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://mirror.netinch.com/pub/mariadb/repo/10.0/ubuntu trusty main’
Haremos una actualización de paquetes e instalaremos MariaDB usando los siguientes comandos:
sudo apt-get update
sudo apt-get install mariadb-server mariadb-client
Durante la instalación, nos solicitará una contraseña y una verificación de la misma:
Y nos solicitará repetirla una vez más:
Podemos comprobar que versión de MariaDB tenemos con el siguiente comando:
root@ubuntu:/home/oper# mysql -v -uroot -pPASS
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 40
Server version: 10.0.10-MariaDB-1~trusty-log mariadb.org binary distribution
Copyright (c) 2000, 2014, Oracle, SkySQL 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)]>
Y comprobar si el servicio está corriendo, usando el siguiente comando:
root@ubuntu:/home/oper# sudo service mysql status
* /usr/bin/mysqladmin Ver 9.1 Distrib 10.0.10-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.
Server version 10.0.10-MariaDB-1~trusty-log
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 1 min 30 sec
Threads: 1 Questions: 673 Slow queries: 0 Opens: 567 Flush tables: 2 Open tables: 29 Queries per second avg: 7.477
Instalar PHP
PHP (es un acronimo de PHP: Hypertext Preprocessor) es un lenguaje de programación de código abierto de propósito general, muy usado especialmente para el desarrollo web y puede ser embebido en páginas HTML.
Instalar PHP con el siguiente comando:
sudo apt-get install php5 php5-fpm php5-mysql
Configurar PHP
Tendremos que realizar un pequeño cambio en el fichero php.ini. Abriremos el fichero php.ini con cualquier editor:
sudo nano /etc/php5/fpm/php.ini
Y buscaremos la línea ‘cgi.fix_pathinfo=1′, la descomentaremos y cambiaremos el valor de 1 a 0.
cgi.fix_pathinfo=0
Ahora haremos un reinicio al servicio php-fpm
sudo service php5-fpm restart
Probar PHP
Crearemos un fichero llamado “testphp.php” dentro del directorio raíz de nginx.
sudo nano /usr/share/nginx/html/testphp.php
Y añadiremos las siguientes líneas en él: .
<?php
phpinfo();
?>
Salvar y salir del fichero.
Navegar a la siguiente dirección http://server-ip-address/testphp.php Y podremos ver mucha información de nuestro sistema, build, módulos, pplugins, etc:
Administrar las bases de datos MySQL
Lo realizaremos con phpMyAdmin. phpMyAdmin es una herramienta web open-source que nos permite administrar nuestras bases de datos MySQL o MariaDB
Instalar phpMyAdmin
Está disponible en los repositorios oficiales, por lo que tan solo deberemos seguir los siguientes pasos:
sudo apt-get install phpmyadmin
Seleccionaremos cualquiera de las dos opciones, nginx no aparece como soportado. Pero al final podremos ejecutarlo sin ningún problema.

En esta opción, marcaremos dbconfig-common en Yes
Introduciremos una contraseña para el usuario con privilegios administrativos
Y también una contraseña para la aplicación de MySQL.
Crearemos un enlace simbolico entre phpMyAdmin y el directorio root de nginx. Como vimos antes, el directorio por defecto es /usr/share/nginx/html/
sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/html/
Reiniciamos el servicio de nginx.
sudo service nginx restart
Accediendo a la consola Web de phpMyAdmin
Ahora, ya podremos acceder a nuestra consola de phpmyadmin navegando en http://server-ip-address/phpmyadmin/ desde nuestro navegador
Para loguearnos deberemos introducir las credenciales que introducimos anteriormente, en mi caso root y la password.
Y según que versión de Base de Datos tengamos, veremos un motor de Base de Datos u otro:
Para MySQL
Para más información sobre Ubuntu 14.04LTS, en Ubuntufacil.
Contrata tu plan VPS en el siguiente enlace.
Basado en el tutorial de unixmen








