Skip to content

Instantly share code, notes, and snippets.

@plencovich
Last active September 26, 2020 14:05
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save plencovich/0d558bdf7911b3176034a27df40d763a to your computer and use it in GitHub Desktop.
Save plencovich/0d558bdf7911b3176034a27df40d763a to your computer and use it in GitHub Desktop.
Es una guia instructiva que sirve de ayuda memoria para el paso a paso de la instalación de LEMP (Linux Nginx MariaDB PHP7) sobre Ubuntu 18.04

Plen.co

Instalación Server Linux LEMP

Es una guia instructiva que sirve de ayuda memoria para el paso a paso de la instalación de LEMP (Linux Nginx MariaDB PHP7) sobre Ubuntu 18.04

Configurar Hostname

hostnamectl set-hostname hostname.domain.tld

Actualizar Linux

sudo apt update && sudo apt upgrade

Instalar NGINX

sudo apt install nginx

Instalación de Base de Datos - MariaDB

sudo apt install mariadb-server mariadb-client

sudo mysql -u root

Escribir las siguientes query, reemplace user_new por su nombre de usuario y password por su contraseña:

SELECT user,host,authentication_string,plugin FROM mysql.user;
CREATE USER 'user_new'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'user_new'@'localhost' WITH GRANT OPTION;
quit

sudo mysql_secure_installation

Enter current password for root (enter for none): <-- presione enter

Set root password? [Y/n] <-- y

New password: <-- Escriba el nuevo passowrd

Re-enter new password: <-- Repita el password ingresado

Remove anonymous users? [Y/n] <-- y

Disallow root login remotely? [Y/n] <-- y

Reload privilege tables now? [Y/n] <-- y

Instalación de PHP

sudo apt install php-fpm php-mysql php-gd php-cli php-xml php-bz2 php-zip php-intl php-curl php-soap php-mbstring

sudo sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php/7.2/fpm/php.ini

Instalar Let's Encrypt

sudo add-apt-repository ppa:certbot/certbot

sudo apt update

sudo apt install python-certbot-nginx

Para crear un certificado SSL a un dominio:

sudo certbot --nginx -d example.com -d www.example.com

Instalación de phpMyAdmin - opcional

sudo apt-get install phpmyadmin

Web server to configure automatically: <-- Dejar en blanco

Configure database for phpmyadmin with dbconfig-common? <-- Yes

MySQL application password for phpmyadmin: <-- Ingrese una contraseña o presione enter para crear una random

Cambiar url default por una personalizada:

sudo ln -s /usr/share/phpmyadmin /var/www/html/{nombre_link}

Agregar seguridad al acceder via web:

sudo phpenmod mcrypt

sudo systemctl restart php7.2-fpm

Generar una contaseña openssl passwd

Editar sudo nano /etc/nginx/pma_pass y guardar el usuario y contraseña generado anteriormente, con el formato user:password

Editar la configuración del dominio por default o bien realizarlo sobre el dominio sobre el cual quiere acceder a phpMyAdmin

sudo nano /etc/nginx/sites-available/default

Y pegar el siguiente código dentro del bloque server { .... }

location /{nombre_link} {
	auth_basic "Acceso DB Login";
	auth_basic_user_file /etc/nginx/pma_pass;
}

Cambiar puerto SSH

Cambiar puerto SSH default 22 por custom ej: 3344, editar nano /etc/ssh/sshd_config

Configurar UFW Firewall

Si utiliza UFW deberá crear las reglas para que funcione

Habilitar puertos para NGINX 80 y 443 sudo ufw allow 'Nginx Full'

Habilitar puerto para ssh custom ufw allow 3344

Activar firewall ufw enable

Más info de configuración UFW

Información Adicional

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment