En este artículo te explicamos cómo instalar un stack de LAMP en un Servidor Cloud, VPS o Servidor Dedicado con Ubuntu 18.04, 20.04 o 22.04.

Un stack de LAMP está formado por el sistema operativo Linux y las aplicaciones de software Apache, MySQL/MariaDB y PHP. Estos se instalan juntos para alojar sitios web dinámicos y aplicaciones web en un servidor.

Requisitos
  • Antes de instalar el stack de LAMP debes asegurarte de que tu servidor tiene suficiente capacidad de hardware.

  • Haber instalado Ubuntu 18.04, 20.04 o 22.04 en tu servidor.

Instalar Apache

Procede de la siguiente manera para instalar Apache:

  • Para comprobar si hay una actualización disponible, escribe el siguiente comando:

    root@localhost:~# apt update
    root@localhost:~# apt upgrade

  • Para instalar Apache, escribe el siguiente comando:

    root@localhost:~# apt install apache2

    Se iniciará la instalación. Aparecerá el siguiente mensaje:

    The following NEW packages will be installed:
      apache2 apache2-bin apache2-data apache2-utils bzip2 libapr1 libaprutil1
      libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.3-0 mailcap mime-support
      ssl-cert
    0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
    Need to get 2,135 kB of archives.
    After this operation, 8,486 kB of additional disk space will be used.
    Do you want to continue? [Y/n]

  • Introduce [y] y pulsa Enter.

    Apache se instalará.

  • Para comprobar que Apache se instaló e inició correctamente, introduce la dirección IP pública de tu servidor en el siguiente formato en el navegador web:

    http://LA-DIRECCION-IP-DE-TU-SERVIDOR

    Si puede acceder a la IP (verás tu página de prueba), Apache se instaló correctamente.

Instalar MySQL

