Instalar y configurar un servidor web completo

servidor lamp wamp mysqlBienvenido ^^, si vamos a diseñar nuestra primera base de datos con todas las de la ley es necesario que instalemos MySQL (RDBMS), pero se me ocurre que podríamos aprender a montar un servidor web completo normalmente conocido como XAMMP o LAMP que nos permitirá no solo trabajar con bases de datos, sino que además podremos más adelante trabajar cómodamente con PhpMyadmin e incluso realizar prácticas de desarrollo web.

Ahora bien dirás: ¿Qué carajos es LAMP / WAMP / XAMMP y esas vainas?.

 

Pues se trata de un acrónimo utilizado para referirse a un entorno completo de infraestructura web, más concretamente formado por tu sistema operativo + Apache (servidor web), Mysql y Php o en otros casos bien podríamos referirnos a un lenguaje como PHP, Python, Perl. De ahí la jodida letra «P».

Entonces si tu tienes linux bien podríamos llamarle LAMP (Linux + Apache + (MariaDB) Mysql + Php) y si tienes Windows, podríamos llamarle WAMP (Windows + Apache +(MariaDB) Mysql + Php). ¿Me explico chico?

modelo relacional bases de datosTambién tenemos en existencia XAMPP  que es un servidor independiente de plataforma, software libre, que consiste principalmente en la base de datos MySQL, el servidor web Apache y los intérpretes para lenguajes de script: PHP y Perl. Dónde podríamos decir que la X refiere a que es independiente de la plataforma o Sistema Operativo. Y es el más sencillo de instalar y configurar en caso de que no tengas experiencia en servidores web.

En su mayoría las herramientas que nos interesan ahora son un servidor web (Apache) y Mysql. Es importante aprender no solo a diseñar bases de datos sino a administrar un servidor web completo y por ello este post tratará de ello. Si bien no quiero irme mucho por las ramas en mis post, creo que resulta necesario ya que este tercer módulo trata de «Desarrollo» y quiero darte todos los conocimientos y herramientas necesarias para que llegues a ser un desarrollador exitoso, o al menos que puedas abarcar ancho más allá de un simple lenguaje y las bases de datos. Puesto que normalmente si vas a trabajar con bases de datos necesitarás saber administrar estas herramientas que hoy en día son más que importantes..

advertencia servidor web

 

 

Entonces, ¿qué vamos a hacer?.. Vamos a montar un servidor web completo en tu pc de forma LOCAL para realizar prácticas!. Pero, «primero la teoría» dijo la tía..

 

 

¿Qué es un servidor web?

Creo que a estas alturas es obvio que sabes lo que es un servidor web, digo, casi todo el mundo por más lejos de la informática que se encuentre sabe lo que es un servidor web. Pero, específicamente no me voy a enfocar mucho en definiciones vacías. Sino que me interesa que comprendas cómo funciona y puedas adentrarte en la administración de un servidor web.

Si alguna vez has prestado atención te habrás dado cuenta que los sitios webs tienen un dominio, como este en este caso (pythones.net) donde acudimos utilizando nuestro software de navegación como por ejemplo Chrome para acceder a su contenido.

En ese momento tu navegador envía una solicitud que es respondida por un servidor donde se encuentran alojados los archivos que componen el sitio web. Y de esta forma mediante el protocolo HTTP/S (Hipertext Transfer Protocol) el servidor se encarga de «procesar la petición y servir» al cliente (tu navegador) los archivos dispuestos por el administrador del sitio.

Pero no solo eso, el servidor además se conecta con la base de datos en caso de que el programador o desarrollador web lo haya dispuesto y el gestor de bases de datos (puede ser MySQL) se encarga de devolver la información solicitada por el mismo, para que este pueda entregarla junto a la parte «visual» del sitio web.

 

cliente servidor

 

Aquí es importante profundizar un poco más en este diagrama de la siguiente manera, para que comprendas aún más hondo su funcionamiento, porque tal vez pronto decidas aprender a desarrollar páginas web dinámicas con python y entonces esta información es crucial.

