miércoles, 11 de junio de 2025

Cómo Instalar Apache, MySQL, PHP (LAMP Stack) en Ubuntu 24.04

Cómo instalar Apache, MySQL, PHP (pila LAMP) en Ubuntu 24.04

Introducción

Apache, MySQL y PHP (pila LAMP) son un conjunto de aplicaciones de código abierto que permiten el desarrollo y la entrega de aplicaciones web dinámicas en un servidor. Linux se ejecuta como sistema operativo para implementar las aplicaciones, Apache funciona como servidor web, MySQL como backend de la base de datos y PHP procesa el contenido de las aplicaciones web dinámicas en el servidor.

Este artículo explica cómo instalar la pila LAMP en Ubuntu 24.04 y configurar el servidor para entregar aplicaciones web utilizando la pila.

Prerrequisitos

Antes de empezar:

Instalar Apache

La última versión de Apache está disponible en los repositorios APT predeterminados de Ubuntu 24.04. Siga los pasos a continuación para actualizar el índice de paquetes predeterminado e instalar la última versión del servidor web Apache en su servidor.

  1. Actualizar el índice de paquetes del servidor.

    consola
    $ sudo  apt  update
    
  2. Instalar Apache.

    consola
    $ sudo  apt  install  apache2  -y
    
  3. Inicie el servicio Apache.

    consola
    $ sudo  systemctl  start  apache2
    
  4. Habilite el servicio Apache para que se inicie automáticamente en el momento del arranque.

    consola
    $ sudo  systemctl habilitar apache2
      
  5. Verifique que el servicio del servidor Apache esté ejecutándose.

    consola
    $ sudo  systemctl  status  apache2
    

    Producción:

    apache2.service - The Apache HTTP Server
        Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; preset: enabled)
        Active: active (running) since Wed 2024-06-12 06:50:21 UTC; 3 days ago
        Docs: https://httpd.apache.org/docs/2.4/
      Process: 164186 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
     Main PID: 124430 (apache2)
        Tasks: 8 (limit: 4389)
      Memory: 18.3M (peak: 44.1M)
         CPU: 27.485s
      CGroup: /system.slice/apache2.service
         ├─124430 /usr/sbin/apache2 -k start
         ├─164195 /usr/sbin/apache2 -k start
         ├─164196 /usr/sbin/apache2 -k start
         ├─164199 /usr/sbin/apache2 -k start
         ├─164201 /usr/sbin/apache2 -k start
  6. Permitir conexiones al puerto HTTP 80a través de la configuración de firewall predeterminada.

    consola
    $ sudo  ufw  allow 80 /tcp
     
  7. Acceda a la IP de su dominio o servidor mediante un navegador web como Chrome y verifique que se muestre la página web Apache predeterminada.

    http://SERVER-IP

    Pruebe el acceso a la página web predeterminada de Apache

Instalar MySQL

