Instalar en pc ApacheMySQL, PHP (pila LAMP) en Ubuntu 20.04 LTS

LAMP stack es una popular plataforma de desarrollo web de código abierto que se puede utilizar para ejecutar e implementar sitios web dinámicos y aplicaciones basadas en la web. Por lo general, una pila LAMP consta de Apache servidor web, bases de datos MariaDB/MySQL, lenguajes de programación PHP/Python/Perl. LAMP es el acrónimo de Linux, Apache, MariaDB/MYSQL, PHP/Python/Perl. Este tutorial paso a paso describe cómo instalar ApacheMySQL, PHP (pila LAMP) en la edición del servidor Ubuntu 20.04 LTS.

Instalar en pc ApacheMySQL, PHP (pila LAMP) en Ubuntu 20.04 LTS

Para el propósito de este tutorial, usaremos el siguiente sistema Ubuntu.

  • Sistema operativo: Edición de servidor Ubuntu 20.04 LTS
  • dirección IP: 192.168.225.52/24

Primero, instalemos Apache servidor.

1. Instalar Apache servidor web en Ubuntu

En primer lugar, actualice el servidor Ubuntu usando los comandos:

$ sudo apt update
$ sudo apt upgrade

A continuación, instale Apache Servidor web:

$ sudo apt install apache2

Comprobar si Apache el servidor web se está ejecutando o no con el comando:

$ sudo systemctl status apache2

La salida de muestra sería:

● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabl>
     Active: active (running) since Fri 2020-05-29 07:02:26 UTC; 25s ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 23996 (apache2)
      Tasks: 55 (limit: 2283)
     Memory: 5.1M
     CGroup: /system.slice/apache2.service
             ├─23996 /usr/sbin/apache2 -k start
             ├─23998 /usr/sbin/apache2 -k start
             └─23999 /usr/sbin/apache2 -k start

May 29 07:02:26 ubuntuserver systemd[1]: Starting The Apache HTTP Server...
May 29 07:02:26 ubuntuserver apachectl[23981]: AH00558: apache2: Could not reliably det>
May 29 07:02:26 ubuntuserver systemd[1]: Started The Apache HTTP Server.

¡Felicidades! Apache el servicio está funcionando!!

1.1. Permitir Apache servidor web a través del cortafuegos UFW

UFWrepresentarcomplicadoFirawall, es un programa para administrar un firewall netfilter diseñado para ser fácil de usar. UFW está disponible por defecto en todas las versiones de Ubuntu.

Por defecto, el Apache No se puede acceder al navegador web desde sistemas remotos si ha habilitado el firewall UFW en Ubuntu 20.04 LTS. Debes permitir lahttpyhttpspuertos siguiendo los pasos que se indican a continuación.

Primero, enumere los perfiles de aplicación disponibles en su sistema Ubuntu usando el comando:

$ sudo ufw app list

Salida de muestra:

Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

Como puedes ver, Apache y las aplicaciones OpenSSH tienen perfiles UFW instalados. Puede enumerar información sobre cada perfil y sus reglas incluidas usandoufw app info "Profile Name"mando.

Miremos en el“Apache Full”perfil usando el comando:

$ sudo ufw app info "Apache Full"

Salida de muestra:

Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.

Ports:
80,443/tcp

Como ves,"Apache Full"el perfil ha incluido las reglas para habilitar el tráfico a los puertos80y443.

Ahora, ejecute el siguiente comando para permitir la entradaHTTPyHTTPStráfico para este perfil:

$ sudo ufw allow in "Apache Full"

Verá una salida como la siguiente:

Rules updated
Rules updated (v6)

Si no quieres permitirhttpstráfico, pero sólohttp(80) tráfico, ejecutar:

$ sudo ufw app info "Apache"

1.2. Prueba Apache Servidor web

Ahora, abra su navegador web y acceda Apache página de prueba navegando ahttps://localhost/ohhttps://IP-Address/.

Si ves el “Apache 2 página predeterminada de Ubuntu” como se muestra a continuación, está listo para comenzar. Apache ¡el servidor está funcionando!

Prueba Apache Servidor web

2. Instale MySQL en Ubuntu

Para instalar MySQL en Ubuntu, ejecute:

$ sudo apt install mysql-server

Verifique si el servicio MySQL se está ejecutando o no usando el comando:

$ sudo systemctl status mysql

Salida de muestra:

● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-05-29 07:15:22 UTC; 2min 8s ago
   Main PID: 25242 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 2283)
     Memory: 323.7M
     CGroup: /system.slice/mysql.service
             └─25242 /usr/sbin/mysqld

