All Products
Search
Document Center

Elastic Compute Service:Pasang Stack LAMP secara Manual

Last Updated:Jul 06, 2025

LAMP adalah akronim dari empat komponen utamanya: sistem operasi Linux, server HTTP Apache, sistem manajemen database relasional MySQL, dan bahasa pemrograman PHP. Stack LAMP umumnya digunakan untuk membangun situs web. Dokumen ini menjelaskan cara memasang stack LAMP secara manual pada instance Elastic Compute Service (ECS).

Catatan

Anda dapat mengunjungi Terraform Explorer untuk melihat dan menjalankan kode Terraform, yang memungkinkan Anda membangun lingkungan LAMP secara otomatis untuk instance ECS.

Prasyarat

  • Alamat IP publik telah ditetapkan ke instance ECS, atau alamat IP elastis (EIP) telah dikaitkan dengan instance tersebut. Untuk instruksi mengaktifkan bandwidth publik, lihat Aktifkan bandwidth publik.

  • Aturan masuk telah ditambahkan ke grup keamanan instance ECS untuk membuka port 22 dan 80. Untuk informasi lebih lanjut tentang menambahkan aturan grup keamanan, lihat Tambahkan aturan grup keamanan.

  • Instance ECS memiliki setidaknya 4 GiB memori.

Pasang Stack LAMP

Alibaba Cloud Linux 3 atau CentOS 8

  1. Pasang Apache.

    # Pasang server Apache.
    sudo dnf install -y httpd
    # Secara otomatis mulai server Apache saat instance dimulai.
    sudo systemctl enable httpd
    # Mulai server Apache.
    sudo systemctl start httpd
  2. Pasang MySQL.

    Catatan

    Jika instance Anda menggunakan Alibaba Cloud Linux 3, Anda harus memasang compat-openssl10, yang kompatibel dengan versi pustaka OpenSSL 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
    # Pasang MySQL.
    sudo dnf install -y mysql-server
    # Mulai MySQL dan konfigurasikan MySQL untuk secara otomatis mulai saat startup sistem.
    sudo systemctl start mysqld
    sudo systemctl enable mysqld
    1. Kueri kata sandi awal default pengguna root.

      • Jika instance Anda menggunakan Alibaba Cloud Linux 3, jalankan perintah berikut:

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

    2. Tentukan kata sandi baru untuk pengguna root MySQL. Dalam perintah berikut, ganti <oldpwd> dengan kata sandi awal dan <newpwd> dengan kata sandi baru. Jika instance Anda menggunakan CentOS 8, ganti <oldpwd> dengan string kosong dan tekan tombol Enter untuk melewati ke baris berikutnya saat diminta memasukkan kata sandi.

      Penting

      Kata sandi harus minimal delapan karakter, termasuk setidaknya satu huruf besar, satu huruf kecil, satu digit, dan satu karakter khusus.

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

    Catatan

    Contoh ini menggunakan PHP 8.4. Jika Anda memerlukan versi PHP lain, ubah nama modul sesuai dengan versi PHP yang ingin dipasang. Misalnya, jika Anda ingin memasang PHP 8.1, ubah nama modul menjadi php:remi-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
    # Pasang PHP, PHP FastCGI Process Manager (PHP-FPM), dan ekstensi MySQL.
    sudo dnf install -y php php-fpm php-mysqlnd
    # Mulai PHP-FPM dan konfigurasikan PHP-FPM untuk secara otomatis mulai saat startup sistem.
    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm
  4. Verifikasi stack LAMP.

    1. Kueri alamat mendengarkan default dari PHP-FPM dalam file konfigurasi.

      sudo grep 'listen =' /etc/php-fpm.d/www.conf
    2. Buat file konfigurasi /etc/httpd/conf.d/php-fpm.conf dan konfigurasikan aturan php-fpm di dalamnya.

      Penting

      Jika alamat mendengarkan PHP-FPM adalah 127.0.0.1:9000, tetapkan parameter SetHandler ke 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. Mulai ulang httpd agar konfigurasi diterapkan.

      sudo systemctl restart httpd
    4. Buat file test.php di direktori /var/www/html/ dan tambahkan konten berikut ke file tersebut. Ganti <username> dengan nama pengguna MySQL dan <password> dengan kata sandi yang sesuai.

      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("gagal: " . $conn->connect_error);
      }
      echo "sukses\n";
      ?>
      EOF
    5. Masukkan http://<Public IP address of the ECS instance>/test.php di bilah alamat browser web di mesin lokal Anda. Jika sukses dikembalikan, Anda terhubung ke MySQL menggunakan proxy PHP.