MySQL funciona como el backend de la base de datos dentro de la pila LAMP y puede sustituirlo por MariaDB según sus necesidades. El paquete MySQL más reciente está disponible en los repositorios predeterminados de Ubuntu 24.04. Siga los pasos a continuación para instalar la última versión de MySQL en su servidor utilizando el gestor de paquetes APT predeterminado.

  1. Instalar el paquete del servidor de base de datos MySQL.

    consola
    $ sudo  apt  install  -y  servidor mysql
    
  2. Habilite el servicio MySQL para que se inicie automáticamente en el momento del arranque.

    consola
    $ sudo  systemctl habilitar mysql
      
  3. Inicie el servicio MySQL.

    consola
    $ sudo  systemctl  start  mysql
    
  4. Ver el estado del servicio MySQL y verificar que esté ejecutándose.

    consola
    $ sudo  systemctl  status  mysql
    

    Producción:

    mysql.service - MySQL Community Server
    Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; preset: enabled)
    Active: active (running) since Thu 2024-06-13 06:54:13 UTC; 2 days ago
    Process: 144075 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
    Main PID: 144083 (mysqld)
    Status: "Server is operational"
    Tasks: 38 (limit: 4389)
    Memory: 369.2M (peak: 382.6M)
    CPU: 36min 21.658s
    CGroup: /system.slice/mysql.service
         └─144083 /usr/sbin/mysqld

    Según el active (running)resultado de la salida anterior, el servidor de base de datos MySQL está activo y ejecutándose en su servidor.

  5. Ejecute el script de instalación segura de MySQL para deshabilitar los valores predeterminados inseguros y habilitar la autenticación en su servidor de base de datos.

    consola
    $ sudo  mysql_secure_installation
    

    Responda a las siguientes opciones del servidor de base de datos MySQL cuando se le solicite:

    • VALIDATE PASSWORD: Ingrese Ypara habilitar las comprobaciones de fortaleza de contraseña en el servidor de base de datos.
    • Password strength policy: Ingrese 2para habilitar el uso de contraseñas de múltiples caracteres en el servidor.
    • Remove anonymous users:Ingrese Ypara eliminar usuarios anónimos del servidor de base de datos.
    • Disallow root login remotely: Ingrese Ypara deshabilitar el acceso remoto al rootusuario de la base de datos.
    • Remove test database: Ingrese Ypara eliminar la base de datos de prueba MySQL predeterminada en su servidor.
    • Reload privileges tables now:Ingrese Ypara recargar las tablas de privilegios de MySQL y aplicar los cambios de configuración.

    Su salida debería verse como la que se muestra a continuación cuando tenga éxito:

    Success.
    
    All done! 
  6. Inicie sesión en la consola MySQL como rootusuario.

    consola
    $ sudo  mysql
    
  7. Modifique el rootusuario de la base de datos para usar una nueva contraseña segura. Reemplácela Strong@@password123con la contraseña que desee.

    SQL
    mysql > alter user 'root' @ 'localhost' IDENTIFICADO POR 'Strong@@password123' ;       
    

    Reemplazar passwordcon una contraseña segura.

  8. Vacíe la tabla de privilegios de MySQL para aplicar los nuevos cambios de usuario.

    SQL
    mysql > FLUSH PRIVILEGIOS ;  
    
  9. Salir de la consola MySQL.

    SQL
    mysql > SALIR  
    
  10. Inicie sesión nuevamente en la consola MySQL como rootusuario e ingrese la contraseña que estableció anteriormente cuando se le solicite.

    consola
    $ sudo  mysql  -u  root  -p
    
  11. Crear una nueva base de datos de muestra content_database.

    SQL
    mysql > CREAR base de datos content_database ;    
    
  12. Ver todas las bases de datos y verificar que la nueva base de datos esté disponible.

    SQL
    mysql > MOSTRAR BASES DE DATOS ;   
    

    Producción:

    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | content_database   |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    5 rows in set (0.01 sec)
  13. Crea un nuevo usuario de MySQL, por ejemplo, dbadmincon una contraseña segura. Reemplázala Strong@@password123con la contraseña que desees.

    SQL
    mysql > CREAR USUARIO 'dbadmin' @ 'localhost' IDENTIFICADO POR 'Strong@@password123' ;       
    
  14. Otorgue al usuario privilegios completos sobre su base de datos de muestra content_database.

    SQL
    mysql > CONCEDER TODOS LOS PRIVILEGIOS EN content_database . * A 'dbadmin' @ 'localhost' ;        
    
  15. Vacíe la tabla de privilegios de MySQL para aplicar los cambios.

    SQL
    mysql > FLUSH PRIVILEGIOS ;   
    
  16. Salir del shell MySQL.

    SQL
    mysql > SALIR  
    

Instalar PHP y configurar PHP-FPM