Procede de la siguiente manera para instalar MySQL:

  • Para instalar MySQL, escribe el siguiente comando:

    apt install mysql-server

    Aparecerá el siguiente mensaje:

    Need to get 28.6 MB of archives.
    After this operation, 240 MB of additional disk space will be used.
    Do you want to continue? [Y/n]

  • Introduce [y] y pulsa Enter.

    MySQL se instalará.

  • Inicia sesión en MySQL. Para ello, escribe el siguiente comando:

    sudo mysql

  • Escribe el siguiente comando y cambia el texto MI_CONTRASEÑA por la nueva contraseña deseada:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'MI_CONTRASEÑA';

  • Para cerrar MySQL, escribe el siguiente comando:

    mysql>exit

  • Para ejecutar un script de seguridad que elimine algunas configuraciones predeterminadas peligrosas y restrinja el acceso al sistema de base de datos, escribe el siguiente comando:

    mysql_secure_installation

    Aparecerá el siguiente mensaje:

    Securing the MySQL server deployment.

    Enter passwort for user root:

  • Escribe la contraseña root que estableciste para la base de datos MySQL.

    A continuación se mostrará el siguiente mensaje:

    VALIDATE PASSWORD PLUGIN 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 plugin?
    Press y|Y for Yes, any other key for No:

    Si activas el VALIDATE PASSWORD PLUGIN, todas las contraseñas que no cumplen con los criterios definidos para las contraseñas de MySQL se rechazarán con un error. Esto puede generar problemas si usas una contraseña débil en combinación con un software que configura datos de usuario MySQL automáticamente. Por eso, te recomendamos que no actives esta opción, pero que utilices siempre una contraseña fuerte y segura.

  • Para omitir la configuración de dicho plugin, pulsa Enter.

    Aparecerá el siguiente mensaje:

    Change the password for root ? ((Press y|Y für Yes, any other key for No) :

  • Para no cambiar la contraseña, pulsa Enter.

    Aparecerá el siguiente mensaje:

    By default, a MySQL installation has an anonymous user,
    allowing anyone to log into MySQL without having to have
    a user account created for them. This is intended only for
    testing, and to make the installation go a bit smoother.
    You should remove them before moving into a production
    environment.

    Remove anonymous users? [Y/n]

  • Para eliminar usuarios anónimos, escribe [y] y pulsa Enter.

    Aparecerá el siguiente mensaje:

    Disallow root login remotely? [Y/n]

  • Escribe [y] y pulsa Enter.

    Aparecerá el siguiente mensaje:

    Remove test database and access to it?

  • Escribe [y] y pulsa Enter. Aparecerá el siguiente mensaje:

    Reload privilege tables now?

  • Para volver a cargar las tablas de derechos de MySQL, escribe [y]. Para confirmar la entrada, pulsa Enter.

Instalar PHP

Para instalar el lenguaje de programación PHP, sigue los siguientes pasos:

  • Para instalar el paquete de PHP y MySQL, escribe el siguiente comando:

    apt install php libapache2-mod-php php-mysql

    Aparacerá el siguiente mensaje:

    After this operation, 21.8 MB of additional disk space will be used.
    Do you want to continue? [Y/n]

  • Para continuar con la instalación, introduce [y]. A continuación, pulsa Enter.

Realizar ajustes en el archivo dir.conf

Si un usuario no especifica una página específica en la URL, Apache primero busca la página de inicio llamada index.html por defecto. Para configurar Apache para que dé preferencia al archivo index.php en esta búsqueda, procede de la siguiente manera:

  • Para abrir el archivo dir.conf con el editor vi, escribe el siguiente comando:

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

Notas

  • El editor vi dispone de un modo de inserción y un modo de comandos. Puedes abrir el modo de inserción pulsando la tecla [i]. En este modo, los caracteres introducidos se insertarán inmediatamente en el texto. Para abrir el modo de comandos, pulsa la tecla [Esc]. Cuando utilizas el modo de comandos, las entradas del teclado se interpretan como comandos.
  • vi no puede cerrar el modo de inserción. Abre siempre el modo de comandos para cerrar vi.

  • Pulsa [i] e introduce la siguiente información:

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

    Mueve la entrada index.php de modo que quede detrás de la entrada DirectoryIndex.

  • Para abrir en el modo de comandos, pulsa la tecla [Esc]. Luego, escribe el comando :wq para guardar el texto y cerrar el editor.

  • Para aplicar los cambios, debes reiniciar Apache. Para reiniciar Apache, escribe el siguiente comando:

    systemctl restart apache2

Instalar módulos PHP

Para ampliar la funcionalidad de PHP, puedes instalar módulos adicionales.

Para ver las opciones disponibles para los módulos y bibliotecas PHP, pasa los resultados de la búsqueda apt search a less. Less es un pager que puedes utilizar para mostrar archivos de texto en la línea de comandos. Además, puedes moverte libremente en los documentos con less. Para ello, introduce el siguiente comando:

apt search php- | less

Para desplazarte hacia arriba o hacia abajo, utiliza las teclas de flecha. Para salir de less, pulsa [Q].

Para obtener información detallada sobre un módulo PHP, escribe el siguiente comando:

apt show package_name

Ejemplo:

apt show php-codesniffer

Para instalar los módulos PHP que desees, introduce el siguiente comando:

apt install package1 package2

Ejemplo:

apt install php-codesniffer php-cli

Probar PHP

Para comprobar si PHP se instaló correctamente, crea un script con el editor. Este debe ser almacenado en el directorio /var/www/html.

  • Para crear el script en el directorio /var/wwww/html, escribe el siguiente comando:

    vi /var/www/html/info.php

    Se abre el editor vi.

  • Presiona la tecla [i] e introduce el siguiente código PHP:

    <?php
    phpinfo();
    ?

  • Para entrar en el modo de comandos, pulsa la tecla [Esc]. Luego escribe el comando :wq para guardar el texto y cerrar el editor.

  • Para comprobar si se muestran correctamente los contenidos del script PHP, accede a la URL correspondiente en el siguiente formato en el navegador web:

    http://LA-DIRECCION-IP-DE-TU-SERVIDOR/info.php

  • Para eliminar la página mostrada, escribe el siguiente comando:

    rm /var/www/html/info.php