LAMP - WAMP - HTML - PHP - MYSQL

 

¿Cómo funciona un servidor web?

Uno de los aspectos que me interesa que conozcas es que (y aquí es donde si solo aprendes python vas a odiarme) necesitamos al menos de 3 lenguajes para presentar una página web dinámica. Debido a que básicamente el cliente (que sería nuestro navegador) solo interpreta el lenguaje de etiquetado HTML, el cual, por la polémica y los memes sabemos NO ES UN LENGUAJE DE PROGRAMACIÓN. Pero si un lenguaje de etiquetado que debemos aprender para diseñar junto a CSS (Hoja de estilos) la parte «visual» de un sitio web ya que este es «presentado» por el servidor e interpretado por nuestro navegador.

Desarrollo web
Python + HTML 5 + CSS 3 + MySQL

Pero, internamente el servidor «puede» y digo «puede» porque bien podríamos tener en el servidor archivos puramente de HTML. Puede utilizar otro lenguaje internamente como PHP o PYTHON para procesar los datos que el usuario solicitan sean mostrados y finalmente un lenguaje DCL (Lenguaje de Control de Datos) como ya hemos visto que podría ser MySQL o SQL, para consultar a la base de datos.

Así si tu haces clic en un botón de un formulario de una página mediante tu navegador, este enviará una solicitud al servidor el cual internamente la procesa en Python por ejemplo, y este mediante la ejecución de una transacción especificada anteriormente en MySQL solicita datos a la base de datos y finalmente devolverá un documento HTML que será interpretado por tu navegador con los resultados de la consulta.

Un ejemplo claro..
Un ejemplo claro es el formulario de suscripción de este blog. Al solicitar suscribirte el servidor internamente mediante PHP procesa la petición que tu envías y mediante Javascript recolecta y envía los datos con los que rellenas el formulario a un servidor externo el cual ejecuta esta petición y mediante un lenguaje DCL almacena tus datos en un servidor mysql que más tarde será consultado por otro servidor webmail para enviarte correos 🙂

Si alguna vez has leído sobre el modelo «MVC» o Modelo Vista Controlador, pues entenderás que en él podríamos ver a un archivo programado en Python como el controlador que presenta un documento HTML como parte visual y también se encarga de consultar la base de datos usando MySQL (que bien podría ser el modelo).

Y si no lo has visto, mala mía, es mi culpa. Pronto te lo traeré al blog..

MVC

 

Ya que ciertamente hay muchos conceptos e información que es requerida para comprender a fondo el funcionamiento de un servidor web y los modelos de desarrollo. Pero con esto que te he redactado por ahora, nos bastará para trabajar..

-¿Y si no entendí nada?

  • Pues, tranqui que luego conforme avancemos en la práctica todos estos conceptos saldrán a la luz y tu exclamarás «Haaaaa…». Y sino, pues a leer y releer..

Como actualmente nos encontramos en el apartado de «bases de datos» vamos a aprender a montar nuestro servidor, pero por ahora solo vamos a enfocarnos en 3 particularidades ya que solo nos interesa trabajar por ahora con MySQL:

  1. Instalar y configurar nuestro entorno de desarrollo web, bases de datos.
  2. Comprender y asegurar nuestro entorno para evitar problemas de seguridad. (Montar un servidor web de acceso público en tu PC puede atraer atacantes malintencionados. Pero tranquilo que para eso nos vamos a asegurar de sólo permitir acceso local, es decir desde tu propio navegador y únicamente desde tu ordenador)
  3. Comenzar a trabajar con MySQL y algún software que nos permite diseñar fácilmente una base de datos (seguramente en la siguiente entrada..)

Nada de desarrollo web, hasta que termines el apartado de bases de datos.. 😛

Así que sin más vamos a ello!

 

Instalar un servidor web completo en tu ordenador

linux web serverAntes que nada, que me odies y cierres mi blog para nunca volver.. En este artículo explico 2 formas de instalar un servidor web completo.