PHP es un componente fundamental de la pila LAMP que procesa contenido dinámico y se integra con su servidor de bases de datos MySQL para leer o crear registros. PHP-FPM (Administrador de Procesos FastCGI) gestiona la conexión al servicio PHP y optimiza el rendimiento de la aplicación mediante grupos de procesos de trabajo. Siga los pasos a continuación para instalar la última versión de PHP y configurar PHP-FPM para habilitar procesos dinámicos de aplicaciones web en su servidor.

  1. Instalar PHP y el módulo PHP-FPM.

    consola
    $ sudo  apt  install  -y  php  php-fpm
    
  2. Instale extensiones PHP comunes en su servidor.

    consola
    $ sudo  apt  install  -y  php-mysql  php-opcache  php-cli  libapache2-mod-php
    

    El comando anterior instala los siguientes módulos PHP:

    • php-mysql: Permite que PHP se conecte e interactúe con el servidor de base de datos MySQL.
    • libapache2-mod-php:Permite que el servidor web Apache procese y ejecute scripts PHP.
    • php-opcache:Permite el almacenamiento en caché de scripts PHP precompilados en la memoria para una ejecución más rápida.
    • php-cli:Permite el acceso a PHP en la terminal de su servidor.
  3. Vea la versión de PHP instalada en su servidor.

    consola
    $ php  -v
    

    Producción:

    PHP 8.3.6 (cli) (built: Jun 13 2024 15:23:20) (NTS)
    Copyright (c) The PHP Group
    Zend Engine v4.3.6, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies
  4. Inicie el servicio PHP-FPM según la versión de PHP instalada en su servidor. Por ejemplo, PHP 8.3.

    consola
    $ sudo  systemctl  start  php8.3-fpm
    
  5. Habilite PHP-FPM para que se inicie en el momento del arranque.

    consola
    $ sudo  systemctl habilitar php8.3-fpm
      
  6. Vea el estado del servicio PHP-FPM y verifique que se esté ejecutando.

    consola
    $ sudo  systemctl  status  php8.3-fpm
    

    Producción:

    php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager
     Loaded: loaded (/usr/lib/systemd/system/php8.3-fpm.service; enabled; preset: enabled)
     Active: active (running) since Wed 2024-06-12 06:50:21 UTC; 3 days ago
       Docs: man:php-fpm8.3(8)
    Main PID: 124416 (php-fpm8.3)
     Status: "Processes active: 0, idle: 2, Requests: 15, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 4389)
     Memory: 12.0M (peak: 12.4M)
        CPU: 31.204s
     CGroup: /system.slice/php8.3-fpm.service
             ├─124416 "php-fpm: master process (/etc/php/8.3/fpm/php-fpm.conf)"
             ├─124419 "php-fpm: pool www"
             └─124420 "php-fpm: pool www"

Configurar PHP-FPM

PHP-FPM garantiza un rendimiento óptimo de las aplicaciones PHP en su servidor mediante grupos de recursos que dependen de la memoria del servidor. Siga los pasos a continuación para configurar PHP-FPM para que funcione con el servidor web Apache y modificar la configuración predeterminada de los grupos de recursos para una gestión eficiente de los recursos.

  1. Habilite los módulos Apache necesarios.

    consola
    $ sudo  a2enmod  proxy_fcgi  setenvif
    

    El comando anterior habilita los siguientes módulos en su servidor web:

    • proxy_fcgi: Permite que Apache funcione como proxy con PHP-FPM.
    • setenvif:Establece las variables de entorno necesarias para habilitar conexiones entre Apache y PHP-FPM.
  2. Habilitar la configuración predeterminada de PHP-FPM.

    consola
    $ sudo  a2enconf  php8.3-fpm
    
  3. Reinicie el servidor web Apache para aplicar los cambios.

    consola
    $ sudo  systemctl  restart  apache2
    
  4. Cambie al directorio de configuraciones del grupo PHP-FPM.

    $ sudo cd /etc/php/8.3/fpm/pool.d/
  5. Abra la configuración del pool PHP-FPM predeterminado www.conf.

    consola
    $ sudo  nano  /etc/php/8.3/fpm/pool.d/www.conf
    

    Verifique que el nombre del grupo PHP-FPM predeterminado sea www.

    este
    [www]
    

    Busque y verifique que las siguientes directivas estén configuradas www-datapara permitir que PHP-FPM utilice el perfil de usuario del servidor web predeterminado.

    este
    usuario = www-data grupo = www-data listen.propietario = www-data listen.grupo = www-data  
      
      
      
    
    • Encuentre las siguientes configuraciones de pool y modifíquelas para adaptarlas a las necesidades de su servidor:

      • pm: Establece el administrador de procesos predeterminado. Este valor dynamicpermite que los procesos secundarios de PHP se ajusten dinámicamente en el servidor.
      • pm.start_serversDefine el número de procesos secundarios PHP que se crearán al iniciar. El valor predeterminado es 2.
      • pm.max_childrenEstablece el número máximo de procesos secundarios PHP que pueden estar activos simultáneamente. El valor predeterminado es 5.
      • pm.min_spare_serversEstablece el número mínimo de procesos secundarios PHP inactivos. El valor predeterminado es 1.
      • pm.max_spare_serversEspecifica el número máximo de procesos secundarios PHP inactivos. El valor predeterminado es 3.
      • pm.max_requests:Limita la cantidad de solicitudes que un proceso secundario PHP puede manejar antes de ser reciclado.

    Guarde y cierre el archivo.

  6. Reinicie el servicio PHP-FPM para aplicar los cambios de configuración.

    consola
    $ sudo  systemctl  restart  php8.3-fpm
    

