Todos os produtos
Search
Central de documentação

Elastic Compute Service:Manually deploy a LAMP stack

Última atualização: Aug 28, 2026

Instale e configure Linux, Apache, MySQL e PHP em uma instância ECS para hospedar aplicações web.

Nota

Use o Terraform Explorer para criar automaticamente um ambiente LAMP.

Pré-requisitos

  • A instância ECS tem um endereço IP público atribuído automaticamente ou um Elastic IP Address (EIP) associado. Para obter instruções sobre como ativar a largura de banda pública, consulte Enable public bandwidth.

  • As security group rules de entrada permitem tráfego nas portas 22 e 80 para a instância ECS.

  • A instância ECS tem pelo menos 4 GiB de memória.

Implantar a pilha LAMP

Alibaba Cloud Linux 3 ou CentOS 8

  1. Instale o 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 o MySQL.

    Nota

    No Alibaba Cloud Linux 3, instale o pacote compat-openssl10 para garantir compatibilidade com bibliotecas OpenSSL anteriores.

    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. Obtenha a senha inicial do usuário root.

      • No Alibaba Cloud Linux 3:

        echo $(PASSWORD=$(sudo grep 'temporary password' /var/log/mysqld.log); PASSWORD=${PASSWORD##* }; echo $PASSWORD)
      • No CentOS 8, o usuário root não tem senha inicial.

    2. Defina uma nova senha para o usuário root do MySQL. Substitua <oldpwd> pela senha inicial e <newpwd> pela nova senha. No CentOS 8, deixe <oldpwd> vazio.

      Importante

      A senha deve ter no mínimo 8 caracteres e incluir letras maiúsculas, minúsculas, dígitos e caracteres especiais.

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

    Nota

    Este exemplo usa o PHP 8.4. Para outras versões, altere o nome do módulo (por exemplo, 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. Verifique a pilha LAMP.

    1. Consulte o endereço de escuta do PHP-FPM.

      sudo grep 'listen =' /etc/php-fpm.d/www.conf
    2. Crie o arquivo /etc/httpd/conf.d/php-fpm.conf com as regras de encaminhamento do php-fpm.

      Importante

      Se o PHP-FPM estiver escutando em 127.0.0.1:9000, defina o 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 o httpd.

      sudo systemctl restart httpd
    4. Crie o arquivo test.php em /var/www/html/. Substitua <username> e <password> pelas suas credenciais do 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 em um navegador. Se success for exibido, a pilha LAMP está funcionando.

Alibaba Cloud Linux 2 ou CentOS 7

  1. Instale o 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 o 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. Obtenha a senha inicial do usuário root.

      echo $(PASSWORD=$(sudo grep 'temporary password' /var/log/mysqld.log); PASSWORD=${PASSWORD##* }; echo $PASSWORD)
    2. Defina uma nova senha para o usuário root do MySQL. Substitua <oldpwd> pela senha inicial e <newpwd> pela nova senha.

      Importante

      A senha deve ter no mínimo 8 caracteres e incluir letras maiúsculas, minúsculas, dígitos e caracteres especiais.

      sudo mysqladmin -uroot -p'<oldpwd>' password '<newpwd>'
  3. Instale o 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. Verifique a pilha LAMP.

    1. Consulte o endereço de escuta do PHP-FPM.

      sudo grep 'listen =' /etc/php-fpm.d/www.conf
      • Se o retorno for um caminho de arquivo de socket, o PHP-FPM escuta nesse arquivo.

      • Se o retorno for 127.0.0.1:9000, o PHP-FPM escuta na porta local 9000.

    2. Crie o arquivo /etc/httpd/conf.d/php-fpm.conf com as regras de encaminhamento do php-fpm.

      Importante

      Se o PHP-FPM escutar em um arquivo de socket, altere proxy:fcgi://127.0.0.1:9000 para proxy:unix:<path>;. Substitua <path> pelo caminho do arquivo 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 o httpd.

      sudo systemctl restart httpd
    4. Crie o arquivo test.php em /var/www/html/. Substitua <username> e <password> pelas suas credenciais do 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 em um navegador. Se success for exibido, a pilha LAMP está funcionando.

Ubuntu 20.04 ou posterior

  1. Instale o 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 o servidor MySQL.

    sudo apt update -y && sudo apt install -y mysql-server
  3. Defina a senha do usuário root e o plugin de autenticação. Substitua <newpwd> pela sua senha.

    Importante

    Por padrão, o usuário root usa o plugin auth_socket e não tem senha. Pressione Enter quando solicitado.

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

    Nota

    Execute sudo apt search php para listar as versões disponíveis do PHP. Por exemplo, para o 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. Verifique a pilha LAMP.

    1. Consulte o endereço de escuta do PHP-FPM. Substitua <version> pela sua versão do PHP, como 8.4.

      sudo grep '^listen =' /etc/php/<version>/fpm/pool.d/www.conf
      • Se o retorno for um caminho de arquivo de socket, o PHP-FPM escuta nesse arquivo.

      • Se o retorno for 127.0.0.1:9000, o PHP-FPM escuta na porta local 9000.

    2. Crie o arquivo /etc/apache2/conf-available/php-fpm.conf com as regras de encaminhamento do PHP. Substitua <listen> pelo endereço de escuta do PHP-FPM.

      • Se o PHP-FPM escutar em um arquivo de socket, substitua <listen> por unix:<path>; e <path> pelo caminho do arquivo de socket.

        Importante

        Arquivos de socket exigem permissões de leitura e escrita. Execute sudo chmod 666 <path> para concedê-las.

      • Se o PHP-FPM escutar em 127.0.0.1:9000, substitua <listen> por fcgi://127.0.0.1:9000.

      sudo tee /etc/apache2/conf-available/php-fpm.conf <<-'EOF'
      <FilesMatch \.php$>
          SetHandler "proxy:<listen>"
      </FilesMatch>
      EOF
    3. Crie um link simbólico para ativar a configuração.

      sudo ln -s /etc/apache2/conf-available/php-fpm.conf /etc/apache2/conf-enabled/
    4. Ative os módulos proxy_fcgi e setenvif e, em seguida, ative a configuração do PHP-FPM.

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

      sudo systemctl restart apache2
    6. Crie o arquivo test.php em /var/www/html/. Substitua <username> e <password> pelas suas credenciais do 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 em um navegador. Se success for exibido, a pilha LAMP está funcionando.

Perguntas frequentes

Por que não consigo acessar a página test.php?

Possíveis causas:

A porta 80 pode não estar aberta no grupo de segurança, o firewall do sistema pode estar ativado ou outro serviço pode estar usando a porta 80.

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

Como permitir acesso remoto ao MySQL?

Crie uma conta não root para acesso remoto. Deploy MySQL on a Linux instance.