En la primera veremos como instalar XAMPP (Apache + MariaDB + PHP + Perl) (La forma fácil) que es como «una especie de pack» que integra todas las herramientas necesarias en un solo software. En linux bien puedes amigarte a la consola, o simplemente instalar XAMPP.. Queda a tu decisión, en Linux a mi me gustan las cosas por consola por lo que AL FINAL explico también cómo montar las herramientas de una en una por terminal (la forma DIFÍCIL), porque me gusta sentirme «pesado, oscuro, maligno», pero tú hazlo como gustes!

 

 

 

XAMPP (Windows, Linux, Mac – web server)

Xampp integra las herramientas antes mencionadas y es independiente del sistema operativo, es decir que lo podremos instalar tanto en Linux, Windows como en MAC.

Instalar Xampp en Linux:

Para instalar una aplicación en linux como siempre dependerá de nuestra distribución y normalmente quien utiliza una distro particular está familiarizado con ella. Por lo que como lo harías normalmente puedes realizar la instalación desde consola o bien descargar el paquete «.run» de la página oficial de XAMPP.

Luego bastará con un:

#Darle permisos en linux

chmod 755 archivodexamppdescargado.run

#Ejecutar

sudo ./archivodexamppdescargado.run

Y puedes seguir básicamente el mismo proceso que en windows teniendo especial consideración con cada paso de la configuración, no olvides revisar y anotar las carpetas donde se instala XAMPP. Que normalmente lo hace en «/opt/lamp«.

También en caso de no abrirse el instalador gráfico puedes instalarlo siguiendo las preguntas que te hace en consola. Aquí te dejo un tutorial para instalar XAMPP en Linux, yo en mi caso preferí instalar cada herramienta por separado como muestro al final del post, pero bien puedes instalar XAMPP siguiendo el mismo proceso de configuración que usamos en windows.

 

Instalar Xampp en Windows:

Para instalar en windows simplemente debemos descargar el paquete de instalación de la página oficial de XAMPP, que aunque un poco más pesado a mi gusto funciona mucho mejor y tiene un panel de control excelente y además estoy seguro que han optado por MariaDB por lo que podremos trabajar de igual manera con MySQL en ambos Sistemas operativos..

Debemos ejecutar el instalador como administrador y en lo posible desactivar UAC, aunque sin desactivarlo tampoco he tenido problemas, veamos paso a paso la instalación y configuración de nuestro servidor web 😛

XAMPP servidor web Windows

1 – Aceptamos la siguiente advertencia que nos avisa que sin desactivar el control de acceso de usuario podríamos no poder disfrutar todas las características, pero ni caso..

 

XAMPP servidor web Windows 22 – Una vez iniciado veremos lo siguiente donde podremos seleccionar las características a instalar, en mi caso desactive todo lo innecesario para no llenar el pc con cosas que luego no voy a utilizar.

Así solo dejo activado Apache, Mysql y PhpMyAdmin.

 

 

 

 

 

XAMPP servidor web Windows 33 – Nos pedirá elegir la carpeta de instalación a lo cual recomiendo dejarla como está, normalmente «C:/xampp«. Este será nuestro directorio de trabajo y en él encontraremos la carpeta «htdocs» que será la que aloje los archivos que queramos mostrar de nuestro servidor. En ella meteremos todo lo que será accesible desde el navegador. Esta carpeta deberá tener si o si un «index» que es el primer archivo que lee nuestro navegador al ingresar. Pero más tarde nos encargaremos de ello..

 

 

 

XAMPP servidor web Windows 44 – Seguido nos preguntará si queremos instalar Bitnami el cual es un gestor de instalación de software que nos permitirá más adelante instalar CMS o Gestores de contenido con un solo clic, queda a tu desición instalarlo o no, en mi caso preferí no instalarlo porque en caso de querer utilizar un CMS se instalarlos manualmente.. Pero ve familiarizado con los términos 😉

 

 

 

 