Alibaba Cloud Linux 2 atau CentOS 7

  1. Pasang Apache.

    # Pasang server Apache.
    sudo yum install -y httpd
    # Secara otomatis mulai server Apache saat instance dimulai.
    sudo systemctl enable httpd
    # Mulai server Apache.
    sudo systemctl start httpd
  2. Pasang MySQL.

    # Tambahkan repositori resmi MySQL.
    sudo rpm -Uvh https://repo.mysql.com/mysql84-community-release-el7-1.noarch.rpm
    # Pasang MySQL.
    sudo yum install -y mysql-server
    # Mulai MySQL dan konfigurasikan MySQL untuk secara otomatis mulai saat startup sistem.
    sudo systemctl start mysqld
    sudo systemctl enable mysqld
    1. Kueri kata sandi awal default pengguna root.

      echo $(PASSWORD=$(sudo grep 'temporary password' /var/log/mysqld.log); PASSWORD=${PASSWORD##* }; echo $PASSWORD)
    2. Tentukan kata sandi baru untuk pengguna root MySQL. Dalam perintah berikut, ganti <oldpwd> dengan kata sandi awal dan <newpwd> dengan kata sandi baru.

      Penting

      Kata sandi harus minimal delapan karakter, termasuk setidaknya satu huruf besar, satu huruf kecil, satu digit, dan satu karakter khusus.

      sudo mysqladmin -uroot -p'<oldpwd>' password '<newpwd>'
  3. Pasang 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
    # Pasang PHP, PHP-FPM, dan ekstensi MySQL.
    sudo yum install -y php php-fpm php-mysqlnd
    # Mulai PHP-FPM dan konfigurasikan PHP-FPM untuk secara otomatis mulai saat startup sistem.
    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm
  4. Verifikasi stack LAMP.

    1. Kueri alamat mendengarkan default dari PHP-FPM dalam file konfigurasi.

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

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

    2. Buat file konfigurasi /etc/httpd/conf.d/php-fpm.conf dan konfigurasikan aturan php-fpm di dalamnya.

      Penting

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

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

      sudo systemctl restart httpd
    4. Buat file test.php di direktori /var/www/html/ dan tambahkan konten berikut ke file tersebut. Ganti <username> dengan nama pengguna MySQL dan <password> dengan kata sandi yang sesuai.

      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("gagal: " . $conn->connect_error);
      }
      echo "sukses\n";
      ?>
      EOF
    5. Masukkan http://<Public IP address of the ECS instance>/test.php di bilah alamat browser web di mesin lokal Anda. Jika sukses dikembalikan, Anda terhubung ke MySQL menggunakan proxy PHP.

Ubuntu 20.04 atau lebih baru

  1. Pasang Apache.

    # Pasang server Apache.
    sudo apt update -y && sudo apt install -y apache2
    # Secara otomatis mulai server Apache saat instance dimulai.
    sudo systemctl enable apache2
    # Mulai server Apache.
    sudo systemctl start apache2
  2. Perbarui daftar paket perangkat lunak dan pasang server MySQL.

    sudo apt update -y && sudo apt install -y mysql-server
  3. Ubah kata sandi dan plug-in autentikasi identitas yang digunakan oleh pengguna root dari server MySQL. Ganti <newpwd> dalam perintah berikut dengan kata sandi aktual.

    Penting

    Plug-in autentikasi identitas default yang digunakan oleh pengguna root adalah auth_socket. Setelah perintah dijalankan, Anda akan diminta untuk memasukkan kata sandi. Tekan tombol Enter untuk melewati ke baris berikutnya.

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

    Catatan

    Jalankan perintah sudo apt search php untuk menanyakan semua versi PHP yang dapat dipasang. Jika Anda ingin memasang versi PHP yang berbeda, ganti nomor versi dalam perintah berikut dengan nomor versi aktual. Misalnya, jika Anda ingin memasang PHP 8.1, jalankan perintah sudo apt install -y php8.1 php8.1-fpm php8.1-mysql.

    # Pasang 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
    # Pasang 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 stack LAMP.

    1. Kueri alamat mendengarkan default dari PHP-FPM dalam file konfigurasi. Ganti <version> dengan versi PHP Anda yang sebenarnya. Misalnya, jika Anda menggunakan PHP 8.4, ganti <version> dengan 8.4.

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

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

    2. Buat file konfigurasi /etc/apache2/conf-available/php-fpm.conf dan konfigurasikan aturan pengalihan PHP di dalamnya. Ganti <listen> dengan alamat mendengarkan sebenarnya dari PHP-FPM.

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

        Penting

        Untuk mendengarkan file socket, akun Anda harus memiliki izin baca dan tulis pada file socket. Anda dapat menjalankan perintah sudo chmod 666 <path> untuk memberikan izin di atas. Ganti <path> dengan alamat sebenarnya dari file socket.

      • Jika 127.0.0.1:9000 digunakan sebagai alamat mendengarkan PHP-FPM, 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 untuk memungkinkan Apache meneruskan permintaan PHP ke PHP-FPM. Kemudian, aktifkan file konfigurasi PHP-FPM.

      sudo a2enmod proxy_fcgi setenvif
      sudo a2enconf php8.4-fpm
    5. Mulai ulang httpd agar konfigurasi diterapkan.

      sudo systemctl restart apache2
    6. Buat file test.php di direktori /var/www/html/ dan tambahkan konten berikut ke file tersebut. Ganti <username> dengan nama pengguna MySQL dan <password> dengan kata sandi yang sesuai.

      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("gagal: " . $conn->connect_error);
      }
      echo "sukses\n";
      ?>
      EOF
    7. Masukkan http://<Public IP address of the ECS instance>/test.php di bilah alamat browser web di mesin lokal Anda. Jika sukses dikembalikan, Anda terhubung ke MySQL menggunakan proxy PHP.

FAQ

Mengapa saya tidak dapat mengakses halaman test.php menggunakan alamat IP publik instance ECS tempat halaman tersebut di-host?

Penyebab dan solusi yang mungkin:

Port 80 belum dibuka dalam grup keamanan instance ECS, firewall sistem diaktifkan pada instance ECS, atau port 80 digunakan oleh layanan lain.

Untuk informasi tentang cara menyelesaikan masalah berdasarkan penyebab di atas, lihat Apa yang harus saya lakukan jika saya tidak dapat mengakses layanan yang diterapkan pada instance?

Bagaimana cara mengizinkan akses jarak jauh ke MySQL?

Buat akun non-root dan izinkan akses jarak jauh ke MySQL menggunakan akun tersebut. Untuk informasi lebih lanjut, lihat Terapkan MySQL pada instance Linux.