Configurar Apache con PHP-FPM

El servidor web Apache utiliza el mod_proxy_fcgimódulo para comunicarse con PHP-FPM mediante el socket UNIX del servicio o el puerto TCP predeterminado, 9000según la configuración de su grupo. En los siguientes pasos, configure un nuevo host virtual Apache y conéctese al servicio PHP-FPM mediante el socket UNIX.

  1. Eliminar los archivos de configuración del host virtual Apache predeterminados.

    consola
    $ sudo  rm  -rf  /etc/apache2/sites-enabled/000-default.conf && sudo rm -rf /etc/apache2/sites-available/000-default.conf
         
  2. Cree un nuevo archivo de configuración de host virtual Apache. Por ejemplo, app.example.com.conf.

    consola
    $ sudo  nano  /etc/apache2/sites-available/app.example.com.conf
    
  3. Agregue las siguientes configuraciones al archivo. Reemplácelas app.example.comcon su dominio actual.

    este
    <VirtualHost * : 80> 
    ServerAdmin webmaster@app.example.com 
    ServerName wapp.example.com 
    DocumentRoot /var/www/app.example.com
    
    <Directorio /var/www/app.example.com> 
    Opciones Índices FollowSymLinks AllowOverride All Requerir que todos estén permitidos </Directorio>    
        
        
    
    
    <FilesMatch \.php$> 
    SetHandler "proxy : unix:/var/run/php/php8.3-fpm.sock|fcgi://localhost/" </FilesMatch>   
    
    
    Registro de errores ${APACHE_LOG_DIR}/app.example.com_error.log 
    Registro personalizado ${APACHE_LOG_DIR}/app.example.com_access.log combinado 
    </VirtualHost>
    

    Guarde y cierre el archivo.

    La configuración anterior crea un nuevo host virtual Apache que escucha las conexiones entrantes en el puerto HTTP predeterminado 80y sirve contenido web usando su app.example.comdominio. A continuación, todas las solicitudes de archivos PHP se reenvían al proceso PHP-FPM mediante el /var/run/php/php8.3-fpm.socksocket UNIX. Dentro de la configuración:

    • <VirtualHost *:80>: Permite que el perfil de host virtual escuche conexiones en el puerto 80.
    • <Directory /var/www/app.example.com>:Establece el directorio raíz web para entregar los archivos de la aplicación web.
    • <FilesMatch \.php$>:Reenvía todas las solicitudes de archivos PHP al socket PHP-FPM /var/run/php/php8.3-fpm.sockutilizando el protocolo FastCGI.
    • ErrorLogCustomLog: Habilite rutas personalizadas para almacenar los registros de acceso y errores del host virtual respectivamente.
  4. Habilite la nueva configuración del host virtual Apache.

    consola
    $ sudo  a2ensite  app.example.com.conf
    
  5. Pruebe la configuración de Apache para detectar errores de sintaxis.

    consola
    $ sudo  apache2ctl  configtest
    

    Producción:

    Syntax OK
  6. Cree el directorio raíz web del host virtual /var/www/app.example.comdefinido en su configuración.

    consola
    $ sudo  mkdir  -p  /var/www/app.example.com
    
  7. Crea un nuevo archivo PHP de muestra info.php.

    consola
    $ sudo  nano  /var/www/html/info.php
    
  8. Añade el siguiente contenido al archivo.

    php
    <?php 
    phpinfo (); 
    ?>
    

    Guarde y cierre el archivo.

    El código de aplicación anterior muestra información sobre la versión de PHP y los módulos instalados en su servidor cuando se accede a él en un navegador web.

  9. Reinicie Apache para aplicar los cambios de configuración.

    consola
    $ sudo  systemctl  restart  apache2
    
  10. Acceda a su dominio utilizando un navegador web como Chrome y agregue la /info.phpruta para verificar que se muestre la información de su aplicación PHP.

    http://app.example.com/info.php

    Captura de pantalla PHP-FPM