XAMPP servidor web Windows 55 – Finalizada la instalación nos preguntará si deseamos conceder acceso mediante el  firewall de Windows, en mi caso no le he concedido acceso a ninguna red porque solo voy a utilizar el servidor en «LOCAL«, pero en caso de querer acceder desde otra PC en la red LAN puedes activar la primera opción. Yo no recomiendo abrir públicamente nuestro servidor hasta tener conocimientos más avanzados de su gestión por temas de SEGURIDAD. Si abres los puertos y no configuras correctamente convertirás tu PC en un BAÑO PÚBLICO y sabemos, que algunas personas gustan hacer cochinadas allí.. ^^

6 – Nos preguntará al finalizar si deseamos iniciar el panel de control ahora mismo. Damos que «Sí» y veremos algo como esto:

XAMPP servidor web Windows 6

Donde podemos ver si los servicios están activos y mediante los botones «start» y «stop» podemos iniciarlos o detenerlos. También podemos gestionar la configuración de cada servicio mediante una lista desplegable usando el botón «config» de cada servicio. O bien el botón «config» a la derecha para una configuración general de XAMPP. También usando el botón «Explorer» podemos acceder directamente a la carpeta donde instalamos XAMPP. Así también tenemos otros botones que nos permiten «controlar» mejor lo que sucede como «Netstat» y «Services«, el primero nos mostrará los puertos en uso y los GB transferidos entre otras cosas y el segundo nos permitirá configurar los servicios de Windows de Apache y Mysql. Pero por ahora no nos interesan..

XAMPP8-MYSQL7 – Vamos a darle «start» primero a Apache y luego a Mysql y veremos otra advertencia de firewall la cual yo recomiendo denegar porque solo nos interesa trabajar en «LOCAL«.

En caso de alguna advertencia con problemas de puertos, por ejemplo que otro programa use los mismos puertos puedes cambiarlos desde el panel de XAMPP, aquí te dejo un tutorial de otro sitio para no reinventar la rueda:

Cambiar puertos de XAMPP.

 

8 – Iniciado ambos servicios y sobre todo Apache normalmente se nos abrirá una pestaña automáticamente en nuestro navegador con la dirección «127.0.0.1» o «localhost«. Pero si no se abre, abrela tu!!. Y verás algo como lo siguiente si todo está corriendo normalmente:

XAMPP9- Final

 

Y como podrás notar, ya tienes instalado y corriendo Apache (servidor web) + MySQL (Gestor de bases de datos relacionales) y PhpMyAdmin (Software de gestión y administración de BD en PHP). Pero ahora toca el momento de configurar todos estos softwares para obtener una mejor seguridad.

 

Configurar y asegurar XAMPP

Primero quiero darte a modo de resumen la siguiente información importante:

Dirección para acceder a nuestro servidor local como cliente: «127.0.0.1» o «localhost»

Carpeta de instalación de XAMPP por defecto: «C:/xampp»

Directorio Raíz del servidor web: «C:/xampp/htdocs»

Archivo de configuración de Apache: acceder desde el panel o «C:/xampp/php/php.ini»

Archivo de configuración de MySQL: acceder desde el panel o «C:/xampp/mysql/bin/my.ini»

Archivo de configuración de PhpMyAdmin: «C:/xampp/phpmyadmin/config.inc.php«

Cada respectivo archivo de configuración surte efecto tras reiniciar los servicios, por lo que si realizas un cambio deberás reiniciar Apache o Mysql. También recordemos que de estos archivos es siempre mejor crear una «copia o backup» en caso que nos carguemos el servidor!!

XAMPP10-PHPMYADMINAhora si ingresamos a «http://localhost/phpmyadmin» nos encontraremos con PhpMyAdmin y hasta aquí todo bien, el problema es que no tiene contraseña de root, y ello conlleva un gran problema de seguridad que debemos arreglar puesto que desde PhpMyAdmin un atacante bien podrá ejecutar código MySQL. Para esto desde este mismo panel nos vamos a «Gestión de usuarios» y allí podremos colocar contraseña a los usuarios que no la tienen!. Primero damos clic en «Editar privilegios» y luego arriba en «Cambiar contraseña«..

 

