instalar un servidor LAMP en Debian 10 - Guía completa

Un servidor LAMP (acrónimo de Linux, Apache, MySQL, PHP/Perl/Python) es un servidor de código abierto que se utiliza para desarrollar aplicaciones web o alojar sitios web con una configuración específica. Para que una aplicación web funcione, debe incluir varios elementos: un sistema operativo, un servidor web, una base de datos y un lenguaje de programación. Estas características son esenciales para crear un sitio web dinámico. LAMP es un acrónimo de los siguientes programas: L: sistema operativo Linux. A: servidor HTTP Apache . M: sistema de gestión de bases de datos MySQL . P: lenguaje de programación PHP. Installing a LAMP server Cada componente debe instalarse por separado y en un orden específico. En esta guía, repasaremos todos los pasos para instalar LAMP Stack en Debian 10. A los efectos de esta guía, suponemos que tiene un servidor instalado y configurado con:
  • Acceso SSH como root
  • Debian 10 u 11
  • Acceso a la terminal/línea de comandos

Instalación del servidor Apache

Apache es un popular servidor web de código abierto que se puede utilizar junto con PHP. Apache cuenta con una excelente documentación en Internet y ha sido uno de los líderes durante la mayor parte de la historia de Internet. Los servidores Apache se utilizan ampliamente en todo tipo de alojamientos. Para empezar, asegúrese de que su caché apt está actualizada con:

sudo apt update

 Si es la primera vez que utiliza sudo en esta sesión, deberá proporcionar su contraseña de usuario habitual para verificar sus permisos. Después de actualizar la caché, puede instalar Apache con:

sudo apt install apache2

  Después de este comando, apt le indicará qué paquetes tiene previsto instalar y cuánto espacio adicional en disco ocuparán. Escriba Y y, a continuación, pulse INTRO para confirmar y continuar. Puede realizar inmediatamente una comprobación puntual para asegurarse de que todo ha salido según lo previsto visitando la dirección IP pública de su servidor en su navegador web (consulte la nota que aparece debajo del siguiente encabezado para averiguar cuál es su dirección IP pública):

http://<tu_ip_del_servidor>

Cómo encontrar la dirección IP pública de su servidor:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Introduzca la dirección en su navegador y verá la página web predeterminada de Apache, que está ahí con fines informativos y de prueba. Debería tener un aspecto similar a este: Installing an Apache server Si aparece esta página, su servidor web está correctamente instalado y es accesible en Internet.

Instalación de MySQL MariaDB

  Una vez que haya iniciado el servidor web, es el momento de instalar MariaDB, un servidor de bases de datos. Este servidor organizará y proporcionará acceso a las bases de datos donde su sitio web puede almacenar información. Para instalar MariaDB, volveremos a utilizar apt para instalar el servidor:

sudo apt install mariadb-server

Este comando también mostrará una lista de los paquetes que se instalarán, junto con la cantidad de espacio en disco que ocuparán. Escriba Y y luego ENTER para confirmar y continuar. Una vez completada la instalación, ejecute el script de seguridad que viene con MySQL, que eliminará algunos valores predeterminados peligrosos y bloqueará el acceso al sistema de bases de datos. Ejecute el script a través de la consola y siga las instrucciones que aparecen en pantalla: 

sudo mysql_secure_installation

Este script le guiará a través de la configuración de seguridad y le indicará cómo realizar algunos cambios en los ajustes de MariaDB. En primer lugar, se le pedirá que introduzca la contraseña root actual de la base de datos (tenga en cuenta que no se trata de la contraseña root del sistema). El usuario root de la base de datos es un usuario con privilegios administrativos completos en el servidor de la base de datos. Dado que acaba de instalar MariaDB y aún no ha realizado ningún cambio en la configuración, esta contraseña estará en blanco, por lo que solo tendrá que pulsar ENTER cuando se le solicite. La siguiente pregunta le preguntará si desea establecer una contraseña root para la base de datos. Dado que MariaDB utiliza un método de autenticación especial para el usuario root, que generalmente es más seguro que el uso de una contraseña, no es necesario establecer una en este momento. Escriba N y luego ENTER. A partir de ahí, simplemente escriba Y y luego ENTER para seleccionar los valores predeterminados para todas las preguntas posteriores. Esto eliminará los usuarios anónimos y la base de datos de prueba, desactivará el inicio de sesión remoto como root y cargará estas nuevas reglas para que MariaDB aplique inmediatamente los cambios que ha realizado. Cuando haya terminado, entre en la consola de MariaDB escribiendo:

sudo mariadb

Este comando nos conectará al servidor MariaDB como administrador root de la base de datos, utilizando sudo. El resultado debería ser similar a este:

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 74

