All Products
Search
Document Center

Elastic Compute Service:Deploy LAMP stack secara manual

Last Updated:Apr 28, 2026

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

Catatan

Gunakan Terraform Explorer untuk membangun lingkungan LAMP secara otomatis pada Instance ECS.

Prasyarat

  • Alamat IP publik ditetapkan secara otomatis ke Instance ECS atau alamat IP elastis (EIP) dikaitkan dengan Instance ECS. Untuk petunjuk cara mengaktifkan bandwidth publik, lihat Aktifkan bandwidth publik.

  • Aturan inbound security group ditambahkan untuk membuka Port 22 dan 80 pada instans ECS.

  • Instans ECS memiliki memori minimal 4 GiB.

Menerapkan stack LAMP

Alibaba Cloud Linux 3 atau CentOS 8

  1. Instal Apache.

    # Instal server Apache.
    sudo dnf install -y httpd
    # Mulai server Apache secara otomatis saat startup instans.
    sudo systemctl enable httpd
    # Jalankan server Apache.
    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
    # Tambahkan repositori resmi MySQL.
    sudo rpm -Uvh https://repo.mysql.com/mysql84-community-release-el8-1.noarch.rpm
    # Instal MySQL.
    sudo dnf install -y mysql-server
    # Jalankan MySQL dan konfigurasikan agar MySQL otomatis berjalan saat startup sistem.
    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. Pada CentOS 8, biarkan <oldpwd> kosong dan tekan Enter saat diminta.

      Penting

      Password harus terdiri dari minimal delapan karakter dan mengandung setidaknya satu huruf kapital, satu huruf kecil, satu angka, dan satu karakter khusus.

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

    Catatan

    Contoh ini menggunakan PHP 8.4. Untuk menginstal versi berbeda, ubah nama modul yang sesuai. Misalnya, gunakan php:remi-8.1 untuk PHP 8.1.

    # Tentukan repositori remi dan aktifkan modul php:remi-8.4.
    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
    # Instal PHP, PHP FastCGI Process Manager (PHP-FPM), dan ekstensi MySQL.
    sudo dnf install -y php php-fpm php-mysqlnd
    # Jalankan PHP-FPM dan konfigurasikan agar PHP-FPM otomatis berjalan saat startup sistem.
    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 file /etc/httpd/conf.d/php-fpm.conf dan konfigurasikan aturan pengalihan php-fpm.

      Penting

      Jika PHP-FPM mendengarkan pada 127.0.0.1:9000, atur 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 file 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 respons success dikembalikan, LAMP stack berfungsi dengan benar.

Alibaba Cloud Linux 2 atau CentOS 7

  1. Instal Apache.

    # Instal server Apache.
    sudo yum install -y httpd
    # Mulai server Apache secara otomatis saat startup instans.
    sudo systemctl enable httpd
    # Jalankan server Apache.
    sudo systemctl start httpd
  2. Instal MySQL.

    # Tambahkan repositori resmi MySQL.
    sudo rpm -Uvh https://repo.mysql.com/mysql84-community-release-el7-1.noarch.rpm
    # Instal MySQL.
    sudo yum install -y mysql-server
    # Jalankan MySQL dan konfigurasikan agar MySQL otomatis berjalan saat startup sistem.
    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.

      Penting

      Password harus terdiri dari minimal delapan karakter dan mengandung setidaknya satu huruf kapital, satu huruf kecil, satu angka, dan satu karakter khusus.

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

    # Tentukan repositori remi dan aktifkan modul remi-php83.
    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
    # Instal PHP, PHP-FPM, dan ekstensi MySQL.
    sudo yum install -y php php-fpm php-mysqlnd
    # Jalankan PHP-FPM dan konfigurasikan agar PHP-FPM otomatis berjalan saat startup sistem.
    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 jalur file socket dikembalikan, PHP-FPM mendengarkan pada file socket tersebut.

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

    2. Buat file /etc/httpd/conf.d/php-fpm.conf dan konfigurasikan 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 jalur 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 file 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 respons success dikembalikan, LAMP stack berfungsi dengan benar.

Ubuntu 20.04 atau versi lebih baru

  1. Instal Apache.

    # Instal server Apache.
    sudo apt update -y && sudo apt install -y apache2
    # Mulai server Apache secara otomatis saat startup instans.
    sudo systemctl enable apache2
    # Jalankan server Apache.
    sudo systemctl start apache2
  2. Instal server MySQL.

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

    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

    Gunakan sudo apt search php untuk menampilkan daftar versi PHP yang tersedia. Untuk menginstal versi berbeda, ganti nomor versi yang sesuai. Misalnya, untuk PHP 8.1: sudo apt install -y php8.1 php8.1-fpm php8.1-mysql.

    # Instal paket software-properties-common dan tambahkan repositori Personal Package Archive (PPA) ppa:ondrej/php.
    sudo apt update && sudo apt install -y software-properties-common && sudo add-apt-repository -y ppa:ondrej/php
    # Instal PHP 8.4 dan komponen terkait, termasuk PHP-FPM dan ekstensi MySQL.
    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 jalur file socket dikembalikan, PHP-FPM mendengarkan pada file socket tersebut.

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

    2. Buat file /etc/apache2/conf-available/php-fpm.conf dan konfigurasikan 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 jalur file socket.

        Penting

        Mendengarkan pada file socket memerlukan izin baca dan tulis. Jalankan sudo chmod 666 <path> untuk memberikan izin tersebut. Ganti <path> dengan jalur file socket.

      • 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 file konfigurasi.

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

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

      sudo systemctl restart apache2
    6. Buat file 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 respons success dikembalikan, LAMP stack berfungsi dengan benar.

FAQ

Mengapa saya tidak dapat mengakses halaman test.php?

Penyebab dan solusi yang mungkin:

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

Lihat 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. Lihat Deploy MySQL pada instans Linux.