XAMPP13 - Seguridad phpmyadmin

Añadimos contraseña a todos los accesos root que no la tienen:

XAMPP14 - Seguridad phpmyadmin2

 

Y ahora es momento de editar el archivo de configuración de PhpMyAdmin que como te dije se encuentra en «C:/xampp/phpmyadmin/config.inc.php» realizando los siguientes cambios con un editor de texto:

XAMPP16 - Seguridad phpmyadmin4

 

XAMPP17 - Seguridad phpmyadmin5Dejando en autentificación «cookie» y AllowNoPassword (entrar sin password) en false. De esta forma al volver a acceder a PhpMyAdmin desde el navegador se nos debería solicitar usuario y contraseña!

 

 

Y por último para mayor seguridad haremos que nuestro servidor MySQL sea accesible solo desde LOCAL:

Para ello buscamos el archivo de configuración que normalmente se encuentra en alguna de las siguientes carpetas y se llama «my.cnf»

Abrelo con tu editor favorito y agrega la siguiente línea debajo de la sección [mysqld] . Si esta sección no está, añadela tal cual «[mysqld]» y debajo lo siguiente:

bind-address = 127.0.0.1
log=/var/log/mysql.log
En caso de algún error con mysql
En caso de error ERROR 2002 (HY000) o similar: Renombramos el archivo de configuración my.cnf y reiniciamos MySql desde el panel de XAMPP.

Y luego podremos configurarlo con el archivo mysql.cnf ingresando las líneas antes mencionadas para solo permitir conexión desde local 127.0.0.1 y guardar los logs en nuestra carpeta favorita!.

Para mí con eso basta, pero si quieres más:  Asegurar mejor un servidor MySQL (Fuente): https://es.linux-console.net/?p=473

 

Esto ha sido todo amigo!

Servidor web LampAhora si ya tienes tu servidor web y de bases de datos funcionando correctamente!!. No olvides comprobar que es inaccesible públicamente colocando tu IP pública en el navegador.. Finalmente seguiremos en la siguiente entrada aprendiendo a utilizar estas herramientas para diseñar nuestra primera base de datos!

 



 

Atención, aquí solo usuarios de linux
A partir de aquí enseño a instalar y configurar cada software por separado para aquellos que tienen malas experiencias con XAMMP o les gusta el lado oscuro. Pero aún así puedes leer si deseas tener una mejor idea de cómo administrar un servidor LAMP ya que.. Normalmente la mayoría de servidores web casi siempre se montan en entornos linux .. (Gracias a dios) 🙂

 

LAMP (Linux web Server) – Alternativa a Xampp para Linuxeros

Vamos a instalar Apache (PHP) + MariaDB (Mysql) + PhpMyAdmin (gestor de bases de datos en php) desde la TERMINAL

Este tutorial es ideal para aquellos que aman usar linux y «trastear las cosas a su modo» o les gustaría aprender más a fondo a administrar las cosas sin tantos paneles y entornos gráficos.

Considero que..
Considero que si utilizas linux estás familiarizado con los comandos de la consola pero sino te dejo una guía corta de los que utilizaremos:

«cd» y «ls» –> Navegar y listar directorios.

«sudo» –> Ejecutar comando c control de usuario.

«su» –> Logearse como root «mv» –> Mover o renombrar directorios, etc.

«sudo apt install» –> Instalar paquetes.

«sudo wget» –> Obtener archivo de una url específica.

Espero sepas a estas alturas instalar y configurar paquetes en linux, y sino pues es necesario que veas videotutoriales o aprendas a gestionar tu sistema operativo!

También si no quieres instalar uno por uno ni estás dispuesto a renegar con la consola puedes instalar XAMPP siguiendo el primer tutorial.. Ya eso queda a tu decisión y preferencia.

 

MariaDB

Primeramente vamos a instalar MariaDB (mysql), recordemos que porque Oracle compró Sun System los voluntarios de Mysql decidieron crear un proyecto derivado de Mysql al que llamaron MariaDB fuera del control de Oracle y es el que utilizaremos en adelante ;). Para instalarlo:

