Tutorial: Instal LAMP server pada AL2 023 - Amazon Linux 2023

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

Tutorial: Instal LAMP server pada AL2 023

Prosedur berikut membantu Anda menginstal server web Apache dengan PHP dan dukungan MariaDB (fork SQL My yang dikembangkan komunitas) pada instans 023 AL2 Anda (kadang-kadang disebut server web atau tumpukan). LAMP LAMP Anda dapat menggunakan server ini untuk meng-host situs web statis atau menyebarkan PHP aplikasi dinamis yang membaca dan menulis informasi ke database.

penting

Prosedur ini dimaksudkan untuk digunakan dengan AL2 023. Jika Anda mencoba mengatur server LAMP web pada distribusi yang berbeda, seperti Ubuntu atau Red Hat Enterprise Linux, tutorial ini tidak akan berfungsi. Untuk Ubuntu, lihat dokumentasi komunitas Ubuntu berikut: ApacheMySQLPHP Untuk distribusi lain, lihat dokumentasi spesifik mereka.

Langkah 1: Siapkan LAMP server

Prasyarat
  • Tutorial ini mengasumsikan bahwa Anda telah meluncurkan instance baru menggunakan AL2 023, dengan DNS nama publik yang dapat dijangkau dari internet. Untuk informasi selengkapnya, lihat AL2023 di Amazon EC2. Anda juga harus mengonfigurasi grup keamanan Anda untuk mengizinkan koneksi SSH (port 22), HTTP (port 80), dan HTTPS (port 443). Untuk informasi selengkapnya tentang prasyarat ini, lihat Mengotorisasi lalu lintas masuk untuk instans Linux Anda di Panduan Pengguna Amazon. EC2

  • Prosedur berikut menginstal PHP versi terbaru yang tersedia di AL2 023, saat ini 8.1. Jika Anda berencana untuk menggunakan PHP aplikasi selain yang dijelaskan dalam tutorial ini, Anda harus memeriksa kompatibilitasnya dengan 8.1.