Proteger el servidor

El Firewall Simple (UFW) está disponible y activo en servidores Vultr Ubuntu 24.04 de forma predeterminada. El servidor web Apache entrega aplicaciones web dinámicas en su servidor mediante el puerto HTTP predeterminado, 80mientras que otros componentes de la pila LAMP utilizan puertos TCP internos, como el puerto MySQL 3306y el puerto PHP-FPM 9000. Siga las secciones a continuación para configurar el firewall predeterminado y permitir conexiones al puerto predeterminado del servidor web 80, así como para configurar certificados SSL de confianza para habilitar conexiones HTTPS en el puerto 443.

Configurar el firewall

  1. Vea el estado del firewall predeterminado y verifique que esté activo.

    consola
    $ sudo  ufw  status
    

    Producción:

    consola
    Estado: activo
    
  2. Vea los perfiles de aplicación UFW disponibles y verifique que el perfil Apache esté disponible.

    consola
    $ sudo  ufw lista de
      aplicaciones 

    Producción:

    Apache
    Apache Full
    Apache Secure
    OpenSSH
  3. Permitir que el Apache Fullperfil habilite conexiones HTTP y HTTPS en el servidor.

    consola
    $ sudo  ufw  allow "Apache completo" 
    
  4. Recargue las reglas del firewall para aplicar los cambios.

    consola
    $ sudo  ufw  reload
    
  5. Vea el estado de UFW y verifique que las reglas de conexión de Apache estén disponibles en la tabla de firewall.

    consola
    $ sudo  ufw  status
    

    Producción:

    To                         Action      From
    --                         ------      ----
    1022/tcp                   ALLOW       Anywhere
    Apache Full                ALLOW       Anywhere
    1022/tcp (v6)              ALLOW       Anywhere (v6)
    Apache Full (v6)           ALLOW       Anywhere (v6)

Generar certificados SSL Let's Encrypt confiables

  1. Instale la herramienta cliente Certbot Let's Encrypt usando Snap.

    consola
    $ sudo  snap  install  certbot  --classic
    
  2. Solicita un nuevo certificado SSL para tu dominio. Reemplázalo app.example.comcon tu dominio actual y admin@example.comtu correo electrónico.

    consola
    $ sudo  certbot  --apache  -d  app.ejemplo.com  -m  admin@ejemplo.com  --agree-tos
    

    Producción:

    Requesting a certificate for app.example.com
    
    Successfully received certificate.
    Certificate is saved at: /etc/letsencrypt/live/app.example.com/fullchain.pem
    Key is saved at:         /etc/letsencrypt/live/app.example.com/privkey.pem
    This certificate expires on 2024-10-14.
    These files will be updated when the certificate renews.
    Certbot has set up a scheduled task to automatically renew this certificate in the background.
    
    Deploying certificate
    Successfully deployed certificate for app.example.com to /etc/apache2/sites-available/000-default-le-ssl.conf
    Congratulations! You have successfully enabled HTTPS on https://app.example.com
  3. Pruebe el proceso de renovación automática del certificado SSL de Certbot.

    consola
    $ sudo  certbot  renew  --dry-run
    
  4. Reinicie el servidor web Apache para aplicar los cambios de configuración SSL.

    consola
    $ sudo  systemctl  restart  apache2
    

Pruebe la instalación de la pila LAMP