#Instalar MariaDB Cliente y servidor /Debian /Ubuntu y derivados
sudo apt-get install mariadb-client mariadb-server

Mysql MariaDB- Linux Debian 10Como saben en mi caso utilizo Debian 10 como mi Sistema Operativo favorito, pero también intentaré hacer el tutorial para windows aunque creo que hace como 1 año no lo arranco. En fin una vez instalada MariaDB es necesario configurar algunas cosas pero las añadiré al final, primero realizaremos las instalaciones y luego ya nos pondremos a trastear un poco!

 

Apache (PHP)

Llegó el momento de instalar el servidor web APACHE PHP, y tú te preguntarás ¿Pero si este sitio va de Python?. Si, pero se incluye php y de todas formas lo necesitaremos para administrar mejor nuestra base de datos y además poder utilizar PhpMyAdmin que es una herramienta que considero que todo desarrollador debe conocer y saber administrar.. Para ello nos basta como siempre unos simples comandos en la consola:

#Actualizar repositorios y hacer un upgrade:
sudo apt update
sudo apt upgrade
#Hacemos un reboot reinicio (opcional)
sudo reboot
#Agregamos el repositorio Sury
sudo apt -y install lsb-release apt-transport-https ca-certificates 
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list

#Y ahora si nuestro repositorio fue añadido correctamente hacemos otro update
sudo apt update

#Y finalmente instalamos la versión de PHP deseada
sudo apt -y install php7.4

#Instalamos ahora las extensiones más comunes:
sudo apt-get install php7.4-{bcmath,bz2,intl,gd,mbstring,mysql,zip}

#Y esto es todo para PHP

Esta instalación nos crea un archivo de configuración del tipo «php.ini» en la carpeta etc/PHP/tu-versión/apache2/php.ini

El archivo php.ini es normalmente el archivo de configuración de PHP donde podremos realizar cambios en su configuración y habilitar o deshabilitar características de php. Pero ya lo veremos más adelante..

Además en la carpeta  «/var/www/html/» llamada DIRECTORIO RAÍZ se alojarán los archivos que deseamos sean mostrados por el servidor web. Pero en el momento de la configuración revisaremos bien estos puntos!

 

PhpMyAdmin (gestor de bases de datos basado en PHP)

Finalmente procedemos a instalar PhPMyAdmin para administrar nuestras bases de datos.

Phpmyadmin es un software de administración de bases de datos que utiliza php y como tal debemos alojarlo dentro de la carpeta RAÍZ de nuestro servidor web «/var/www/html/» que como dije anteriormente es la que almacenará los archivos que deseamos sean accesibles desde el navegador.

Para ello podemos descargarlo desde la página oficial: https://www.phpmyadmin.net/ en formato zip:

  1. Una vez descargado lo movemos a la carpeta RAÍZ de nuestro servidor web Apache  «/var/www/html/». Recordemos que para ello necesitas permisos de usuario root. Para lo que puedes loguearte y usar el comando mv en linux..
    #Logearse como root
    su
    
    #Navegar hasta la carpeta donde se descargo PhpMyadmin utilizando comandos como
    # cd y ls
    #Y finalmente dependiendo el nombre y versión de tu PhpMyAdmin descargado:
    
    mv "phpMyAdmin-5.0.4-all-languages.zip" /var/www/html
    
    #Y con esto habrá sido movido el archivo zip a nuestro directorio Raíz de Apache
  2. Finalmente lo extraemos y renombramos con el comando:
    #Descomprimir (recordemos debemos tener permisos root)
    unzip phpMyAdmin-5.0.4-all-languages
    #Renombrar (porque el nombre es demasiado largo)
    mv phpMyAdmin-5.0.4-all-languages phpmyadmin
  3. varwww - servidor web apache + phpmyadminFinalmente nuestra carpeta /var/www/html quedará así y solo nos faltaría eliminar el archivo zip con un comando «rm» logeados como root (es importante que lo elimines):
    #Remover archivo zip de phpmyadmin (debes estar logeado como root)
    rm phpMyAdmin-5.0.4-all-languages.zip

     