Untuk mempersiapkan LAMP server
  1. Connect ke instans Anda. Untuk informasi selengkapnya, lihat Menghubungkan ke AL2 instans 023.

  2. Untuk memastikan bahwa semua paket perangkat lunak Anda telah diperbarui, lakukan pembaruan perangkat lunak cepat di instans Anda. Proses ini mungkin memerlukan waktu beberapa menit, tetapi penting untuk memastikan bahwa Anda memiliki pembaruan keamanan dan perbaikan bug terbaru.

    Opsi -y menginstal pembaruan tanpa meminta konfirmasi. Jika Anda ingin memeriksa pembaruan sebelum menginstal, Anda dapat menghapus opsi ini.

    [ec2-user ~]$ sudo dnf upgrade -y
  3. Instal versi terbaru dari server web Apache dan PHP paket untuk AL2 023.

    [ec2-user ~]$ sudo dnf install -y httpd wget php-fpm php-mysqli php-json php php-devel
  4. Instal paket perangkat lunak MariaDB. Gunakan perintah dnf install untuk menginstal banyak paket perangkat lunak dan semua dependensi yang terkait pada waktu bersamaan.

    [ec2-user ~]$ sudo dnf install mariadb105-server

    Anda dapat melihat versi paket saat ini menggunakan perintah berikut:

    [ec2-user ~]$ sudo dnf info package_name

    Contoh:

    [root@ip-172-31-25-170 ec2-user]# dnf info mariadb105 Last metadata expiration check: 0:00:16 ago on Tue Feb 14 21:35:13 2023. Installed Packages Name : mariadb105 Epoch : 3 Version : 10.5.16 Release : 1.amzn2023.0.6 Architecture : x86_64 Size : 18 M Source : mariadb105-10.5.16-1.amzn2023.0.6.src.rpm Repository : @System From repo : amazonlinux Summary : A very fast and robust SQL database server URL : http://mariadb.org License : GPLv2 and LGPLv2 Description : MariaDB is a community developed fork from MySQL - a multi-user, multi-threaded : SQL database server. It is a client/server implementation consisting of : a server daemon (mariadbd) and many different client programs and libraries. : The base package contains the standard MariaDB/MySQL client programs and : utilities.
  5. Mulai server web Apache.

    [ec2-user ~]$ sudo systemctl start httpd
  6. Gunakan perintah systemctl untuk mengonfigurasi server web Apache agar dimulai di setiap boot sistem.

    [ec2-user ~]$ sudo systemctl enable httpd

    Anda dapat memverifikasi apakah httpd aktif dengan menjalankan perintah berikut:

    [ec2-user ~]$ sudo systemctl is-enabled httpd
  7. Tambahkan aturan keamanan untuk mengizinkan koneksi masuk HTTP (port 80) ke instans Anda jika Anda belum melakukannya. Secara default, grup keamanan launch-wizard-Ngrup keamanan dibuat untuk instans Anda selama peluncuran. Jika Anda tidak menambahkan aturan grup keamanan tambahan, grup ini hanya berisi satu aturan untuk mengizinkan SSH koneksi.

    1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.

    2. Pada navigator kiri, pilih Instans, dan pilih instans Anda.

    3. Pada tab Keamanan, lihat aturan masuk. Anda akan melihat aturan berikut ini:

      Port range Protocol Source 22 tcp 0.0.0.0/0
      Awas

      Menggunakan 0.0.0.0/0 memungkinkan semua IPv4 alamat untuk mengakses instance Anda menggunakanSSH. Hal ini dapat diterima untuk waktu yang singkat di lingkungan pengujian, tetapi tidak aman untuk lingkungan produksi. Dalam produksi, Anda dapat memberikan otorisasi pada alamat IP atau rentang alamat tertentu saja untuk mengakses instans Anda.

    4. Jika tidak ada aturan masuk untuk mengizinkan koneksi HTTP (port 80), Anda harus menambahkan aturan sekarang. Pilih tautan untuk grup keamanan. Menggunakan prosedur di lihat Mengotorisasi lalu lintas masuk untuk instance Linux Anda, tambahkan aturan keamanan masuk baru dengan nilai berikut:

      • Jenis: HTTP

      • Protokol: TCP

      • Rentang Port: 80

      • Sumber: Kustom

  8. Uji server web Anda. Di browser web, ketikkan DNS alamat publik (atau alamat IP publik) instans Anda. Jika tidak ada konten di /var/www/html, Anda akan melihat halaman uji Apache, yang akan menampilkan pesan “Bekerja!”.

    Anda bisa mendapatkan publik DNS untuk instans Anda menggunakan EC2 konsol Amazon (centang IPv4 DNS kolom Publik; jika kolom ini disembunyikan, pilih Preferensi (ikon berbentuk roda gigi) dan aktifkan Publik). IPv4 DNS

    Verifikasi bahwa grup keamanan untuk instance berisi aturan untuk mengizinkan HTTP lalu lintas di port 80. Untuk informasi selengkapnya, lihat Menambahkan aturan ke grup keamanan.

    penting

    Jika Anda tidak menggunakan Amazon Linux, Anda mungkin juga perlu mengonfigurasi firewall pada instans untuk mengizinkan koneksi ini. Untuk informasi selengkapnya tentang cara mengonfigurasi firewall, lihat dokumentasi untuk distribusi tertentu Anda.

httpd Apache menyajikan file yang disimpan dalam direktori yang disebut root dokumen Apache. Root dokumen Amazon Linux Apache adalah /var/www/html, yang secara default dimiliki oleh root.

Untuk mengizinkan akun ec2-user untuk memanipulasi file dalam direktori ini, Anda harus memodifikasi kepemilikan dan izin direktori. 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.