Siga los pasos a continuación para configurar una nueva tabla de muestra en su content_databasebase de datos MySQL existente para conectarse con su aplicación PHP y mostrar el mensaje Hello World! Greetings from Vultrcuando se acceda a ella en un navegador web.

  1. Inicie sesión en la consola MySQL utilizando el usuario de base de datos de muestra dbadminque creó anteriormente.

    consola
    $ mysql  -u  dbadmin  -p
    

    Ingrese la dbadmincontraseña de usuario cuando se le solicite para acceder a la consola MySQL.

  2. Cambiar a la base de datos de muestra content_database.

    SQL
    mysql > USO content_database ;  
    
  3. Cree una nueva tabla de muestra messagescon dos columnas content_idpara contentalmacenar sus datos.

    SQL
    mysql > CREAR TABLA SI NO EXISTE mensajes ( content_id INT AUTO_INCREMENT CLAVE PRIMARIA , content VARCHAR ( 255 ) NO NULO );        
               
              
          
    

    La consulta SQL anterior crea una nueva tabla con las siguientes especificaciones:

    • content_id:Contiene valores numéricos e incrementa automáticamente datos únicos en cada nueva fila.
    • content:Contiene datos de contenido mixto con hasta 255caracteres.
  4. Insertar nuevos datos en la messagestabla. Por ejemplo, añadir una nueva Hello World! Greetings from Vultrcadena a la contentcolumna.

    SQL
    mysql > INSERT INTO messages ( content ) VALUES ( '¡Hola mundo! Saludos desde Vultr' );       
    
  5. Ver todos los datos de la tabla para verificar que la nueva cadena se haya agregado a la columna.

    SQL
    mysql > SELECT * de mensajes ;     
    

    Producción:

    +----+------------------------------------------+
    | content_id | content                           |
    +------------+-----------------------------------+
    |  1         | Hello World! Greetings from Vultr |
    +------------+-----------------------------------+
    1 row in set (0.00 sec)
  6. Salir de la consola MySQL.

    SQL
    mysql > SALIR  
    
  7. Cree un nuevo archivo de aplicación PHP de muestra setup.phpen su directorio raíz web /var/www/html/app.example.com.

    consola
    $ sudo  nano  /var/www/html/setup.php
    
  8. Añade el siguiente contenido al archivo.

    php
    <?php 
    $nombre_de_host  =  "localhost" ; 
    $nombre_de_usuario  =  "dbadmin" ; 
    $contraseña  =  "Strong@@password123" ; 
    $nombre_de_base_de_datos  =  "content_database" ;
    
    // Establecer conexión 
    $conn  =  new  mysqli ( $nombre de host ,  $nombre de usuario ,  $contraseña ,  $nombre de base de datos );
    
    // Verificar la conexión 
    si  ( $conn -> connect_error )  { 
        die ( "Error de conexión."  .  $conn -> connect_error ); 
    }
    
    $sql  =  "SELECCIONAR contenido DE mensajes" ; 
    $resultado  =  $conn -> consulta ( $sql );
    
    if  ( $resultado -> num_filas  >  0 )  { 
       $fila  =  $resultado -> fetch_assoc (); 
       echo  "" < h2  estilo = 'color: azul; alineación del texto: centro; margen inferior: 15px;' > " 
    . htmlspecialchars( $fila["contenido"] ) . " </ h2 > ";
    
    } else { 
        echo " < h1 > No se  encontraron registros  .</ h1 > "; }
    
    
    $conn->cerrar ();
    

    Guarde y cierre el archivo.

    El código de la aplicación PHP anterior se conecta a la base de datos MySQL content_databasey muestra los datos de la contentcolumna de la messagestabla al acceder a ella. Si la base de datos MySQL no contiene registros, No records foundse muestra un mensaje o Connection Failed.si falla la conexión con el servidor de la base de datos.

  9. Otorgue al usuario Apache www-dataprivilegios completos en su directorio raíz web.

    consola
    $ chown  -R  www-data:www-data  /var/www/html/app.example.com/
    
  10. Acceda a su dominio utilizando la /setup.phpruta en su navegador web para verificar que su aplicación PHP muestra el Hello World! Greetings from Vultrcontenido de la cadena de su base de datos MySQL.

    https://app.example.com/setup.php

    Una aplicación PHP de saludos de Vultr

Conclusión

Ha instalado y configurado Apache, MySQL y PHP (pila LAMP) en su servidor Ubuntu 24.04. Además, ha creado aplicaciones dinámicas de ejemplo para probar el acceso entre todos los componentes de la pila LAMP y ejecutar las aplicaciones de forma segura en su servidor. Para obtener más información y opciones de configuración sobre cada componente, visite la siguiente documentación oficial:


Fuente: https://docs.vultr.com/how-to-install-apache-mysql-php-lamp-stack-on-ubuntu-24-04

No hay comentarios: