Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

LAMPtutorial untuk AWS Cloud9

Mode fokus
LAMPtutorial untuk AWS Cloud9 - AWS Cloud9

AWS Cloud9 tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS Cloud9 dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AWS Cloud9 tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS Cloud9 dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tutorial ini memungkinkan Anda untuk mengatur dan menjalankan LAMP (Linux, Apache HTTPPeladen, MySQL, dan PHP) dalam lingkungan AWS Cloud9 pembangunan.

Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya untuk Anda Akun AWS. Ini termasuk kemungkinan biaya untuk Layanan AWS seperti Amazon Elastic Compute Cloud (AmazonEC2). Untuk informasi selengkapnya, lihat EC2Harga Amazon.

Prasyarat

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:

  • Anda harus memiliki lingkungan AWS Cloud9 EC2 pengembangan yang ada. Contoh ini mengasumsikan bahwa Anda sudah memiliki EC2 lingkungan yang terhubung ke EC2 instans Amazon yang menjalankan Amazon Linux atau Ubuntu Peladen. Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat Menciptakan lingkungan di AWS Cloud9.

  • Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka. Ketika Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat Membuka lingkungan di AWS Cloud9.

Langkah 1: Pasang alatnya

Dalam langkah ini, Anda memasang alat-alat berikut:

  • Apache HTTPServer, host server web.

  • PHP, bahasa scripting yang sangat cocok untuk pengembangan web dan dapat disematkan ke dalamHTML.

  • MySQL, sistem manajemen basis data.

Anda kemudian menyelesaikan langkah ini dengan memulai Apache HTTPServer dan kemudian MySQL.

  1. Pastikan pembaruan keamanan terbaru dan perbaikan bug telah terpasang pada instans. Untuk melakukan ini, dalam sesi terminal di AWS Cloud9 IDE, jalankan yum updatefor (Amazon Linux) atau apt updateuntuk (Ubuntu Server) perintah. (Untuk memulai sesi terminal baru, pada bilah menu, pilih Jendela, Terminal Baru.)

    Untuk Amazon Linux:

    sudo yum -y update

    Untuk Ubuntu Peladen:

    sudo apt -y update
  2. Periksa apakah Apache HTTPServer sudah diinstal. Untuk melakukan ini, jalankan httpd -v(untuk Amazon Linux) atau apache2 -v(untuk Ubuntu Server) perintah.

    Jika berhasil, output berisi Apache HTTPNomor versi server.

    Jika Anda melihat kesalahan, maka instal Apache HTTPServer dengan menjalankan installperintah.

    Untuk Amazon Linux:

    sudo yum install -y httpd24

    Untuk Ubuntu Peladen:

    sudo apt install -y apache2
  3. Konfirmasikan apakah PHP sudah diinstal dengan menjalankan php -vperintah.

    Jika berhasil, output berisi nomor PHP versi.

    Jika Anda melihat kesalahan, maka instal PHP dengan menjalankan installperintah.

    Untuk Amazon Linux:

    sudo yum install -y php56

    Untuk Ubuntu Peladen:

    sudo apt install -y php libapache2-mod-php php-xml
  4. Konfirmasikan apakah MySQL sudah diinstal dengan menjalankan mysql --versionperintah.

    Jika berhasil, output berisi MySQL nomor versi.

    Jika Anda melihat kesalahan, maka instal MySQL dengan menjalankan installperintah.

    Untuk Amazon Linux:

    sudo yum install -y mysql-server

    Untuk Ubuntu Peladen:

    sudo apt install -y mysql-server
  5. Setelah Anda menginstal Apache HTTPPeladen, PHP, dan MySQL, mulai Apache HTTPServer, dan kemudian konfirmasikan sudah dimulai, dengan menjalankan perintah berikut.

    Untuk Amazon Linux (Anda mungkin perlu menjalankan perintah ini dua kali):

    sudo service httpd start && sudo service httpd status

    Untuk Ubuntu Server (untuk kembali ke command prompt, tekanq):

    sudo service apache2 start && sudo service apache2 status
  6. Mulai MySQL, dan kemudian konfirmasikan sudah dimulai, dengan menjalankan perintah berikut.

    Untuk Amazon Linux:

    sudo service mysqld start && sudo service mysqld status

    Untuk Ubuntu Server (untuk kembali ke command prompt, tekanq):

    sudo service mysql start && sudo service mysql status