Untuk mengatur izin file
  1. Tambahkan pengguna Anda (dalam hal ini, ec2-user) ke grup apache.

    [ec2-user ~]$ sudo usermod -a -G apache ec2-user
  2. Keluar dan masuk kembali untuk mengambil grup baru, lalu verifikasi keanggotaan Anda.

    1. Keluar (gunakan perintah exit atau tutup jendela terminal):

      [ec2-user ~]$ exit
    2. Untuk memverifikasi keanggotaan Anda di grup apache, hubungkan kembali ke instans Anda, lalu jalankan perintah berikut:

      [ec2-user ~]$ groups ec2-user adm wheel apache systemd-journal
  3. Ubah kepemilikan grup /var/www dan kontennya ke grup apache.

    [ec2-user ~]$ sudo chown -R ec2-user:apache /var/www
  4. Untuk menambahkan izin tulis grup dan untuk mengatur ID grup pada subdirektori mendatang, ubah izin direktori /var/www dan subdirektorinya.

    [ec2-user ~]$ sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \;
  5. Untuk menambahkan izin tulis grup, ubah izin file /var/www secara berulang dan subdirektorinya:

    [ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} \;

Sekarang, ec2-user (dan setiap anggota apache grup yang akan datang) dapat menambahkan, menghapus, dan mengedit file di root dokumen Apache, memungkinkan Anda untuk menambahkan konten, seperti situs web statis atau aplikasi. PHP

Untuk mengamankan server web Anda (Opsional)

Server web yang menjalankan HTTP protokol tidak memberikan keamanan transportasi untuk data yang dikirim atau diterima. Saat Anda terhubung ke HTTP server menggunakan browser web, yang Anda kunjungi, konten halaman web URLs yang Anda terima, dan konten (termasuk kata sandi) dari HTML formulir apa pun yang Anda kirimkan semuanya dapat dilihat oleh penyadap di mana saja di sepanjang jalur jaringan. Praktik terbaik untuk mengamankan server web Anda adalah menginstal dukungan untuk HTTPS (HTTPAman), yang melindungi data Anda SSL TLS dengan/enkripsi.

Untuk informasi tentang mengaktifkan HTTPS di server Anda, lihatTutorial: Konfigurasikan SSL/TLS di AL2023.

Langkah 2: Uji LAMP server Anda

Jika server Anda diinstal dan berjalan, dan izin file Anda diatur dengan benar, ec2-user akun Anda harus dapat membuat PHP file di /var/www/html direktori yang tersedia dari internet.

Untuk menguji LAMP server Anda
  1. Buat PHP file di root dokumen Apache.

    [ec2-user ~]$ echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

    Jika Anda mendapatkan pesan kesalahan “Izin ditolak” saat mencoba menjalankan perintah ini, cobalah keluar dan masuk kembali untuk mengambil izin grup yang sesuai yang Anda konfigurasikan di Untuk mengatur izin file.

  2. Di browser web, URL ketik file yang baru saja Anda buat. Ini URL adalah DNS alamat publik instance Anda diikuti dengan garis miring dan nama file. Sebagai contoh:

    http://my.public.dns.amazonaws.com/phpinfo.php

    Anda harus melihat halaman PHP informasi:

    Tes LAMP server menunjukkan halaman PHP informasi.

    Jika Anda tidak melihat halaman ini, periksa apakah file /var/www/html/phpinfo.php dibuat dengan benar pada langkah sebelumnya. Anda juga dapat memverifikasi apakah semua paket yang diperlukan diinstal dengan perintah berikut.

    [ec2-user ~]$ sudo dnf list installed httpd mariadb-server php-mysqlnd

    Jika salah satu paket yang diperlukan tidak tercantum di output Anda, instal dengan perintah sudo yum install package.

  3. Hapus file phpinfo.php. Meskipun ini dapat menjadi informasi yang berguna, sebaiknya tidak disiarkan ke internet untuk alasan keamanan.

    [ec2-user ~]$ rm /var/www/html/phpinfo.php

Anda sekarang harus memiliki server LAMP web yang berfungsi penuh. Jika Anda menambahkan konten ke root dokumen Apache di/var/www/html, Anda harus dapat melihat konten itu di DNS alamat publik untuk instance Anda.

Langkah 3: Amankan server basis data

Instalasi default dari server MariaDB memiliki beberapa fitur yang bagus untuk pengujian dan pengembangan, tetapi harus dinonaktifkan atau dihapus untuk server produksi. Perintah mysql_secure_installation memandu Anda melalui proses pengaturan kata sandi root dan menghapus fitur yang tidak aman dari instalasi Anda. Meskipun Anda tidak berencana menggunakan server MariaDB, kami sarankan untuk melakukan prosedur ini.