Y esto es todo para Debian/Ubuntu. Si tienes otra distribución te aconsejo busques por ti mismo cómo instalar estas herramientas en google.. Cada uno conoce su sistema y las formas de tratarle 😛

Ahora me voy a centrar en la instalación en Windows y luego procederemos a configurar ambas instalaciones en un solo apartado!

Testeando el servidor web en local

Es momento de comprobar que todo funciona correctamente. Para ello bastará con ingresar 127.0.0.1 en nuestro navegador. Esta dirección IP es la misma para todos los ordenadores y hace referencia a «si mismo». La ip 127.0.0.1 es conocida como el lugar LOCAL y su contenido es únicamente accesible desde tu propio ordenador.

Tranquilo..
Antes te di una advertencia de seguridad, pero permanece tranquilo que por ahora tu servidor web sólo es accesible desde tu ordenador. Para comprobarlo bastaría con ingresar la dirección «127.0.0.1» en tu navegador favorito y deberías ver algo como esto:

servidor web local

 

También si deseas probar si es accesible desde la LAN o Públicamente bastaría con ingresar tu IP pública en el navegador, y si no se muestra nada o es inaccesible puedes estár seguro que nada malo va a sucederte. En caso contrario ponte a pelo con la configuración más abajo!

 

Configurar nuestro servidor web LAMP

Ahora vamos a proceder a configurar nuestro servidor web y realizar algunas pruebas. Para ello te dejaré aquí al principio los archivos más importantes para la configuración de Apache, Mysql y PhpMyAdmin.

Apache (servidor web)

En el caso de apache no es necesaria ninguna configuración inicial, pero puede que más adelante debas realizar algunos cambios por lo que es necesario te familiarices con el archivo «php.ini» y la carpeta o directorio raíz.

Carpeta o directorio Raíz (donde cargar archivos del sitio web):

/var/www/html/

Archivo de configuración de php (php.ini):

Cuando queramos realizar alguna configuración de nuestro servidor web bastará con dirigirnos a la carpeta donde se encuentra nuestro archivo «php.ini» y allí podremos realizar cambios, finalmente solo deberemos reiniciar apache.

/etc/php/7.4/apache2/php.ini

Para reiniciar apache lo hacemos con el siguiente comando:

systemctl restart apache2

 

MariaDB (MySQL)

Ahora vamos a realizar la configuración de nuestro servidor de MySql, para ello:

Lo primero es corroborar que nos podemos conectar localmente a nuestro servicio de MySql:

En Linux (terminal):

#1- Iniciar instalación segura:
sudo mysql_secure_installation
#Aquí nos pedirá establecer un password para Root y nos hará algunas preguntas de las cuales debes prestar atención #por SEGURIDAD!
    #Primero pedirá un password para ROOT, coloca el que quieras y RECUERDES.
    #Segundo preguntará si quieres eliminar el usuario ANÓNIMO, contesta "Y" (Yes, si)
    #Tercero preguntará si quieres desactivar el login remoto del usuario Root, contesta "Y" (Yes, que sí cabrón!)
    #Cuarto, preguntará si quieres remover la database "test" contesta YES! (Y)
    #Quinto, preguntará si quieres reiniciar los privilegios, contesta Y (Yes, madafaka!)

#Y luego nos logueamos:
sudo mysql -u root

#2- Crear una nueva base de datos llamada "python" o el nombre que quieras, como ejemplo, para que aprendas:
CREATE DATABASE python;

#3- Crear un Usuario ADMINISTRADOR (no root):
CREATE USER 'nombre_usuario'@'localhost' IDENTIFIED BY 'contraseña';

#En nombre_usuario coloca tu nombre de usuario, pero "@localhost" dejalo tal cual.
#Coloca una contraseña segura y que sea fácil de recordar para tí

#4- Finalmente hay que darle privilegios a nuestro usuario:
GRANT ALL PRIVILEGES ON test.* to 'nombre_usuario'@'localhost';