Server version: 10.3.15-MariaDB-1 Debian 10

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

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

 
Tenga en cuenta que no ha sido necesario proporcionar una contraseña para iniciar sesión como root. Esto funciona porque el método de autenticación predeterminado para el usuario root de MariaDB es a través de unix_socket en lugar de una contraseña. Aunque a primera vista esto pueda parecer un problema de seguridad, en realidad hace que el servidor de la base de datos sea más seguro, ya que los únicos usuarios que pueden iniciar sesión como usuario root de MariaDB son los usuarios del sistema con privilegios sudo, que inician sesión desde el terminal o a través de una aplicación que se ejecuta con esos privilegios. La función del usuario root es solo administrativa, por lo que no puede conectar su aplicación PHP. Para aumentar la seguridad, configuraremos cuentas de usuario dedicadas con los privilegios adecuados para cada base de datos. Para demostrar esta configuración, crearemos una base de datos llamada example_database y un usuario llamado example_user. Puede sustituir estos nombres por los que desee. Para crear una nueva base de datos, ejecute el siguiente comando desde la consola de MariaDB:

CREATE DATABASE example_database;

Ahora crearemos un nuevo usuario y le concederemos todos los privilegios sobre la base de datos que hemos creado. El siguiente comando establece la contraseña de este usuario como PASSWORD, pero debe sustituir este valor por una contraseña segura y fuerte:

GRANT ALL ON example_database.* TO 'example_user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

El comando otorgará al usuario example_user privilegios completos sobre la base de datos example_database, al tiempo que impedirá que este usuario cree o modifique otras bases de datos en el servidor. Puede comprobar los privilegios para asegurarse de que se han guardado y están disponibles sin tener que reiniciar:

FLUSH PRIVILEGES;

A continuación, puede salir de MariaDB:

exit

Puede comprobar si el nuevo usuario tiene los permisos adecuados volviendo a iniciar sesión en la consola de MariaDB con el nombre de usuario y la contraseña que introdujo anteriormente:

mariadb -u example_user -p

Nota: Al utilizar -p en este comando, se le pedirá la contraseña que eligió al crear el usuario example_user. Después de iniciar sesión en la consola de MariaDB, confirme que tiene acceso a la base de datos example_database:

SHOW DATABASES;

Recibirá el siguiente resultado:

+--------------------+

| Database           |

+--------------------+

| example_database   |

| information_schema |

+--------------------+

2 rows in set (0.000 sec)

Para salir de MariaDB, escriba:

exit

En este punto, el sistema de base de datos está configurado y puede pasar a instalar PHP, el componente final del servidor LAMP.

Instalación de PHP en LAMP

PHP es un lenguaje de programación para mostrar sitios web dinámicos. Puede ejecutar scripts, conectarse a bases de datos MariaDB para recibir y enviar información desde el servidor web y mostrarla al usuario. Volveremos a utilizar apt para instalar PHP, junto con algunos otros paquetes que garantizarán que el código PHP pueda ejecutarse en el servidor Apache y comunicarse con la base de datos MariaDB:

sudo apt install php libapache2-mod-php php-mysql

Esto debería instalar PHP sin ningún problema, pero comprobaremos que todo funciona correctamente. En la mayoría de los casos, es una buena idea cambiar la configuración de Apache para que el archivo index.php sea accesible en primer lugar, en lugar de index.html. Actualmente, si un usuario solicita un directorio al servidor, Apache buscará primero un archivo llamado index.html. Queremos indicarle al servidor web que dé preferencia a los archivos PHP sobre los demás, por lo que debemos configurar Apache para que busque el archivo index.php. Para ello, escriba el siguiente comando para abrir el archivo dir.conf en un editor de texto con privilegios de root:

sudo nano /etc/apache2/mods-enabled/dir.conf

El archivo tendrá este aspecto:

<IfModule mod_dir.c>

    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

</IfModule>

Mueva el archivo index.php (resaltado arriba) a la primera posición después de DirectoryIndex, de esta manera:

<IfModule mod_dir.c>

    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

</IfModule>

Por último, guarde el archivo. Si utiliza nano, puede hacerlo pulsando CTRL + X y, a continuación, Y y ENTER para confirmar. Ahora recargue Apache con:

sudo systemctl reload apache2

Puede comprobar el estado de apache2:

sudo systemctl status apache2

 

apache2.service - The Apache HTTP Server

   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)

   Active: active (running) since Mon 2019-07-08 12:58:31 UTC; 8s ago

     Docs: https://httpd.apache.org/docs/2.4/

  Process: 11948 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)

 Main PID: 11954 (apache2)

    Tasks: 6 (limit: 4719)

   Memory: 11.5M

   CGroup: /system.slice/apache2.service

           ├─11954 /usr/sbin/apache2 -k start

           ├─11955 /usr/sbin/apache2 -k start

           ├─11956 /usr/sbin/apache2 -k start

           ├─11957 /usr/sbin/apache2 -k start

           ├─11958 /usr/sbin/apache2 -k start

           └─11959 /usr/sbin/apache2 -k start

En este punto, su servidor LAMP está configurado. Ahora puede ocuparse del resto de ajustes, como los vhosts.

2026 © Linux Hosting - Hosting web desde 2011