Langkah 2: Mengatur MySQL

Pada langkah ini, Anda mengatur MySQL untuk mengikuti MySQL praktik terbaik keamanan. Praktik terbaik keamanan ini mencakup pengaturan kata sandi untuk akun root dan menghapus akun root yang dapat diakses dari luar host lokal. Praktik terbaik lainnya yang harus diperhatikan adalah menghapus pengguna anonim, menghapus database pengujian, dan menghapus hak istimewa yang memungkinkan siapa pun untuk mengakses database dengan nama yang dimulai dengan. test_

Anda kemudian menyelesaikan langkah ini dengan mempraktikkan awal dan kemudian keluar dari MySQL klien baris perintah.

  1. Implementasikan MySQL praktik terbaik keamanan untuk MySQL instalasi dengan menjalankan perintah berikut dalam sesi terminal di AWS Cloud9 IDE.

    sudo mysql_secure_installation
  2. Saat diminta, jawablah pertanyaan berikut seperti yang ditentukan.

    Untuk Amazon Linux:

    1. Masukkan kata sandi saat ini untuk root (masukkan untuk tidak ada) – Tekan Enter (tanpa kata sandi).

    2. Atur kata sandi root – Ketik Y, lalu tekan Enter.

    3. Kata sandi baru – Ketik kata sandi, lalu tekan Enter.

    4. Masukkan kembali kata sandi baru – Ketikkan kata sandi lagi, lalu tekan Enter. (Pastikan untuk menyimpan kata sandi di lokasi yang aman untuk digunakan nanti.)

    5. Hapus pengguna anonim – Ketik Y, lalu tekan Enter.

    6. Larang login root dari jarak jauh – Ketik Y, lalu tekan Enter.

    7. Hapus basis data pengujian dan akses ke sana – Ketik Y, lalu tekan Enter.

    8. Muat ulang tabel hak istimewa sekarang – Ketik Y, lalu tekan Enter.

    Untuk Ubuntu Peladen:

    1. Apakah Anda ingin mengatur VALIDATE PASSWORD plugin — Entery, dan kemudian tekanEnter.

    2. Ada tiga tingkat kebijakan validasi kata sandi - Enter0,1, atau2, dan kemudian tekanEnter.

    3. Kata sandi baru — Masukkan kata sandi, lalu tekanEnter.

    4. Masukkan kembali kata sandi baru — Masukkan kata sandi lagi, lalu tekanEnter. Pastikan Anda menyimpan kata sandi di lokasi yang aman untuk digunakan nanti.

    5. Apakah Anda ingin melanjutkan dengan kata sandi yang disediakan — Entery, lalu tekanEnter.

    6. Hapus pengguna anonim — Entery, lalu tekanEnter.

    7. Larang login root dari jarak jauh — Entery, lalu tekan. Enter

    8. Hapus database uji dan akses ke sana — Entery, lalu tekanEnter.

    9. Muat ulang tabel hak istimewa sekarang — Entery, lalu tekan. Enter

  3. Untuk berinteraksi langsung dengan MySQL, mulai MySQL command line client sebagai root user dengan menjalankan perintah berikut. Saat diminta, ketik kata sandi pengguna root yang Anda atur sebelumnya, lalu tekan Enter. Prompt berubah menjadi mysql> saat Anda berada di MySQL klien baris perintah.

    sudo mysql -uroot -p
  4. Untuk keluar dari MySQL command line client, jalankan perintah berikut. Prompt berubah kembali ke$.

    exit;

Langkah 3: Mengatur situs web

Pada langkah ini, Anda mengatur root situs web default untuk Apache HTTPServer dengan pemilik yang direkomendasikan dan izin akses. Anda kemudian membuat PHPhalaman web berbasis dalam root situs web default itu.

Anda kemudian mengaktifkan lalu lintas web masuk untuk melihat halaman web tersebut dengan menyiapkan grup keamanan di Amazon EC2 dan daftar kontrol akses jaringan (jaringanACL) di Amazon Virtual Private Cloud (AmazonVPC) yang terkait dengan lingkungan iniEC2. Setiap EC2 lingkungan harus dikaitkan dengan grup keamanan di Amazon EC2 dan jaringan ACL di AmazonVPC. Namun, meskipun jaringan default ACL dalam Akun AWS memungkinkan semua lalu lintas masuk dan keluar untuk lingkungan, grup keamanan default hanya mengizinkan lalu lintas masuk menggunakan SSH lebih dari port 22. Untuk informasi selengkapnya, lihat VPCpengaturan untuk Lingkungan AWS Cloud9 Pengembangan.