Untuk mengamankan server MariaDB
  1. Mulai server MariaDB.

    [ec2-user ~]$ sudo systemctl start mariadb
  2. Jalankan mysql_secure_installation.

    [ec2-user ~]$ sudo mysql_secure_installation
    1. Saat diminta, ketikkan kata sandi untuk akun root.

      1. Ketikkan kata sandi root saat ini. Secara default, akun root tidak memiliki pengaturan kata sandi. Tekan Enter.

      2. Ketik Y untuk mengatur kata sandi, dan ketik kata sandi yang aman sebanyak dua kali. Untuk informasi selengkapnya tentang membuat kata sandi aman, lihat https://identitysafe.norton.com/password-generator/. Pastikan untuk menyimpan kata sandi ini di tempat yang aman.

        Mengatur kata sandi root untuk MariaDB hanyalah langkah paling dasar untuk mengamankan basis data Anda. Saat Anda membangun atau menginstal aplikasi yang didorong basis data, Anda biasanya membuat pengguna layanan basis data untuk aplikasi tersebut dan menghindari penggunaan akun root untuk apa pun selain administrasi basis data.

    2. Ketik Y untuk menghapus akun pengguna anonim.

    3. Ketik Y untuk menonaktifkan login root jarak jauh.

    4. Ketik Y untuk menghapus basis data pengujian.

    5. Ketik Y untuk memuat ulang tabel istimewa dan menyimpan perubahan Anda.

  3. (Opsional) Jika Anda tidak berencana untuk langsung menggunakan server MariaDB, segera hentikan. Anda dapat memulainya ulang saat membutuhkannya lagi.

    [ec2-user ~]$ sudo systemctl stop mariadb
  4. (Opsional) Jika Anda ingin server MariaDB untuk dimulai di setiap boot, ketik perintah berikut.

    [ec2-user ~]$ sudo systemctl enable mariadb

Langkah 4: (Opsional) Instal phpMyAdmin

phpMyAdminadalah alat manajemen basis data berbasis web yang dapat Anda gunakan untuk melihat dan mengedit SQL database Saya pada instance AndaEC2. Ikuti langkah-langkah di bawah ini untuk menginstal dan mengonfigurasi phpMyAdmin di instans Amazon Linux Anda.

penting

Kami tidak menyarankan penggunaan phpMyAdmin untuk mengakses LAMP server kecuali Anda telah SSL TLS mengaktifkan/di Apache; jika tidak, kata sandi administrator database Anda dan data lainnya ditransmisikan secara tidak aman di internet. Untuk rekomendasi keamanan dari pengembang, lihat Mengamankan phpMyAdmin instalasi Anda. Untuk informasi umum tentang mengamankan server web pada sebuah EC2 instance, lihatTutorial: Konfigurasikan SSL/TLS di AL2023.

Untuk menginstal phpMyAdmin
  1. Pasang dependensi yang diperlukan.

    [ec2-user ~]$ sudo dnf install php-mbstring php-xml -y
  2. Mulai Ulang Apache.

    [ec2-user ~]$ sudo systemctl restart httpd
  3. Mulai ulang php-fpm.

    [ec2-user ~]$ sudo systemctl restart php-fpm
  4. Navigasi ke akar dokumen Apache di /var/www/html.

    [ec2-user ~]$ cd /var/www/html
  5. Pilih paket sumber untuk phpMyAdmin rilis terbaru dari https://www.phpmyadmin.net/downloads. Untuk mengunduh file secara langsung ke instans Anda, salin tautan dan tempel ke perintah wget, seperti dalam contoh ini:

    [ec2-user html]$ wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
  6. Buat folder phpMyAdmin dan ekstrak paket ke folder tersebut dengan perintah berikut.

    [ec2-user html]$ mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1
  7. Hapus phpMyAdmin-latest-all-languages.tar.gz tarball.

    [ec2-user html]$ rm phpMyAdmin-latest-all-languages.tar.gz
  8. (Opsional) Jika SQL server Saya tidak berjalan, mulai sekarang.

    [ec2-user ~]$ sudo systemctl start mariadb
  9. Di browser web, URL ketik phpMyAdmin instalasi Anda. Ini URL adalah DNS alamat publik (atau alamat IP publik) dari instans Anda diikuti dengan garis miring dan nama direktori instalasi Anda. Sebagai contoh:

    http://my.public.dns.amazonaws.com/phpMyAdmin

    Anda akan melihat halaman phpMyAdmin login:

    Hasil mengetik URL phpMyAdmin instalasi Anda adalah layar phpMyAdmin login.
  10. Masuk ke phpMyAdmin instalasi Anda dengan nama root pengguna dan kata sandi SQL root saya yang Anda buat sebelumnya.

    Instalasi Anda harus tetap dikonfigurasi sebelum Anda menggunakannya. Sebaiknya Anda memulai dengan membuat file konfigurasi secara manual, sebagai berikut:

    1. Untuk memulai dengan file konfigurasi minimal, gunakan editor teks favorit Anda untuk membuat file baru, lalu salin isi config.sample.inc.php ke dalamnya.

    2. Simpan file seperti config.inc.php pada phpMyAdmin direktori yang berisiindex.php.

    3. Lihat instruksi pembuatan pasca-file di bagian Menggunakan skrip Pengaturan dari instruksi phpMyAdmin penginstalan untuk pengaturan tambahan apa pun.

    Untuk informasi tentang penggunaan phpMyAdmin, lihat Panduan phpMyAdmin Pengguna.

Pemecahan Masalah

Bagian ini menawarkan saran untuk menyelesaikan masalah umum yang mungkin Anda temui saat menyiapkan LAMP server baru.

Saya tidak dapat terhubung ke server menggunakan peramban web

Lakukan pemeriksaan berikut untuk melihat apakah server web Apache Anda berfungsi dan dapat diakses.

  • Apakah server web berfungsi?

    Anda dapat memverifikasi apakah httpd aktif dengan menjalankan perintah berikut:

    [ec2-user ~]$ sudo systemctl is-enabled httpd

    Jika proses httpd tidak berjalan, ulangi langkah-langkah yang dijelaskan dalam Untuk mempersiapkan LAMP server.

  • Apakah firewall dikonfigurasi dengan benar?

    Verifikasi bahwa grup keamanan untuk instance berisi aturan untuk mengizinkan HTTP lalu lintas di port 80. Untuk informasi selengkapnya, lihat Menambahkan aturan ke grup keamanan.

Saya tidak dapat terhubung ke server saya menggunakan HTTPS

Lakukan pemeriksaan berikut untuk melihat apakah server web Apache Anda dikonfigurasi untuk mendukungHTTPS.

  • Apakah server web dikonfigurasi dengan benar?

    Setelah Anda menginstal Apache, server dikonfigurasi untuk HTTP lalu lintas. Untuk mendukungHTTPS, aktifkan TLS di server dan instal SSL sertifikat. Untuk informasi, lihat Tutorial: Konfigurasikan SSL/TLS di AL2023.

  • Apakah firewall dikonfigurasi dengan benar?

    Verifikasi bahwa grup keamanan untuk instance berisi aturan untuk mengizinkan HTTPS lalu lintas di port 443. Untuk informasi selengkapnya, lihat Mengotorisasi lalu lintas masuk untuk instans Linux Anda.

Topik terkait

Untuk informasi selengkapnya tentang mentransfer file ke instans Anda atau menginstal WordPress blog di server web Anda, lihat dokumentasi berikut:

Untuk informasi selengkapnya tentang perintah dan perangkat lunak yang digunakan dalam tutorial ini, lihat halaman web berikut ini:

Untuk informasi lebih lanjut tentang cara mendaftarkan nama domain untuk server web Anda, atau mentransfer nama domain yang ada ke host ini, lihat Membuat dan Memigrasikan Domain dan Subdomain ke Amazon Route 53 dalam Panduan Developer Amazon Route 53.