En este artículo le 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 debe asegurarse de que su servidor tiene suficiente capacidad de hardware.

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

Instalar Apache

Proceda de la siguiente manera para instalar Apache:

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

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

  • Para instalar Apache, escriba 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]

  • Introduzca [y] y pulse Enter.

    Apache se instalará.

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

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

    Si puede acceder a la IP (verá su página de prueba), Apache se ha instalado correctamente.

Instalar MySQL

Proceda de la siguiente manera para instalar MySQL:

  • Para instalar MySQL, escriba 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]

  • Introduzca [y] y pulse Enter.

    MySQL se instalará.

  • Inicie sesión en MySQL. Para ello, escriba el siguiente comando:

    sudo mysql

  • Escriba el siguiente comando y cambie 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, escriba 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, escriba el siguiente comando:

    mysql_secure_installation

    Aparecerá el siguiente mensaje:

    Securing the MySQL server deployment.

    Enter passwort for user root:

  • Escriba la contraseña root que ha establecido 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 activa 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 usa una contraseña débil en combinación con un software que configura datos de usuario MySQL automáticamente. Por eso, le recomendamos que no active esta opción, pero que utilice siempre una contraseña fuerte y segura.

  • Para omitir la configuración de dicho plugin, pulse 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, pulse 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, escriba [y] y pulse Enter.

    Aparecerá el siguiente mensaje:

    Disallow root login remotely? [Y/n]

  • Escriba [y] y pulse Enter.

    Aparecerá el siguiente mensaje:

    Remove test database and access to it?

  • Escriba [y] y pulse Enter. Aparecerá el siguiente mensaje:

    Reload privilege tables now?

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

Instalar PHP

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

  • Para instalar el paquete de PHP y MySQL, escriba 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, introduzca [y]. A continuación, pulse 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, proceda de la siguiente manera:

  • Para abrir el archivo dir.conf con el editor vi, escriba 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. Puede 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, pulse la tecla [Esc]. Cuando utiliza el modo de comandos, las entradas del teclado se interpretan como comandos.
  • vi no puede cerrar el modo de inserción. Abra siempre el modo de comandos para cerrar vi.

  • Pulse [i] e introduzca la siguiente información:

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

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

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

  • Para aplicar los cambios, debe reiniciar Apache. Para reiniciar Apache, escriba el siguiente comando:

    systemctl restart apache2

Instalar módulos PHP

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

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

apt search php- | less

Para desplazarse hacia arriba o hacia abajo, utilice las teclas de flecha. Para salir de less, pulse [Q].

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

apt show package_name

Ejemplo:

apt show php-codesniffer

Para instalar los módulos PHP que desee, introduzca el siguiente comando:

apt install package1 package2

Ejemplo:

apt install php-codesniffer php-cli

Probar PHP

Para comprobar si PHP ha sido instalado correctamente, cree 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, escriba el siguiente comando:

    vi /var/www/html/info.php

    Se abre el editor vi.

  • Presione la tecla [i] e introduzca el siguiente código PHP:

    <?php
    phpinfo();
    ?

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

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

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

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

    rm /var/www/html/info.php