Tous les produits
Search
Centre de documentation

Elastic Compute Service:Manually deploy a LAMP stack

Dernière mise à jour :Aug 28, 2026

Installez et configurez Linux, Apache, MySQL et PHP sur une instance ECS pour héberger des applications web.

Remarque

Utilisez Terraform Explorer pour créer automatiquement un environnement LAMP.

Prérequis

  • Une adresse IP publique est attribuée automatiquement à l'instance ECS. Vous pouvez également associer une adresse IP élastique (EIP) à l'instance ECS. Pour savoir comment activer la bande passante publique, consultez la rubrique Activer la bande passante publique.

  • Les règles de groupe de sécurité entrantes autorisent le trafic sur les ports 22 et 80 pour l'instance ECS.

  • L'instance ECS dispose d'au moins 4 Go de mémoire.

Déployer une pile LAMP

Alibaba Cloud Linux 3 ou CentOS 8

  1. Installez 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. Installez MySQL.

    Remarque

    Sur Alibaba Cloud Linux 3, installez compat-openssl10 pour assurer la compatibilité avec les anciennes bibliothèques 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. Récupérez le mot de passe root initial.

      • Sur Alibaba Cloud Linux 3 :

        echo $(PASSWORD=$(sudo grep 'temporary password' /var/log/mysqld.log); PASSWORD=${PASSWORD##* }; echo $PASSWORD)
      • Sur CentOS 8, l'utilisateur root ne possède pas de mot de passe initial.

    2. Définissez un nouveau mot de passe root pour MySQL. Remplacez <oldpwd> par le mot de passe initial et <newpwd> par votre nouveau mot de passe. Sur CentOS 8, laissez <oldpwd> vide.

      Important

      Le mot de passe doit comporter au moins 8 caractères et inclure des majuscules, des minuscules, des chiffres et des caractères spéciaux.

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

    Remarque

    Cet exemple utilise PHP 8.4. Pour d'autres versions, modifiez le nom du module (par exemple, php:remi-8.1 pour 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. Vérifiez la pile LAMP.

    1. Récupérez l'adresse d'écoute de PHP-FPM.

      sudo grep 'listen =' /etc/php-fpm.d/www.conf
    2. Créez le fichier /etc/httpd/conf.d/php-fpm.conf avec les règles de redirection php-fpm.

      Important

      Si PHP-FPM écoute sur 127.0.0.1:9000, définissez SetHandler sur 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. Redémarrez httpd.

      sudo systemctl restart httpd
    4. Créez le fichier test.php dans le répertoire /var/www/html/. Remplacez <username> et <password> par vos identifiants 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. Ouvrez l'URL http://<Public-IP-Address-of-ECS-instance>/test.php dans un navigateur. Si le message success s'affiche, la pile LAMP fonctionne correctement.

Alibaba Cloud Linux 2 ou CentOS 7

  1. Installez 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. Installez 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. Récupérez le mot de passe root initial.

      echo $(PASSWORD=$(sudo grep 'temporary password' /var/log/mysqld.log); PASSWORD=${PASSWORD##* }; echo $PASSWORD)
    2. Définissez un nouveau mot de passe root pour MySQL. Remplacez <oldpwd> par le mot de passe initial et <newpwd> par votre nouveau mot de passe.

      Important

      Le mot de passe doit comporter au moins 8 caractères et inclure des majuscules, des minuscules, des chiffres et des caractères spéciaux.

      sudo mysqladmin -uroot -p'<oldpwd>' password '<newpwd>'
  3. Installez 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. Vérifiez la pile LAMP.

    1. Récupérez l'adresse d'écoute de PHP-FPM.

      sudo grep 'listen =' /etc/php-fpm.d/www.conf
      • Si un chemin de fichier socket est renvoyé, PHP-FPM écoute sur le fichier socket.

      • Si 127.0.0.1:9000 est renvoyé, PHP-FPM écoute sur le port local 9000.

    2. Créez le fichier /etc/httpd/conf.d/php-fpm.conf avec les règles de redirection php-fpm.

      Important

      Si PHP-FPM écoute sur un fichier socket, remplacez proxy:fcgi://127.0.0.1:9000 par proxy:unix:<path>;. Remplacez <path> par le chemin du fichier socket.

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

      sudo systemctl restart httpd
    4. Créez le fichier test.php dans le répertoire /var/www/html/. Remplacez <username> et <password> par vos identifiants 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. Ouvrez l'URL http://<Public-IP-Address-of-ECS-instance>/test.php dans un navigateur. Si le message success s'affiche, la pile LAMP fonctionne correctement.

Ubuntu 20.04 ou version ultérieure

  1. Installez 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. Installez le serveur MySQL.

    sudo apt update -y && sudo apt install -y mysql-server
  3. Définissez le mot de passe root et le plugin d'authentification. Remplacez <newpwd> par votre mot de passe.

    Important

    Par défaut, root utilise le plugin auth_socket et ne possède pas de mot de passe. Appuyez sur Entrée lorsque vous y êtes invité.

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

    Remarque

    Exécutez sudo apt search php pour lister les versions PHP disponibles. Par exemple, pour 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. Vérifiez la pile LAMP.

    1. Récupérez l'adresse d'écoute de PHP-FPM. Remplacez <version> par votre version PHP, par exemple 8.4.

      sudo grep '^listen =' /etc/php/<version>/fpm/pool.d/www.conf
      • Si un chemin de fichier socket est renvoyé, PHP-FPM écoute sur le fichier socket.

      • Si 127.0.0.1:9000 est renvoyé, PHP-FPM écoute sur le port local 9000.

    2. Créez le fichier /etc/apache2/conf-available/php-fpm.conf avec les règles de redirection PHP. Remplacez <listen> par l'adresse d'écoute de PHP-FPM.

      • Si PHP-FPM écoute sur un fichier socket, remplacez <listen> par unix:<path>; et <path> par le chemin du fichier socket.

        Important

        Les fichiers socket nécessitent des permissions en lecture/écriture. Exécutez sudo chmod 666 <path> pour les accorder.

      • Si PHP-FPM écoute sur 127.0.0.1:9000, remplacez <listen> par fcgi://127.0.0.1:9000.

      sudo tee /etc/apache2/conf-available/php-fpm.conf <<-'EOF'
      <FilesMatch \.php$>
          SetHandler "proxy:<listen>"
      </FilesMatch>
      EOF
    3. Créez un lien symbolique pour activer la configuration.

      sudo ln -s /etc/apache2/conf-available/php-fpm.conf /etc/apache2/conf-enabled/
    4. Activez les modules proxy_fcgi et setenvif, puis activez la configuration PHP-FPM.

      sudo a2enmod proxy_fcgi setenvif
      sudo a2enconf php8.4-fpm
    5. Redémarrez Apache.

      sudo systemctl restart apache2
    6. Créez le fichier test.php dans le répertoire /var/www/html/. Remplacez <username> et <password> par vos identifiants 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. Ouvrez l'URL http://<Public-IP-Address-of-ECS-instance>/test.php dans un navigateur. Si le message success s'affiche, la pile LAMP fonctionne correctement.

FAQ

Pourquoi ne puis-je pas accéder à la page test.php ?

Causes possibles :

Le port 80 n'est peut-être pas ouvert dans le groupe de sécurité, le pare-feu système est peut-être activé ou le port 80 est peut-être utilisé par un autre service.

Que faire si je ne peux pas accéder à un service déployé sur une instance ?

Comment autoriser l'accès distant à MySQL ?

Créez un compte non-root pour l'accès distant. Consultez la rubrique Déployer MySQL sur une instance Linux.