Todos los productos
Search
Centro de documentos

Elastic Compute Service:Manually deploy a LAMP stack

Última actualización: Sep 02, 2026

Instale y configure Linux, Apache, MySQL y PHP en una instancia ECS para alojar aplicaciones web.

Nota

Puede utilizar Terraform Explorer para construir automáticamente un entorno LAMP.

Requisitos previos

  • La instancia ECS tiene asignada automáticamente una dirección IP pública. Como alternativa, puede asociar una dirección IP elástica (EIP) a la instancia ECS. Para obtener instrucciones sobre cómo habilitar el ancho de banda público, consulte Enable public bandwidth.

  • Las reglas de entrada del security group rules permiten el tráfico en los puertos 22 y 80 para la instancia ECS.

  • La instancia ECS cuenta con como mínimo 4 GiB de memoria.

Desplegar una pila LAMP

Alibaba Cloud Linux 3 o CentOS 8

  1. Instale Apache.

    # Install the Apache server.
    sudo dnf install -y httpd
    # Automatically start the Apache server on instance startup.
    sudo systemctl enable httpd
    # Start the Apache server.
    sudo systemctl start httpd
  2. Instale MySQL.

    Nota

    En Alibaba Cloud Linux 3, instale compat-openssl10 para garantizar la compatibilidad con versiones anteriores de las bibliotecas OpenSSL.

    sudo yum install -y compat-openssl10
    # Add an official MySQL repository.
    sudo rpm -Uvh https://repo.mysql.com/mysql84-community-release-el8-1.noarch.rpm
    # Install MySQL.
    sudo dnf install -y mysql-server
    # Start MySQL and configure MySQL to automatically start on system startup.
    sudo systemctl start mysqld
    sudo systemctl enable mysqld
    1. Consulte la contraseña inicial de root.

      • En Alibaba Cloud Linux 3:

        echo $(PASSWORD=$(sudo grep 'temporary password' /var/log/mysqld.log); PASSWORD=${PASSWORD##* }; echo $PASSWORD)
      • En CentOS 8, el usuario root no tiene contraseña inicial.

    2. Establezca una nueva contraseña para root en MySQL. Reemplace <oldpwd> con la contraseña inicial y <newpwd> con su nueva contraseña. En CentOS 8, deje <oldpwd> vacío.

      Importante

      La contraseña debe tener como mínimo 8 caracteres e incluir mayúsculas, minúsculas, dígitos y caracteres especiales.

      sudo mysqladmin -uroot -p'<oldpwd>' password '<newpwd>'
  3. Instale PHP.

    Nota

    Este ejemplo utiliza PHP 8.4. Para otras versiones, cambie el nombre del módulo (por ejemplo, php:remi-8.1 para PHP 8.1).

    # Specify the remi repository and enable the php:remi-8.4 module.
    sudo rpm -Uvh http://mirrors.cloud.aliyuncs.com/remi/enterprise/remi-release-8.rpm  --nodeps
    sudo sed -i "s/\$releasever/8/g" /etc/yum.repos.d/remi-modular.repo /etc/yum.repos.d/remi-safe.repo /etc/yum.repos.d/remi.repo
    sudo dnf install -y yum-utils && sudo dnf module enable -y php:remi-8.4
    # Install PHP, PHP FastCGI Process Manager (PHP-FPM), and the MySQL extension.
    sudo dnf install -y php php-fpm php-mysqlnd
    # Start PHP-FPM and configure PHP-FPM to automatically start on system startup.
    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm
  4. Compruebe la pila LAMP.

    1. Consulte la dirección de escucha de PHP-FPM.

      sudo grep 'listen =' /etc/php-fpm.d/www.conf
    2. Cree el archivo /etc/httpd/conf.d/php-fpm.conf con las reglas de reenvío de php-fpm.

      Importante

      Si PHP-FPM escucha en 127.0.0.1:9000, establezca SetHandler como proxy:fcgi://127.0.0.1:9000.

      sudo tee /etc/httpd/conf.d/php-fpm.conf <<-'EOF'
      <FilesMatch \.php$>
          SetHandler "proxy:unix:/run/php-fpm/www.sock;"
      </FilesMatch>
      EOF
    3. Reinicie httpd.

      sudo systemctl restart httpd
    4. Cree el archivo test.php en /var/www/html/. Reemplace <username> y <password> con sus credenciales de MySQL.

      sudo tee /var/www/html/test.php <<-'EOF'
      <?php
      $servername = "localhost";
      $username = "<username>";
      $password = "<password>";
      
      $conn = new mysqli($servername, $username, $password);
      
      if ($conn->connect_error) {
      die("fail: " . $conn->connect_error);
      }
      echo "success\n";
      ?>
      EOF
    5. Abra http://<Public-IP-Address-of-ECS-instance>/test.php en un navegador. Si aparece success, la pila LAMP funciona correctamente.

Alibaba Cloud Linux 2 o CentOS 7

  1. Instale Apache.

    # Install the Apache server.
    sudo yum install -y httpd
    # Automatically start the Apache server on instance startup.
    sudo systemctl enable httpd
    # Start the Apache server.
    sudo systemctl start httpd
  2. Instale MySQL.

    # Add an official MySQL repository.
    sudo rpm -Uvh https://repo.mysql.com/mysql84-community-release-el7-1.noarch.rpm
    # Install MySQL.
    sudo yum install -y mysql-server
    # Start MySQL and configure MySQL to automatically start on system startup.
    sudo systemctl start mysqld
    sudo systemctl enable mysqld
    1. Consulte la contraseña inicial de root.

      echo $(PASSWORD=$(sudo grep 'temporary password' /var/log/mysqld.log); PASSWORD=${PASSWORD##* }; echo $PASSWORD)
    2. Establezca una nueva contraseña para root en MySQL. Reemplace <oldpwd> con la contraseña inicial y <newpwd> con su nueva contraseña.

      Importante

      La contraseña debe tener como mínimo 8 caracteres e incluir mayúsculas, minúsculas, dígitos y caracteres especiales.

      sudo mysqladmin -uroot -p'<oldpwd>' password '<newpwd>'
  3. Instale PHP.

    # Specify the remi repository and enable the remi-php83 module.
    sudo rpm -Uvh http://mirrors.cloud.aliyuncs.com/remi/enterprise/remi-release-7.rpm  --nodeps
    sudo sed -i "s/\$releasever/7/g" /etc/yum.repos.d/remi-modular.repo /etc/yum.repos.d/remi-safe.repo /etc/yum.repos.d/remi.repo
    sudo yum install -y yum-utils && sudo yum-config-manager --enable   remi-php83
    # Install PHP, PHP-FPM, and the MySQL extension.
    sudo yum install -y php php-fpm php-mysqlnd
    # Start PHP-FPM and configure PHP-FPM to automatically start on system startup.
    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm
  4. Compruebe la pila LAMP.

    1. Consulte la dirección de escucha de PHP-FPM.

      sudo grep 'listen =' /etc/php-fpm.d/www.conf
      • Si se devuelve una ruta de archivo de socket, PHP-FPM escucha en dicho archivo.

      • Si se devuelve 127.0.0.1:9000, PHP-FPM escucha en el puerto local 9000.

    2. Cree el archivo /etc/httpd/conf.d/php-fpm.conf con las reglas de reenvío de php-fpm.

      Importante

      Si PHP-FPM escucha en un archivo de socket, cambie proxy:fcgi://127.0.0.1:9000 por proxy:unix:<path>;. Reemplace <path> con la ruta del archivo de socket.

      sudo tee /etc/httpd/conf.d/php-fpm.conf <<-'EOF'
      <FilesMatch \.php$>
          SetHandler "proxy:fcgi://127.0.0.1:9000"
      </FilesMatch>
      EOF
    3. Reinicie httpd.

      sudo systemctl restart httpd
    4. Cree el archivo test.php en /var/www/html/. Reemplace <username> y <password> con sus credenciales de MySQL.

      sudo tee /var/www/html/test.php <<-'EOF'
      <?php
      $servername = "localhost";
      $username = "<username>";
      $password = "<password>";
      
      $conn = new mysqli($servername, $username, $password);
      
      if ($conn->connect_error) {
      die("fail: " . $conn->connect_error);
      }
      echo "success\n";
      ?>
      EOF
    5. Abra http://<Public-IP-Address-of-ECS-instance>/test.php en un navegador. Si aparece success, la pila LAMP funciona correctamente.

Ubuntu 20.04 o posterior

  1. Instale Apache.

    # Install the Apache server.
    sudo apt update -y && sudo apt install -y apache2
    # Automatically start the Apache server on instance startup.
    sudo systemctl enable apache2
    # Start the Apache server.
    sudo systemctl start apache2
  2. Instale el servidor MySQL.

    sudo apt update -y && sudo apt install -y mysql-server
  3. Configure la contraseña de root y el plugin de autenticación. Reemplace <newpwd> con su contraseña.

    Importante

    De forma predeterminada, root utiliza el plugin auth_socket y no tiene contraseña. Presione Enter cuando se le solicite.

    sudo mysql -uroot -p -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<newpwd>';" -e "FLUSH PRIVILEGES;"
  4. Instale PHP.

    Nota

    Ejecute sudo apt search php para listar las versiones disponibles de PHP. Por ejemplo, para PHP 8.1: sudo apt install -y php8.1 php8.1-fpm php8.1-mysql.

    # Install the software-properties-common package and add the ppa:ondrej/php Personal Package Archive (PPA) repository.
    sudo apt update && sudo apt install -y software-properties-common && sudo add-apt-repository -y ppa:ondrej/php
    # Install PHP 8.4 and the related components, including PHP-FPM and the MySQL extension.
    sudo apt install -y php8.4 php8.4-fpm php8.4-mysql
  5. Compruebe la pila LAMP.

    1. Consulte la dirección de escucha de PHP-FPM. Reemplace <version> con su versión de PHP, como 8.4.

      sudo grep '^listen =' /etc/php/<version>/fpm/pool.d/www.conf
      • Si se devuelve una ruta de archivo de socket, PHP-FPM escucha en dicho archivo.

      • Si se devuelve 127.0.0.1:9000, PHP-FPM escucha en el puerto local 9000.

    2. Cree el archivo /etc/apache2/conf-available/php-fpm.conf con las reglas de reenvío de PHP. Reemplace <listen> con la dirección de escucha de PHP-FPM.

      • Si PHP-FPM escucha en un archivo de socket, reemplace <listen> con unix:<path>; y <path> con la ruta del archivo de socket.

        Importante

        Los archivos de socket requieren permisos de lectura y escritura. Ejecute sudo chmod 666 <path> para otorgarlos.

      • Si PHP-FPM escucha en 127.0.0.1:9000, reemplace <listen> con fcgi://127.0.0.1:9000.

      sudo tee /etc/apache2/conf-available/php-fpm.conf <<-'EOF'
      <FilesMatch \.php$>
          SetHandler "proxy:<listen>"
      </FilesMatch>
      EOF
    3. Cree un enlace simbólico para habilitar la configuración.

      sudo ln -s /etc/apache2/conf-available/php-fpm.conf /etc/apache2/conf-enabled/
    4. Habilite los módulos proxy_fcgi y setenvif, y luego active la configuración de PHP-FPM.

      sudo a2enmod proxy_fcgi setenvif
      sudo a2enconf php8.4-fpm
    5. Reinicie Apache.

      sudo systemctl restart apache2
    6. Cree el archivo test.php en /var/www/html/. Reemplace <username> y <password> con sus credenciales de MySQL.

      sudo tee /var/www/html/test.php <<-'EOF'
      <?php
      $servername = "localhost";
      $username = "<username>";
      $password = "<password>";
      
      $conn = new mysqli($servername, $username, $password);
      
      if ($conn->connect_error) {
      die("fail: " . $conn->connect_error);
      }
      echo "success\n";
      ?>
      EOF
    7. Abra http://<Public-IP-Address-of-ECS-instance>/test.php en un navegador. Si aparece success, la pila LAMP funciona correctamente.

Preguntas frecuentes

¿Por qué no puedo acceder a la página test.php?

Posibles causas:

Es posible que el puerto 80 no esté abierto en el security group, que el firewall del sistema esté habilitado o que otro servicio esté ocupando el puerto 80.

What do I do if I cannot access a service deployed on an instance?

¿Cómo permito el acceso remoto a MySQL?

Cree una cuenta que no sea root para el acceso remoto. Deploy MySQL on a Linux instance.