May 29 07:15:16 ubuntuserver systemd[1]: Starting MySQL Community Server...
May 29 07:15:22 ubuntuserver systemd[1]: Started MySQL Community Server.

Como puede ver en el resultado anterior, ¡MySQL se está ejecutando!

2.1. Configurar la contraseña del usuario administrativo (raíz) de la base de datos para Mysql

Por defecto, MySQLrootla contraseña de usuario está en blanco. No se recomienda utilizar una contraseña vacía para la cuenta administrativa de la base de datos. Debe proteger su servidor MySQL ejecutando el siguiente script:

$ sudo mysql_secure_installation

Se le preguntará si desea configurar"VALIDATE PASSWORD" componente o no. Este componente permite a los usuarios configurar contraseñas seguras para las credenciales de la base de datos. Si está habilitado, verificará automáticamente la seguridad de la contraseña y obligará a los usuarios a establecer solo aquellas contraseñas que sean lo suficientemente seguras.Es seguro dejarlo deshabilitado. Sin embargo, debe usar una contraseña fuerte y única para las credenciales de la base de datos. Si no desea habilitar este componente, simplemente presione cualquier tecla para omitir la parte de validación de contraseña y continuar con el resto de los pasos.

Ingresarysi quieres configurarVALIDATE PASSWORDcomponente:

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: y

si tu respuesta es, se le pedirá que elija el nivel de validación de la contraseña. Las validaciones de contraseña disponibles sonbajo,medioyfuerte. Simplemente ingrese el número apropiado (0 para contraseña baja, 1 para contraseña media y 2 para contraseña segura) y presione la tecla ENTER.

There are three levels of password validation policy:

LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0

Ahora, ingrese la contraseña para MySQLrootusuario. Tenga en cuenta que debe usar una contraseña para MySQLrootusuario dependiendo de la política de contraseñas que elija en el paso anterior. Si no habilitó el complemento, simplemente use cualquier contraseña fuerte y única de su elección.

Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 100 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

Una vez que ingresó la contraseña dos veces, verá la seguridad de la contraseña (en nuestro caso es100). Si está bien para usted, presione Y para continuar con la contraseña proporcionada. Si no está satisfecho con la longitud de la contraseña, presione cualquier otra tecla y establezca una contraseña segura. Estoy bien con mi contraseña actual, así que elegíy.

Para el resto de preguntas, simplemente escribayy golpearENTER. Esto eliminará al usuario anónimo, no permitirá el inicio de sesión del usuario raíz de forma remota y eliminará la base de datos de prueba.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.

- Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

¡Hecho! Hemos configurado MySQLrootcontraseña del usuario.

2.2. Cambiar el método de autenticación para el usuario root de MySQL

De forma predeterminada, el usuario root de MySQL está configurado para autenticarse mediante elauth_socketcomplemento a partir de MySQL 5.7 y versiones más recientes en Ubuntu. Aunque mejora la seguridad, también complicará las cosas cuando acceda a su servidor de base de datos utilizando programas externos, por ejemplo. example phpMyAdmin. Para solucionar este problema, debe cambiar el método de autenticación de auth_socket acaching_sha2_passwordohmysql_native_password.

A partir de la versión MySQL 8.0, el complemento de autenticación preferido y predeterminado escaching_sha2_password. loscaching_sha2_passwordEl complemento de autenticación proporciona un cifrado de contraseña más seguro que elmysql_native_passwordenchufar.

Para cambiar el complemento de autenticación, inicie sesión en su indicador de MySQL usando el comando:

$ sudo mysql

Oh,

$ mysql -u root -p

Ingrese el mysqlrootcontraseña que configuramos en el paso anterior.

Ejecute el siguiente comando en el indicador de mysql para encontrar el método de autenticación actual para todas las cuentas de usuario de MySQL:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Salida de muestra:

+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user             | authentication_string                                                  | plugin                | host      |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$=s%UO"�[email protected]>[email protected] | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root             |                                                                        | auth_socket           | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)
Encuentre el método de autenticación actual para todas las cuentas de usuario de mysql en Ubuntu

Como puede ver, el usuario root de mysql usaauth_socketComplemento para la autenticación.

Cambiarauth_socketconectar acaching_sha2_password, ejecute el siguiente comando en el indicador de MySQL. Si ha habilitadoVALIDATE PASSWORDcomplemento, asegúrese de haber utilizado una contraseña segura según los requisitos de la política actual. Un fuerte debería consta de al menos 8 caracteres, incluida una letra mayúscula, una letra minúscula, un número y un carácter especial.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Password123#@!';

ReemplazarPassword123#@!con una contraseña segura y única de su elección en el comando anterior.

