Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Instal server web pada instans EC2 yang Anda buat di Luncurkan EC2 instance untuk terhubung dengan instans DB Anda. Server web ini terhubung ke instans DB Amazon RDS yang Anda buat di Membuat instans DB Amazon RDS.
Menginstal server web Apache dengan PHP dan MariaDB
Hubungkan ke instans EC2 Anda dan instal server web.
Menghubungkan ke instans EC2 dan menginstal server web Apache dengan PHP
Connect ke instans EC2 yang Anda buat sebelumnya dengan mengikuti langkah-langkah di Connect to Linux Anda di Panduan Pengguna Amazon EC2.
Sebaiknya Anda menghubungkan ke instans EC2 menggunakan SSH. Jika utilitas klien SSH diinstal di Windows, Linux, atau Mac, Anda dapat menghubungkan ke instans menggunakan format perintah berikut:
ssh -i
location_of_pem_file
ec2-user@ec2-instance-public-dns-name
Misalnya, asumsikan bahwa
ec2-database-connect-key-pair.pem
disimpan di/dir1
di Linux, dan DNS IPv4 publik untuk instans EC2 Anda adalahec2-12-345-678-90.compute-1.amazonaws.com
. Perintah SSH Anda akan tampak seperti berikut:ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
Dapatkan pembaruan keamanan dan perbaikan bug terbaru dengan memperbarui perangkat lunak di instans EC2 Anda. Untuk melakukannya, gunakan perintah berikut.
catatan
Opsi
-y
menginstal pembaruan tanpa meminta konfirmasi. Hilangkan opsi ini untuk memeriksa pembaruan sebelum menginstal.sudo dnf update -y
-
Setelah pembaruan selesai, instal server web Apache, PHP, dan MariaDB atau perangkat lunak PostgreSQL menggunakan perintah berikut. Perintah ini menginstal beberapa paket perangkat lunak dan dependensi terkait bersamaan.
sudo dnf install -y httpd php php-mysqli mariadb105
Jika Anda mengalami kesalahan, instans Anda mungkin tidak diluncurkan dengan AMI Amazon Linux 2023. Sebaiknya gunakan AMI Amazon Linux 2 AMI. Anda dapat melihat versi Amazon Linux Anda menggunakan perintah berikut.
cat /etc/system-release
Untuk informasi selengkapnya, lihat Memperbarui perangkat lunak instans.
Mulai server web dengan perintah yang ditampilkan berikut ini.
sudo systemctl start httpd
Anda dapat menguji apakah server web Anda terinstal dan berjalan dengan benar. Untuk melakukannya, masukkan nama Sistem Nama Domain (DNS) publik dari instans EC2 Anda di bilah alamat browser web, misalnya:
http://ec2-42-8-168-21.us-west-1.compute.amazonaws.com
. Jika server web Anda berjalan, maka Anda akan melihat halaman uji Apache.Jika Anda tidak melihat halaman uji Apache, periksa aturan masuk Anda untuk grup keamanan VPC yang Anda buat di Tutorial: Membuat VPC untuk digunakan dengan instans DB (khusus IPv4). Pastikan aturan masuk Anda menyertakan aturan yang mengizinkan akses HTTP (port 80) untuk alamat IP agar terhubung ke server web.
catatan
Halaman uji Apache hanya muncul jika tidak ada konten di direktori root dokumen,
/var/www/html
. Setelah konten ditambahkan ke direktori root dokumen, konten tersebut akan muncul di alamat DNS publik dari instans EC2 Anda. Sebelumnya, konten tersebut muncul di halaman uji Apache.Konfigurasikan server web untuk memulai setiap boot sistem menggunakan perintah
systemctl
.sudo systemctl enable httpd
Untuk mengizinkan ec2-user
mengelola file di direktori root default untuk server web Apache Anda, ubah kepemilikan dan izin direktori /var/www
. Ada banyak cara untuk menyelesaikan tugas ini. Dalam tutorial ini, Anda menambahkan ec2-user
ke grup apache
, untuk memberikan kepemilikan grup apache
atas direktori /var/www
dan menetapkan izin tulis ke grup.
Mengatur izin file untuk server web Apache
Tambahkan pengguna
ec2-user
ke grupapache
.sudo usermod -a -G apache ec2-user
Keluar untuk menyegarkan izin Anda dan masukkan grup
apache
baru.exit
Masuk kembali dan verifikasi apakah grup
apache
ada dengan perintahgroups
.groups
Output Anda akan terlihat seperti berikut ini:
ec2-user adm wheel apache systemd-journal
Ubah kepemilikan grup atas direktori
/var/www
dan kontennya ke grupapache
.sudo chown -R ec2-user:apache /var/www
Ubah izin direktori atas
/var/www
dan subdirektorinya untuk menambahkan izin tulis grup dan atur ID grup pada subdirektori yang dibuat di masa mendatang.sudo chmod 2775 /var/www find /var/www -type d -exec sudo chmod 2775 {} \;
Ubah izin file secara berulang di direktori
/var/www
dan subdirektorinya untuk menambahkan izin tulis grup.find /var/www -type f -exec sudo chmod 0664 {} \;
Sekarang, ec2-user
(dan setiap anggota grup apache
mendatang) dapat menambahkan, menghapus, dan mengedit file pada root dokumen Apache. Ini memungkinkan Anda untuk menambahkan konten, seperti situs web statis atau aplikasi PHP.
catatan
Server web yang menjalankan protokol HTTP tidak memberikan keamanan transportasi untuk data yang dikirim atau diterimanya. Saat Anda menghubungkan ke server HTTP menggunakan browser web, banyak informasi yang terlihat oleh penyadap di mana saja di sepanjang jalur jaringan. Informasi ini mencakup URL yang Anda kunjungi, konten halaman web yang Anda terima, dan konten (termasuk kata sandi) dari setiap formulir HTML.
Praktik terbaik untuk mengamankan server web Anda adalah dengan menginstal dukungan untuk HTTPS (HTTP Secure). Protokol ini melindungi data Anda dengan enkripsi SSL/TLS. Untuk informasi selengkapnya, lihat Tutorial: Mengonfigurasi SSL/TLS dengan Amazon Linux AMI di Panduan Pengguna Amazon EC2.
Menghubungkan server web Apache ke instans DB
Selanjutnya, Anda menambahkan konten ke server web Apache yang terhubung ke instans DB Amazon RDS.
Menambahkan konten ke server web Apache yang terhubung ke instans DB Anda
-
Saat masih terhubung ke instans EC2, ubah direktori ke
/var/www
dan buat subdirektori baru yang diberi namainc
.cd /var/www mkdir inc cd inc
-
Buat file baru dalam direktori
inc
yang diberi namadbinfo.inc
, lalu edit file tersebut dengan menggunakan nano (atau editor pilihan Anda).>dbinfo.inc nano dbinfo.inc
-
Tambahkan konten berikut ini ke file
dbinfo.inc
. Di sini,db_instance_endpoint
adalah titik akhir instans DB Anda, tanpa port, untuk instans DB Anda.catatan
Sebaiknya tempatkan nama pengguna dan informasi kata sandi dalam folder yang bukan bagian dari root dokumen untuk server web Anda. Hal ini mengurangi kemungkinan informasi keamanan Anda terungkap.
Pastikan untuk mengubah
master password
ke kata sandi yang sesuai di aplikasi Anda.<?php define('DB_SERVER', '
db_instance_endpoint
'); define('DB_USERNAME', 'tutorial_user'); define('DB_PASSWORD', 'master password
'); define('DB_DATABASE', 'sample'); ?> -
Simpan dan tutup file
dbinfo.inc
. Jika Anda menggunakan nano, simpan dan tutup file dengan menggunakan Ctrl+S dan Ctrl+X. -
Ubah direktori ke
/var/www/html
.cd /var/www/html
-
Buat file baru dalam direktori
html
yang diberi namaSamplePage.php
, lalu edit file tersebut dengan menggunakan nano (atau editor pilihan Anda).>SamplePage.php nano SamplePage.php
-
Tambahkan konten berikut ini ke file
SamplePage.php
:<?php include "../inc/dbinfo.inc"; ?> <html> <body> <h1>Sample page</h1> <?php /* Connect to MySQL and select the database. */ $connection = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD); if (mysqli_connect_errno()) echo "Failed to connect to MySQL: " . mysqli_connect_error(); $database = mysqli_select_db($connection, DB_DATABASE); /* Ensure that the EMPLOYEES table exists. */ VerifyEmployeesTable($connection, DB_DATABASE); /* If input fields are populated, add a row to the EMPLOYEES table. */ $employee_name = htmlentities($_POST['NAME']); $employee_address = htmlentities($_POST['ADDRESS']); if (strlen($employee_name) || strlen($employee_address)) { AddEmployee($connection, $employee_name, $employee_address); } ?> <!-- Input form --> <form action="<?PHP echo $_SERVER['SCRIPT_NAME'] ?>" method="POST"> <table border="0"> <tr> <td>NAME</td> <td>ADDRESS</td> </tr> <tr> <td> <input type="text" name="NAME" maxlength="45" size="30" /> </td> <td> <input type="text" name="ADDRESS" maxlength="90" size="60" /> </td> <td> <input type="submit" value="Add Data" /> </td> </tr> </table> </form> <!-- Display table data. --> <table border="1" cellpadding="2" cellspacing="2"> <tr> <td>ID</td> <td>NAME</td> <td>ADDRESS</td> </tr> <?php $result = mysqli_query($connection, "SELECT * FROM EMPLOYEES"); while($query_data = mysqli_fetch_row($result)) { echo "<tr>"; echo "<td>",$query_data[0], "</td>", "<td>",$query_data[1], "</td>", "<td>",$query_data[2], "</td>"; echo "</tr>"; } ?> </table> <!-- Clean up. --> <?php mysqli_free_result($result); mysqli_close($connection); ?> </body> </html> <?php /* Add an employee to the table. */ function AddEmployee($connection, $name, $address) { $n = mysqli_real_escape_string($connection, $name); $a = mysqli_real_escape_string($connection, $address); $query = "INSERT INTO EMPLOYEES (NAME, ADDRESS) VALUES ('$n', '$a');"; if(!mysqli_query($connection, $query)) echo("<p>Error adding employee data.</p>"); } /* Check whether the table exists and, if not, create it. */ function VerifyEmployeesTable($connection, $dbName) { if(!TableExists("EMPLOYEES", $connection, $dbName)) { $query = "CREATE TABLE EMPLOYEES ( ID int(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(45), ADDRESS VARCHAR(90) )"; if(!mysqli_query($connection, $query)) echo("<p>Error creating table.</p>"); } } /* Check for the existence of a table. */ function TableExists($tableName, $connection, $dbName) { $t = mysqli_real_escape_string($connection, $tableName); $d = mysqli_real_escape_string($connection, $dbName); $checktable = mysqli_query($connection, "SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME = '$t' AND TABLE_SCHEMA = '$d'"); if(mysqli_num_rows($checktable) > 0) return true; return false; } ?>
-
Simpan dan tutup file
SamplePage.php
. -
Verifikasi bahwa server web Anda berhasil terhubung ke instans DB Anda dengan membuka browser web dan menelusuri ke
http://
, misalnya:EC2 instance endpoint
/SamplePage.phphttp://ec2-12-345-67-890.us-west-2.compute.amazonaws.com/SamplePage.php
.
Anda dapat menggunakan SamplePage.php
untuk menambahkan data ke instans DB Anda. Data yang Anda tambahkan kemudian ditampilkan di halaman. Untuk memverifikasi apakah data dimasukkan ke dalam tabel, instal klien MySQL pada instans Amazon EC2. Kemudian, hubungkan ke instans DB dan kueri tabelnya.
Untuk informasi tentang menginstal klien MySQL dan menghubungkan ke instans DB, lihat Menghubungkan ke instans MySQL DB Anda.
Untuk memastikan instans DB Anda seaman mungkin, verifikasi bahwa sumber di luar VPC tidak dapat menghubungkan ke instans DB Anda.
Setelah selesai menguji server web dan database, Anda harus menghapus instans DB dan instans Amazon EC2 Anda.
-
Untuk menghapus instans DB, ikuti petunjuk di Menghapus instans DB. Anda tidak perlu membuat snapshot terakhir.
-
Untuk mengakhiri instans Amazon EC2, ikuti petunjuk di Mengakhiri instans Anda dalam Panduan Pengguna Amazon EC2.