Anda kemudian menyelesaikan langkah ini dengan berhasil melihat halaman web dari luar. AWS Cloud9 IDE

  1. Siapkan root situs web default untuk Apache HTTPServer (/var/www/html) dengan pemilik yang direkomendasikan dan izin akses. Untuk melakukan ini, jalankan enam perintah berikut, satu per satu dalam urutan berikut, dalam sesi terminal di AWS Cloud9 IDE. Untuk memahami apa yang dilakukan setiap perintah, baca informasi setelah karakter # setelah setiap perintah.

    Untuk Amazon Linux:

    sudo groupadd web-content # Create a group named web-content. sudo usermod -G web-content -a ec2-user # Add the user ec2-user (your default user for this environment) to the group web-content. sudo usermod -G web-content -a apache # Add the user apache (Apache HTTP Server) to the group web-content. sudo chown -R ec2-user:web-content /var/www/html # Change the owner of /var/www/html and its files to user ec2-user and group web-content. sudo find /var/www/html -type f -exec chmod u=rw,g=rx,o=rx {} \; # Change all file permissions within /var/www/html to user read/write, group read-only, and others read/execute. sudo find /var/www/html -type d -exec chmod u=rwx,g=rx,o=rx {} \; # Change /var/www/html directory permissions to user read/write/execute, group read/execute, and others read/execute.

    Untuk Ubuntu Peladen:

    sudo groupadd web-content # Create a group named web-content. sudo usermod -G web-content -a ubuntu # Add the user ubuntu (your default user for this environment) to the group web-content. sudo usermod -G web-content -a www-data # Add the user www-data (Apache HTTP Server) to the group web-content. sudo chown -R ubuntu:web-content /var/www/html # Change the owner of /var/www/html and its files to user ubuntu and group web-content. sudo find /var/www/html -type f -exec chmod u=rw,g=rx,o=rx {} \; # Change all file permissions within /var/www/html to user read/write, group read-only, and others read/execute. sudo find /var/www/html -type d -exec chmod u=rwx,g=rx,o=rx {} \; # Change /var/www/html directory permissions to user read/write/execute, group read/execute, and others read/execute.
  2. Buat PHPhalaman web berbasis yang dinamai index.php dalam folder root situs web default untuk Apache HTTPServer (yaitu/var/www/html) dengan menjalankan perintah berikut.

    Untuk Amazon Linux:

    sudo touch /var/www/html/index.php && sudo chown -R ec2-user:web-content /var/www/html/index.php && sudo chmod u=rw,g=rx,o=rx /var/www/html/index.php && sudo printf '%s\n%s\n%s' '<?php' ' phpinfo();' '?>' >> /var/www/html/index.php

    Perintah sebelumnya untuk Amazon Linux juga mengubah pemilik file menjadiec2-user, mengubah grup file menjadiweb-content, dan mengubah izin file read/write for the user, and read/execute untuk grup dan lainnya.

    Untuk Ubuntu Peladen:

    sudo touch /var/www/html/index.php && sudo chown -R ubuntu:web-content /var/www/html/index.php && sudo chmod u=rw,g=rx,o=rx /var/www/html/index.php && sudo printf '%s\n%s\n%s' '<?php' ' phpinfo();' '?>' >> /var/www/html/index.php

    Perintah sebelumnya untuk Ubuntu Server juga mengubah pemilik file menjadiubuntu, mengubah grup file menjadiweb-content, dan mengubah izin file read/write for the user, and read/execute untuk grup dan lainnya.

    Jika berhasil, perintah sebelumnya membuat file index.php dengan konten berikut.

    <?php phpinfo(); ?>
  3. Aktifkan lalu lintas web masuk melalui port 80 untuk melihat halaman web baru dengan menyiapkan jaringan di ACL Amazon VPC dan grup keamanan Amazon EC2 yang terkait dengan lingkungan iniEC2. Untuk melakukannya, jalankan delapan perintah berikut, satu per satu dalam urutan berikut. Untuk memahami apa yang dilakukan setiap perintah, baca informasi setelah karakter # untuk setiap perintah.

    penting

    Menjalankan perintah berikut memungkinkan lalu lintas web masuk melalui port 80 untuk semua EC2 lingkungan dan EC2 instans Amazon yang terkait dengan grup keamanan dan jaringan ACL untuk lingkungan ini. Hal ini dapat mengakibatkan secara tak terduga memungkinkan lalu lintas web masuk melalui port 80 untuk lingkungan EC2 dan EC2 contoh Amazon selain yang satu ini.

    catatan

    Perintah kedua hingga keempat berikut memungkinkan grup keamanan untuk mengizinkan lalu lintas web masuk melalui port 80. Jika Anda memiliki grup keamanan default, yang hanya memungkinkan SSH lalu lintas masuk melalui port 22, maka Anda harus menjalankan perintah pertama diikuti oleh perintah kedua hingga keempat ini. Namun, jika Anda memiliki grup keamanan khusus yang sudah memungkinkan lalu lintas web masuk melalui port 80, Anda dapat melewati menjalankan perintah tersebut.

    Perintah kelima hingga kedelapan berikut memungkinkan jaringan ACL untuk memungkinkan lalu lintas web masuk melalui port 80. Jika Anda memiliki jaringan defaultACL, yang sudah memungkinkan semua lalu lintas masuk ke semua port, maka Anda dapat dengan aman melewati menjalankan perintah tersebut. Namun, misalkan Anda memiliki jaringan khusus ACL yang tidak mengizinkan lalu lintas web masuk melalui port 80. Kemudian, jalankan perintah pertama diikuti oleh perintah kelima hingga kedelapan ini.

    MY_INSTANCE_ID=$(curl http://169.254.169.254/latest/meta-data/instance-id) # Get the ID of the instance for the environment, and store it temporarily. MY_SECURITY_GROUP_ID=$(aws ec2 describe-instances --instance-id $MY_INSTANCE_ID --query 'Reservations[].Instances[0].SecurityGroups[0].GroupId' --output text) # Get the ID of the security group associated with the instance, and store it temporarily. aws ec2 authorize-security-group-ingress --group-id $MY_SECURITY_GROUP_ID --protocol tcp --cidr 0.0.0.0/0 --port 80 # Add an inbound rule to the security group to allow all incoming IPv4-based traffic over port 80. aws ec2 authorize-security-group-ingress --group-id $MY_SECURITY_GROUP_ID --ip-permissions IpProtocol=tcp,Ipv6Ranges='[{CidrIpv6=::/0}]',FromPort=80,ToPort=80 # Add an inbound rule to the security group to allow all incoming IPv6-based traffic over port 80. MY_SUBNET_ID=$(aws ec2 describe-instances --instance-id $MY_INSTANCE_ID --query 'Reservations[].Instances[0].SubnetId' --output text) # Get the ID of the subnet associated with the instance, and store it temporarily. MY_NETWORK_ACL_ID=$(aws ec2 describe-network-acls --filters Name=association.subnet-id,Values=$MY_SUBNET_ID --query 'NetworkAcls[].Associations[0].NetworkAclId' --output text) # Get the ID of the network ACL associated with the subnet, and store it temporarily. aws ec2 create-network-acl-entry --network-acl-id $MY_NETWORK_ACL_ID --ingress --protocol tcp --rule-action allow --rule-number 10000 --cidr-block 0.0.0.0/0 --port-range From=80,To=80 # Add an inbound rule to the network ACL to allow all IPv4-based traffic over port 80. Advanced users: change this suggested rule number as desired. aws ec2 create-network-acl-entry --network-acl-id $MY_NETWORK_ACL_ID --ingress --protocol tcp --rule-action allow --rule-number 10100 --ipv6-cidr-block ::/0 --port-range From=80,To=80 # Add an inbound rule to the network ACL to allow all IPv6-based traffic over port 80. Advanced users: change this suggested rule number as desired.
  4. Dapatkan URL ke index.php file dalam root server web. Untuk melakukan ini, jalankan perintah berikut, dan gunakan tab browser web baru atau browser web yang berbeda terpisah dari AWS Cloud9 IDE untuk pergi ke URL yang ditampilkan. Jika berhasil, halaman web menampilkan informasi tentang Apache HTTPPeladen, MySQL, PHP, dan pengaturan terkait lainnya.

    MY_PUBLIC_IP=$(curl http://169.254.169.254/latest/meta-data/public-ipv4) && echo http://$MY_PUBLIC_IP/index.php # Get the URL to the index.php file within the web server root.

Langkah 4: Membersihkan

Misalkan Anda ingin tetap menggunakan lingkungan ini tetapi Anda ingin menonaktifkan lalu lintas web masuk melalui port 80. Kemudian, jalankan delapan perintah berikut, satu per satu dalam urutan berikut, untuk menghapus peraturan lalu lintas masuk yang sesuai yang Anda tetapkan sebelumnya di grup keamanan dan jaringan ACL yang terkait dengan lingkungan. Untuk memahami apa yang dilakukan setiap perintah, baca informasi setelah karakter # untuk setiap perintah.

penting

Menjalankan perintah berikut menonaktifkan lalu lintas web yang masuk melalui port 80 untuk semua EC2 lingkungan dan EC2 instans Amazon yang terkait dengan grup keamanan dan jaringan ACL untuk lingkungan ini. Hal ini dapat mengakibatkan secara tak terduga menonaktifkan lalu lintas web masuk melalui port 80 untuk lingkungan EC2 dan EC2 contoh Amazon selain yang satu ini.

catatan

Perintah kelima hingga kedelapan berikut menghapus aturan yang ada untuk memblokir jaringan ACL agar tidak memungkinkan lalu lintas web masuk melalui port 80. Jika Anda memiliki jaringan defaultACL, yang sudah memungkinkan semua lalu lintas masuk ke semua port, maka Anda dapat melewati menjalankan perintah tersebut. Namun, misalkan Anda memiliki jaringan khusus ACL dengan aturan yang ada yang memungkinkan lalu lintas web masuk melalui port 80 dan Anda ingin menghapus aturan tersebut. Kemudian, Anda perlu menjalankan perintah pertama diikuti oleh perintah kelima hingga kedelapan ini.

MY_INSTANCE_ID=$(curl http://169.254.169.254/latest/meta-data/instance-id) # Get the ID of the instance for the environment, and store it temporarily. MY_SECURITY_GROUP_ID=$(aws ec2 describe-instances --instance-id $MY_INSTANCE_ID --query 'Reservations[].Instances[0].SecurityGroups[0].GroupId' --output text) # Get the ID of the security group associated with the instance, and store it temporarily. aws ec2 revoke-security-group-ingress --group-id $MY_SECURITY_GROUP_ID --protocol tcp --cidr 0.0.0.0/0 --port 80 # Delete the existing inbound rule from the security group to block all incoming IPv4-based traffic over port 80. aws ec2 revoke-security-group-ingress --group-id $MY_SECURITY_GROUP_ID --ip-permissions IpProtocol=tcp,Ipv6Ranges='[{CidrIpv6=::/0}]',FromPort=80,ToPort=80 # Delete the existing inbound rule from the security group to block all incoming IPv6-based traffic over port 80. MY_SUBNET_ID=$(aws ec2 describe-instances --instance-id $MY_INSTANCE_ID --query 'Reservations[].Instances[0].SubnetId' --output text) # Get the ID of the subnet associated with the instance, and store it temporarily. MY_NETWORK_ACL_ID=$(aws ec2 describe-network-acls --filters Name=association.subnet-id,Values=$MY_SUBNET_ID --query 'NetworkAcls[].Associations[0].NetworkAclId' --output text) # Get the ID of the network ACL associated with the subnet, and store it temporarily. aws ec2 delete-network-acl-entry --network-acl-id $MY_NETWORK_ACL_ID --ingress --rule-number 10000 # Delete the existing inbound rule from the network ACL to block all IPv4-based traffic over port 80. Advanced users: if you originally created this rule with a different number, change this suggested rule number to match. aws ec2 delete-network-acl-entry --network-acl-id $MY_NETWORK_ACL_ID --ingress --rule-number 10100 # Delete the existing inbound rule from the network ACL to block all IPv6-based traffic over port 80. Advanced users: if you originally created this rule with a different number, change this suggested rule number to match.

Jika Anda selesai menggunakan lingkungan ini, hapus lingkungan untuk mencegah tagihan yang sedang berlangsung ke lingkungan Anda Akun AWS. Untuk instruksi, lihat Menghapus lingkungan di AWS Cloud9.

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.