Actualice los cambios usando el comando:

mysql> FLUSH PRIVILEGES;

Ahora verifique si el complemento de autenticación actual se cambia o no usa el comando:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Salida de muestra:

verifique el complemento de autenticación actual en mysqlCompruebe el complemento de autenticación actual en mysql

¡Bien! Ahora el mysqlrootel usuario puede autenticarse usando una contraseña para acceder al shell de MySQL.

Exit desde el indicador de MySQL:

mysql> exit

Usar:

Aunquecaching_sha2_passwordEl complemento proporciona un cifrado seguro mejorado, tiene algunos problemas de compatibilidad con las instalaciones existentes de MySQL. Para más detalles, consulteeste enlace. Si se encontró con algún problema de compatibilidad, debe configurarmysql_native_passwordcomplemento como complemento de autenticación predeterminado.

cambiar amysql_native_passwordcomplemento, ejecute el siguiente comando en el indicador de MySQL.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Actualice los cambios usando el comando:

mysql> FLUSH PRIVILEGES;

Ahora verifique nuevamente si el método de autenticación se cambia o no usa el comando:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Salida de muestra:

encuentre el método de autenticación actual para todas las cuentas de usuario de mysqlEncuentre el método de autenticación actual para todas las cuentas de usuario de MySQL

Exit desde el indicador de mysql:

mysql> exit

3. Instalar PHP en Ubuntu

Para instalar PHP, ejecute:

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

Después de instalar PHP, creeinfo.phparchivo en el Apache carpeta de documentos raíz. Por lo general, el Apache la carpeta del documento raíz será/var/www/html/oh/var/www/en la mayoría de las distribuciones de Linux basadas en Debian. En Ubuntu 20.04 LTS, es/var/www/html/.

Vamos a crearinfo.phparchivo en la carpeta raíz de apache:

$ sudo vi /var/www/html/info.php

Agregue las siguientes líneas:

<?php
phpinfo();
?>

prensaESCclave y tipo:wqpara guardar y salir del archivo. Reinicie el servicio de apache para que se apliquen los cambios.

$ sudo systemctl restart apache2

3.1. Prueba PHP

Abra su navegador web y vaya ahttps://IP-address/info.phpURL

Verá la información de php, como la versión, la API del servidor y los detalles de todos los complementos de php habilitados.

página de información de php en Ubuntu 20.04página de prueba de PHP

Por lo general, cuando un usuario solicita un directorio del servidor web, Apache primero buscará un archivo llamadoindex.html. si quieres cambiar Apache para servir archivos php en lugar de otros, muevaindex.phpa la primera posición en eldir.confarchivo como se muestra a continuación

$ sudo vi /etc/apache2/mods-enabled/dir.conf

Aquí está el contenido del archivo anterior.

<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Mueve elindex.phparchivo aprimero. Una vez que haya realizado los cambios, sudir.confarchivo se verá como a continuación.

<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

prensaESCclave y tipo:wqpara ahorrar y close el archivo. Reiniciar Apache servicio para hacer efectivos los cambios.

$ sudo systemctl restart apache2

3.2. Instalar módulos PHP

Para mejorar la funcionalidad de PHP, puede instalar algunos módulos PHP adicionales.

Para enumerar los módulos PHP disponibles, ejecute:

$ sudo apt-cache search php- | less

Salida de muestra:

lista de módulos PHP disponibles en UbuntuLista de módulos PHP disponibles en Ubuntu

Utilice las teclas de flecha para recorrer el resultado. Para salir, escribaq.

Para encontrar los detalles de cualquier módulo php en particular, por examplephp-gdcorrer:

$ sudo apt-cache show php-gd

Para instalar un módulo php ejecute:

$ sudo apt install php-gd

No olvides reiniciar Apache servicio después de instalar un módulo php. Para verificar si el módulo está cargado o no, abra el archivo info.php en su navegador y verifique si está presente.

¡Felicidades! Como puede ver, es muy fácil instalar apache, mysql, php (LAMP stack) en Ubuntu 20.04 LTS. Ahora puede comenzar a alojar sus sitios web utilizando la pila LAMP.

Leer siguiente:

  • Instale phpMyAdmin con LAMP Stack en Ubuntu 20.04 LTS

Lectura relacionada:

  • Instale Nginx, MySQL, PHP (LEMP Stack) en Ubuntu 20.04 LTS
  • Instalar en pc ApacheMariaDB, PHP (pila LAMP) en CentOS 8

Actualizaciones del boletín

Ingrese su dirección de correo electrónico a continuación para suscribirse a nuestro boletín