Tutorial: Instal server LAMP AL1 - Amazon Linux 1

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

Tutorial: Instal server LAMP AL1

catatan

Amazon Linux 1 (AL1sebelumnya Amazon Linux AMI) tidak lagi didukung. Panduan ini hanya tersedia untuk tujuan referensi.

Prosedur berikut membantu Anda menginstal server web Apache dengan dukungan PHP dan MySQL pada instance AL1 Anda (kadang-kadang disebut server web LAMP atau stack LAMP). Anda dapat menggunakan server ini untuk melakukan host situs web statis atau melakukan deployment aplikasi PHP dinamis yang membaca dan menulis informasi ke basis data.

penting

Jika Anda mencoba menyiapkan server web LAMP di distribusi yang berbeda seperti Ubuntu atau Red Hat Enterprise Linux, tutorial ini tidak bisa Anda gunakan. Untuk AL2, lihat Tutorial: Menginstal server LAMP pada AL2. Untuk Ubuntu, lihat dokumentasi komunitas Ubuntu berikut ApacheMySQLPHP. Untuk distribusi lain, lihat dokumentasi spesifik mereka.

Opsi: Selesaikan tutorial ini menggunakan otomatisasi

Untuk menyelesaikan tutorial ini menggunakan AWS Systems Manager Automation alih-alih tugas-tugas berikut, jalankan AWSdokumen Docs-Install ALAMPServer -AL Automation.

Langkah 1: Menyiapkan server LAMP

Prasyarat

Tutorial ini mengasumsikan bahwa Anda telah meluncurkan instans baru menggunakan AMI Amazon Linux, dengan nama DNS publik yang dapat dijangkau dari internet. Untuk informasi selengkapnya, lihat Meluncurkan instance di Panduan EC2 Pengguna Amazon. 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 Aturan grup keamanan di Panduan Pengguna Amazon. EC2

Untuk menginstal dan memulai server web LAMP dengan AMI Amazon Linux
  1. Terhubung ke instans Anda.

  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 akan menginstal pembaruan tanpa meminta konfirmasi. Jika Anda ingin memeriksa pembaruan sebelum menginstal, Anda dapat menghapus opsi ini.

    [ec2-user ~]$ sudo yum update -y
  3. Sekarang, instans Anda sudah diperbarui, Anda dapat menginstal server web Apache, MySQL, dan paket perangkat lunak PHP.

    penting

    Beberapa aplikasi mungkin tidak kompatibel dengan lingkungan perangkat lunak yang disarankan berikut ini. Sebelum menginstal paket ini, periksa apakah aplikasi LAMP Anda kompatibel dengan lingkungan perangkat lunak tersebut. Jika ada masalah, Anda mungkin perlu menginstal lingkungan alternatif. Untuk informasi selengkapnya, lihat Perangkat lunak aplikasi yang ingin saya jalankan di server saya tidak kompatibel dengan versi PHP atau perangkat lunak yang terinstal lainnya

    Gunakan perintah yum install untuk menginstal banyak paket perangkat lunak dan semua dependensi yang terkait pada waktu bersamaan.

    [ec2-user ~]$ sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd

    Jika Anda menerima kesalahanNo package package-name available, maka instance Anda tidak diluncurkan dengan Amazon Linux AMI (mungkin Anda menggunakannya AL2 sebagai gantinya). Anda dapat melihat versi Amazon Linux Anda dengan perintah berikut.

    cat /etc/system-release
  4. Mulai server web Apache.

    [ec2-user ~]$ sudo service httpd start Starting httpd: [ OK ]
  5. Gunakan perintah chkconfig untuk mengonfigurasi server web Apache agar dimulai di setiap boot sistem.

    [ec2-user ~]$ sudo chkconfig httpd on

    Perintah chkconfig tidak memberikan pesan konfirmasi ketika Anda berhasil menggunakannya untuk mengaktifkan layanan.

    Anda dapat memverifikasi apakah httpd aktif dengan menjalankan perintah berikut:

    [ec2-user ~]$ chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    Di sini, httpd adalah on di runlevel 2, 3, 4, dan 5 (yang ingin Anda lihat).

  6. Tambahkan aturan keamanan untuk mengizinkan koneksi HTTP (port 80) masuk ke instans Anda jika Anda belum melakukannya. Secara default, grup N keamanan launch-wizard telah disiapkan untuk instans Anda selama inisialisasi. Grup ini berisi satu aturan untuk mengizinkan koneksi SSH.

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

    2. 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 instans Anda menggunakan SSH. Hal ini dapat diterima untuk waktu yang singkat di lingkungan pengujian, tetapi tidak aman untuk lingkungan produksi. Dalam produksi, Anda dapat mengotorisasi alamat IP tertentu saja atau rentang alamat untuk mengakses instans Anda.

    4. Pilih tautan untuk grup keamanan. Menggunakan prosedur dalam Menambahkan aturan ke grup keamanan, tambahkan aturan keamanan masuk baru dengan nilai berikut:

      • Jenis: HTTP

      • Protokol: TCP

      • Rentang Port: 80

      • Sumber: Kustom

  7. Uji server web Anda. Pada peramban web, ketikkan alamat DNS publik (atau alamat IP publik) instans Anda. Anda bisa mendapatkan alamat DNS publik untuk instans Anda menggunakan EC2 konsol Amazon. Jika tidak ada konten di /var/www/html, Anda akan melihat halaman uji Apache. Saat Anda menambahkan konten ke root dokumen, konten Anda muncul di alamat DNS publik dari instans Anda, bukan halaman pengujian.

    Verifikasi bahwa grup keamanan untuk instans berisi aturan untuk mengizinkan lalu lintas HTTP pada port 80. Untuk informasi selengkapnya, lihat Menambahkan aturan ke grup keamanan />.

    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.

