All Products
Search
Document Center

Elastic Compute Service:Deploy LAMP stack secara manual

Last Updated:Aug 27, 2026

Instal dan konfigurasikan Linux, Apache, MySQL, dan PHP pada sebuah Instance ECS untuk menghosting aplikasi web.

Catatan

Anda dapat menggunakan Terraform Explorer untuk membangun lingkungan LAMP secara otomatis.

Prasyarat

  • Sebuah Alamat IP publik secara otomatis ditetapkan ke Instance ECS. Atau, sebuah elastic IP address (EIP) dikaitkan dengan Instance ECS. Untuk petunjuk cara mengaktifkan bandwidth publik, lihat Enable public bandwidth.

  • Aturan inbound security group rules mengizinkan lalu lintas pada Port 22 dan 80 untuk instance ECS.

  • Instance ECS memiliki memori minimal 4 GiB.

Deploy LAMP stack

Alibaba Cloud Linux 3 atau CentOS 8

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

    Catatan

    Pada Alibaba Cloud Linux 3, instal compat-openssl10 untuk kompatibilitas dengan library OpenSSL versi sebelumnya.

    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. Kueri password root awal.

      • Pada Alibaba Cloud Linux 3:

        echo $(PASSWORD=$(sudo grep 'temporary password' /var/log/mysqld.log); PASSWORD=${PASSWORD##* }; echo $PASSWORD)
      • Pada CentOS 8, pengguna root tidak memiliki password awal.

    2. Tetapkan password root MySQL baru. Ganti <oldpwd> dengan password awal dan <newpwd> dengan password baru Anda. Pada CentOS 8, biarkan <oldpwd> kosong.

      Penting

      Password harus terdiri dari minimal 8 karakter dan mencakup huruf kapital, huruf kecil, angka, serta karakter khusus.

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

    Catatan

    Contoh ini menggunakan PHP 8.4. Untuk versi lain, ubah nama modulnya (misalnya, php:remi-8.1 untuk 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. Verifikasi LAMP stack.

    1. Kueri alamat listening PHP-FPM.

      sudo grep 'listen =' /etc/php-fpm.d/www.conf
    2. Buat /etc/httpd/conf.d/php-fpm.conf dengan aturan pengalihan php-fpm.

      Penting

      Jika PHP-FPM mendengarkan pada 127.0.0.1:9000, setel SetHandler menjadi 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. Restart httpd.

      sudo systemctl restart httpd
    4. Buat test.php di /var/www/html/. Ganti <username> dan <password> dengan kredensial MySQL Anda.

      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. Buka http://<Public-IP-Address-of-ECS-instance>/test.php di browser. Jika muncul success, berarti LAMP stack berfungsi dengan baik.

Alibaba Cloud Linux 2 atau CentOS 7

  1. Instal 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. Instal 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. Kueri password root awal.

      echo $(PASSWORD=$(sudo grep 'temporary password' /var/log/mysqld.log); PASSWORD=${PASSWORD##* }; echo $PASSWORD)
    2. Tetapkan password root MySQL baru. Ganti <oldpwd> dengan password awal dan <newpwd> dengan password baru Anda.

      Penting

      Password harus terdiri dari minimal 8 karakter dan mencakup huruf kapital, huruf kecil, angka, serta karakter khusus.

      sudo mysqladmin -uroot -p'<oldpwd>' password '<newpwd>'
  3. Instal 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. Verifikasi LAMP stack.

    1. Kueri alamat listening PHP-FPM.

      sudo grep 'listen =' /etc/php-fpm.d/www.conf
      • Jika dikembalikan path file socket, PHP-FPM mendengarkan pada file socket tersebut.

      • Jika dikembalikan 127.0.0.1:9000, PHP-FPM mendengarkan pada port lokal 9000.

    2. Buat /etc/httpd/conf.d/php-fpm.conf dengan aturan pengalihan php-fpm.

      Penting

      Jika PHP-FPM mendengarkan pada file socket, ubah proxy:fcgi://127.0.0.1:9000 menjadi proxy:unix:<path>;. Ganti <path> dengan path file socket.

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

      sudo systemctl restart httpd
    4. Buat test.php di /var/www/html/. Ganti <username> dan <password> dengan kredensial MySQL Anda.

      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. Buka http://<Public-IP-Address-of-ECS-instance>/test.php di browser. Jika muncul success, berarti LAMP stack berfungsi dengan baik.

Ubuntu 20.04 atau versi lebih baru

  1. Instal 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. Instal server MySQL.

    sudo apt update -y && sudo apt install -y mysql-server
  3. Tetapkan password dan plugin autentikasi untuk root. Ganti <newpwd> dengan password Anda.

    Penting

    Secara default, root menggunakan plugin auth_socket dan tidak memiliki password. Tekan Enter saat diminta.

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

    Catatan

    Jalankan sudo apt search php untuk menampilkan daftar versi PHP yang tersedia. Misalnya, untuk 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. Verifikasi LAMP stack.

    1. Kueri alamat listening PHP-FPM. Ganti <version> dengan versi PHP Anda, misalnya 8.4.

      sudo grep '^listen =' /etc/php/<version>/fpm/pool.d/www.conf
      • Jika dikembalikan path file socket, PHP-FPM mendengarkan pada file socket tersebut.

      • Jika dikembalikan 127.0.0.1:9000, PHP-FPM mendengarkan pada port lokal 9000.

    2. Buat /etc/apache2/conf-available/php-fpm.conf dengan aturan pengalihan PHP. Ganti <listen> dengan alamat listening PHP-FPM.

      • Jika PHP-FPM mendengarkan pada file socket, ganti <listen> dengan unix:<path>; dan <path> dengan path file socket.

        Penting

        File socket memerlukan izin baca/tulis. Jalankan sudo chmod 666 <path> untuk memberikan izin tersebut.

      • Jika PHP-FPM mendengarkan pada 127.0.0.1:9000, ganti <listen> dengan fcgi://127.0.0.1:9000.

      sudo tee /etc/apache2/conf-available/php-fpm.conf <<-'EOF'
      <FilesMatch \.php$>
          SetHandler "proxy:<listen>"
      </FilesMatch>
      EOF
    3. Buat tautan simbolik untuk mengaktifkan konfigurasi.

      sudo ln -s /etc/apache2/conf-available/php-fpm.conf /etc/apache2/conf-enabled/
    4. Aktifkan modul proxy_fcgi dan setenvif, lalu aktifkan konfigurasi PHP-FPM.

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

      sudo systemctl restart apache2
    6. Buat test.php di /var/www/html/. Ganti <username> dan <password> dengan kredensial MySQL Anda.

      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. Buka http://<Public-IP-Address-of-ECS-instance>/test.php di browser. Jika muncul success, berarti LAMP stack berfungsi dengan baik.

FAQ

Mengapa saya tidak bisa mengakses halaman test.php?

Kemungkinan penyebab:

Port 80 mungkin belum dibuka di security group, firewall sistem mungkin diaktifkan, atau Port 80 sedang digunakan oleh layanan lain.

Apa yang harus saya lakukan jika tidak dapat mengakses layanan yang di-deploy pada instans?

Bagaimana cara mengizinkan akses remote ke MySQL?

Buat akun non-root untuk akses remote. Deploy MySQL pada instans Linux.