#5- Corremos los privilegios
FLUSH PRIVILEGES;

#Salimos
quit

Y de esta forma hemos creado la Base de datos «python» y nuestro usuario no root con su respectiva contraseña y permisos de acceso y modificación con el que más tarde podremos loguearnos en PhpMyAdmin.

Y por último para mayor seguridad haremos que nuestro servidor MySQL sea accesible solo desde LOCAL:

Para ello buscamos el archivo de configuración que normalmente se encuentra en alguna de las siguientes carpetas y se llama «my.cnf»

# vi /etc/my.cnf	                   [RHEL/CentOS]	
# vi /etc/mysql/my.conf                    [Debian/Ubuntu] 
OR
# vi /etc/mysql/mysql.conf.d/mysqld.cnf    [Debian/Ubuntu] 

Abrelo con tu editor favorito con privilegios root (su nano «dirección del archivo») y agrega la siguiente línea debajo de la sección [mysqld] . Si esta sección no está, añadela tal cual «[mysqld]» y debajo lo siguiente:

bind-address = 127.0.0.1
log=/var/log/mysql.log
En caso de algún error con mysql
En caso de error ERROR 2002 (HY000) o similar: Desde la Terminal como root renombramos el archivo de configuración en /etc/mysql/my.cnf y reiniciamos MySql: sudo /etc/init.d/mysql restart

y luego podremos configurarlo con el archivo /etc/mysql/conf.d/mysql.cnf ingresando las líneas antes mencionadas para solo permitir conexión desde local 127.0.0.1 y guardar los logs en nuestra carpeta favorita!.

Para mí con eso basta, pero si quieres más:  Asegurar mejor un servidor MySQL (Fuente): https://es.linux-console.net/?p=473

mysql secure- servidor web

 

 

PhpMyAdmin

Para comenzar a utilizar PhpMyAdmin basta con ir a la dirección donde lo hemos instalado en nuestro navegador. En este caso si seguiste el tutorial al pie de la letra sería http://127.0.0.1/phpmyadmin (porque recordemos que lo descomprimimos en /var/www/html/phpmyadmin) y podrás ver algo como lo siguiente:

phpmyadmin

Donde podrás iniciar sesión con el usuario y contraseña que creamos anteriormente en el intérprete de MariaDB

Y allí visualizamos la base de datos llamada «python» que creamos anteriormente también en el intérprete de MariaDB.

 

Cómo dije anteriormente:

phpMyAdmin es una herramienta escrita en PHP con la intención de manejar la administración de MySQL a través de una página web, utilizando nuestro navegador. Actualmente puede crear y eliminar Bases de Datos, crear, eliminar y alterar tablas, borrar, editar y añadir campos, ejecutar cualquier sentencia SQL, administrar claves en campos, administrar privilegios, exportar datos en varios formatos y está disponible en 72 idiomas.

Y debería verse algo así, (aquí aparece la base de datos «test» porque olvide eliminarla):

phpmyadmin2

 

Pero bien, esto es todo por ahora, tienes tu servidor web funcionando en modo local, has aprendido a crear una base de datos («vacía») y a acceder a PhpMyAdmin. En la siguiente entrada vamos a comenzar a trabajar con estas herramientas!. Aprenderemos a diseñar una base de datos relacional y veremos una introducción a MySQL, lenguaje de control de datos que deberás aprender a utilizar 😛

 


hahaahaquecabron

 

Recordemos que aquí hay dos tutoriales; uno para instalar el conjunto de herramientas XAMPP y otro para montar un servidor LAMP en Linux instalando y configurando las herramientas una por una. Espero hayas podido instalar tu servidor web sin problemas, pero si los tienes no dudes en dejar un comentario o enviarme un mail desde la sección de contacto.

Pero tu sigue fiel a pythones, que aquí te voy a sacar bueno o morire en el intento de un brutal dolor de cabeza!

Hasta lueguito y no olvides suscribirte!

 

Compartir es agradecer! :)