[ec2-user ~]$ ls -l /var/www total 16 drwxr-xr-x 2 root root 4096 Jul 12 01:00 cgi-bin drwxr-xr-x 3 root root 4096 Aug 7 00:02 error drwxr-xr-x 2 root root 4096 Jan 6 2012 html drwxr-xr-x 3 root root 4096 Aug 7 00:02 icons drwxr-xr-x 2 root root 4096 Aug 7 21:17 noindex

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 wheel apache
  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 [ec2-user ~]$ 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 yang akan datang dari grup apache) dapat menambahkan, menghapus, dan mengedit file pada root dokumen Apache, sehingga Anda dapat menambahkan konten, seperti situs web statis atau aplikasi PHP.

(Opsional) Amankan server web Anda

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

Untuk informasi tentang cara mengaktifkan HTTPS di server Anda, lihat Tutorial: Konfigurasikan SSL/TLS di Amazon Linux AMI.

Langkah 2: Menguji server LAMP Anda

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

Untuk menguji server LAMP Anda
  1. Buat file PHP pada 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 Langkah 1: Menyiapkan server LAMP.

  2. Pada peramban web, ketik URL file yang baru saja Anda buat. URL ini adalah alamat DNS publik dari instans Anda diikuti dengan garis miring ke depan dan nama file. Sebagai contoh:

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

    Anda akan melihat halaman informasi PHP:

    Uji server LAMP menunjukkan halaman informasi PHP.

    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. Versi paket di kolom kedua tidak perlu cocok dengan output contoh ini.

    [ec2-user ~]$ sudo yum list installed httpd24 php72 mysql57-server php72-mysqlnd Loaded plugins: priorities, update-motd, upgrade-helper Installed Packages httpd24.x86_64 2.4.25-1.68.amzn1 @amzn-updates mysql56-server.x86_64 5.6.35-1.23.amzn1 @amzn-updates php70.x86_64 7.0.14-1.20.amzn1 @amzn-updates php70-mysqlnd.x86_64 7.0.14-1.20.amzn1 @amzn-updates

    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

Langkah 3: Amankan server basis data

Instalasi default dari server MySQL 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 MySQL, sebaiknya lakukan prosedur ini.

Untuk mengamankan server basis data
  1. Mulai server MySQL.

    [ec2-user ~]$ sudo service mysqld start Initializing MySQL database: ... PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! ... Starting mysqld: [ OK ]
  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 MySQL 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 MySQL, segera hentikan. Anda dapat memulainya ulang saat membutuhkannya lagi.

    [ec2-user ~]$ sudo service mysqld stop Stopping mysqld: [ OK ]
  4. (Opsional) Jika Anda ingin server MySQL untuk dimulai di setiap boot, ketik perintah berikut.

    [ec2-user ~]$ sudo chkconfig mysqld on

Sekarang, seharusnya Anda telah memiliki server web LAMP yang berfungsi sepenuhnya. Jika Anda menambahkan konten ke root dokumen Apache di /var/www/html, Anda harus dapat melihat konten tersebut di alamat DNS publik untuk instans Anda.

Langkah 4: (Opsional) Instal phpMyAdmin

Untuk menginstal phpMyAdmin

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

penting

Kami tidak menyarankan penggunaan phpMyAdmin untuk mengakses server LAMP kecuali Anda telah mengaktifkan SSL/TLS 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.

catatan

Sistem manajemen paket Amazon Linux saat ini tidak mendukung instalasi otomatis phpMyAdmin dalam lingkungan PHP 7. Tutorial ini menjelaskan cara menginstal phpMyAdmin secara manual.

  1. Masuk ke EC2 instans Anda menggunakan SSH.

  2. Pasang dependensi yang diperlukan.

    [ec2-user ~]$ sudo yum install php72-mbstring.x86_64 -y
  3. Mulai Ulang Apache.

    [ec2-user ~]$ sudo service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ]
  4. Navigasi ke root dokumen Apache di /var/www/html.

    [ec2-user ~]$ cd /var/www/html [ec2-user 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 phpMyAdmin folder dan ekstrak paket ke dalamnya menggunakan 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 server MySQL tidak dijalankan, mulailah.

    [ec2-user ~]$ sudo service mysqld start Starting mysqld: [ OK ]
  9. Di browser web, ketik URL phpMyAdmin instalasi Anda. URL ini adalah alamat DNS publik (atau alamat IP publik) dari instans Anda diikuti dengan garis miring ke depan dan nama direktori instalasi Anda. 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 root MySQL yang Anda buat sebelumnya.

    Instalasi Anda harus tetap dikonfigurasi sebelum Anda menggunakannya. Untuk mengonfigurasi phpMyAdmin, Anda dapat membuat file konfigurasi secara manual, menggunakan konsol pengaturan, atau menggabungkan kedua pendekatan.

    Untuk informasi tentang penggunaan phpMyAdmin, lihat Panduan phpMyAdmin Pengguna.

Pemecahan Masalah

Bagian ini memberikan saran untuk menyelesaikan masalah umum yang mungkin Anda hadapi saat menyiapkan server LAMP 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 ~]$ chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    Di sini, httpd adalah on di runlevel 2, 3, 4, dan 5 (yang ingin Anda lihat).

    Jika proses httpd tidak berjalan, ulangi langkah-langkah yang dijelaskan dalam Langkah 1: Menyiapkan server LAMP.

  • Apakah firewall dikonfigurasi dengan benar?

    Verifikasi bahwa grup keamanan untuk instans berisi aturan untuk mengizinkan lalu lintas HTTP pada port 80. Untuk informasi selengkapnya, lihat Menambahkan aturan ke grup keamanan />.

Perangkat lunak aplikasi yang ingin saya jalankan di server saya tidak kompatibel dengan versi PHP atau perangkat lunak yang terinstal lainnya

Tutorial ini merekomendasikan menginstal sebagian besar up-to-date versi Apache HTTP Server, PHP, dan MySQL. Sebelum menginstal aplikasi LAMP tambahan, periksa persyaratannya untuk mengonfirmasi apakah aplikasi tersebut kompatibel dengan lingkungan yang terinstal. Jika versi PHP terbaru tidak didukung, mungkin (dan sepenuhnya aman) untuk menurunkan versi ke konfigurasi yang didukung sebelumnya. Anda juga dapat menginstal lebih dari satu versi PHP secara paralel, yang memecahkan masalah kompatibilitas tertentu dengan sedikit usaha. Untuk informasi tentang cara mengonfigurasi preferensi di antara banyak versi PHP terinstal, lihat Catatan Rilis AMI Amazon Linux 2016.09.

Cara menurunkan versi

Versi sebelumnya dari tutorial ini yang teruji dengan baik memanggil paket LAMP inti berikut ini:

  • httpd24

  • php56

  • mysql55-server

  • php56-mysqlnd

Jika Anda telah menginstal paket terbaru seperti yang disarankan di awal tutorial ini, Anda harus menghapus instalasi paket ini dan dependensi lainnya terlebih dahulu sebagai berikut:

[ec2-user ~]$ sudo yum remove -y httpd24 php72 mysql57-server php72-mysqlnd perl-DBD-MySQL57

Selanjutnya, instal lingkungan pengganti:

[ec2-user ~]$ sudo yum install -y httpd24 php56 mysql55-server php56-mysqlnd

Jika kemudian Anda memutuskan untuk melakukan pemutakhiran ke lingkungan yang disarankan, Anda harus menghapus paket kustom dan dependensi terlebih dahulu:

[ec2-user ~]$ sudo yum remove -y httpd24 php56 mysql55-server php56-mysqlnd perl-DBD-MySQL56

Sekarang Anda dapat menginstal paket terbaru, seperti yang dijelaskan sebelumnya.

Topik terkait

Untuk informasi lebih lanjut tentang cara memindahkan file ke instans Anda atau cara menginstal blog WordPress 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 selengkapnya tentang mendaftarkan nama domain untuk server web Anda, atau mentransfer nama domain yang ada ke host ini, lihat Menggunakan Amazon Route 53 sebagai layanan DNS untuk subdomain tanpa memigrasikan domain induk di Panduan Pengembang Amazon Route 53.