Prosedur berikut membantu Anda menginstal server web Apache dengan dukungan PHP dan MySQL pada instans Amazon Linux Anda [terkadang disebut server web LAMP atau tumpukan LAMP]. Anda dapat menggunakan server ini untuk menghosting situs web statis atau menggunakan aplikasi PHP dinamis yang membaca dan menulis informasi ke database
Jika Anda mencoba menyiapkan server web LAMP pada distribusi yang berbeda, seperti Ubuntu atau Red Hat Enterprise Linux, tutorial ini tidak akan berfungsi. Untuk Amazon Linux 2, lihat Tutorial. Instal server web LAMP di Amazon Linux 2. Untuk Ubuntu, lihat dokumentasi komunitas Ubuntu berikut. ApacheMySQLPHP. Untuk distribusi lain, lihat dokumentasi khusus mereka
Pilihan. Selesaikan tutorial ini menggunakan otomatisasiUntuk menyelesaikan tutorial ini menggunakan AWS Systems Manager Automation alih-alih tugas berikut, jalankan dokumen AWSDocs-InstallALAMPServer-ALAutomation
Langkah 1. Siapkan server LAMP
PrasyaratTutorial ini mengasumsikan bahwa Anda telah meluncurkan instans baru menggunakan AMI Amazon Linux, dengan nama DNS publik yang dapat dijangkau dari internet. Untuk informasi lebih lanjut, lihat. Anda juga harus mengonfigurasi grup keamanan untuk mengizinkan koneksi SSH [port 22], HTTP [port 80], dan HTTPS [port 443]. Untuk informasi selengkapnya tentang prasyarat ini, lihat Otorisasi lalu lintas masuk untuk instans Linux Anda
Untuk menginstal dan memulai server web LAMP dengan Amazon Linux AMI
.
Untuk memastikan semua paket perangkat lunak Anda mutakhir, lakukan pembaruan perangkat lunak cepat pada instans Anda. Proses ini mungkin memakan waktu beberapa menit, tetapi penting untuk memastikan bahwa Anda memiliki pembaruan keamanan dan perbaikan bug terbaru
Opsi
4 menginstal pembaruan tanpa meminta konfirmasi. Jika Anda ingin memeriksa pembaruan sebelum menginstal, Anda dapat menghilangkan opsi ini[ec2-user ~]$
sudo service httpd start
Starting httpd: [ OK ]
_[ec2-user ~]$
sudo yum update -y
Setelah instans Anda aktif, Anda dapat menginstal paket perangkat lunak server web Apache, MySQL, dan PHP
Beberapa aplikasi mungkin tidak kompatibel dengan lingkungan perangkat lunak yang direkomendasikan berikut ini. Sebelum menginstal paket ini, periksa apakah aplikasi LAMP Anda kompatibel dengannya. Jika ada masalah, Anda mungkin perlu menginstal lingkungan alternatif. Untuk informasi lebih lanjut, lihat
Gunakan perintah yum install untuk menginstal beberapa paket perangkat lunak dan semua dependensi terkait secara bersamaan
[ec2-user ~]$
sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd
Jika Anda menerima kesalahan
5 available, berarti instans Anda tidak diluncurkan dengan Amazon Linux AMI [mungkin Anda menggunakan Amazon Linux 2 sebagai gantinya]. Anda dapat melihat versi Amazon Linux Anda dengan perintah berikut[ec2-user ~]$
sudo service httpd start
Starting httpd: [ OK ]
_cat /etc/system-release
Mulai server web Apache
[ec2-user ~]$
sudo service httpd start
Starting httpd: [ OK ]
Gunakan perintah chkconfig untuk mengonfigurasi server web Apache untuk memulai setiap boot sistem
_[ec2-user ~]$
sudo chkconfig httpd on
Perintah chkconfig tidak memberikan pesan konfirmasi apa pun saat Anda berhasil menggunakannya untuk mengaktifkan layanan
Anda dapat memverifikasi bahwa 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
_6 di runlevel 2, 3, 4, dan 5 [yang ingin Anda lihat][ec2-user ~]$
sudo service httpd start
Starting httpd: [ OK ]
Tambahkan aturan keamanan untuk mengizinkan koneksi HTTP [port 80] masuk ke instans Anda jika Anda belum melakukannya. Secara default, grup keamanan launch-wizard-
7 disiapkan untuk instans Anda selama inisialisasi. Grup ini berisi satu aturan untuk mengizinkan koneksi SSH[ec2-user ~]$
sudo service httpd start
Starting httpd: [ OK ]
Buka konsol Amazon EC2 di https. //menghibur. aws. amazon. com/ec2/
Pilih Instans dan pilih instans Anda
Pada tab Keamanan, lihat aturan masuk. Anda harus melihat aturan berikut
Port range Protocol Source 22 tcp 0.0.0.0/0
Menggunakan
_8 memungkinkan semua alamat IPv4 mengakses instans Anda menggunakan SSH. Ini dapat diterima untuk waktu yang singkat di lingkungan pengujian, tetapi tidak aman untuk lingkungan produksi. Dalam produksi, Anda hanya mengotorisasi alamat IP atau rentang alamat tertentu untuk mengakses instans Anda[ec2-user ~]$
sudo service httpd start
Starting httpd: [ OK ]
Pilih tautan untuk grup keamanan. Menggunakan prosedur di , tambahkan aturan keamanan masuk baru dengan nilai berikut
Jenis. HTTP
Protokol. TCP
Jangkauan Pelabuhan. 80
Sumber. Kebiasaan
Uji server web Anda. Di browser web, ketikkan alamat DNS publik [atau alamat IP publik] instans Anda. Anda bisa mendapatkan alamat DNS publik untuk instans Anda menggunakan konsol Amazon EC2. Jika tidak ada konten di
_9, Anda akan melihat halaman pengujian Apache. Saat Anda menambahkan konten ke root dokumen, konten Anda muncul di alamat DNS publik instans Anda, bukan di halaman pengujian[ec2-user ~]$
sudo service httpd start
Starting httpd: [ OK ]
Verifikasi bahwa grup keamanan untuk instance berisi aturan untuk mengizinkan lalu lintas HTTP pada port 80. Untuk informasi lebih lanjut, lihat
Jika Anda tidak menggunakan Amazon Linux, Anda mungkin juga perlu mengonfigurasi firewall pada instans Anda untuk mengizinkan koneksi ini. Untuk informasi selengkapnya tentang cara mengonfigurasi firewall, lihat dokumentasi untuk distribusi khusus Anda
Apache httpd menyajikan file yang disimpan dalam direktori yang disebut root dokumen Apache. Root dokumen Amazon Linux Apache adalah
[ec2-user ~]$
sudo service httpd start
Starting httpd: [ OK ]
9, 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 ~]$
sudo chkconfig httpd on
_1 memanipulasi file dalam direktori ini, Anda harus mengubah kepemilikan dan izin direktori. Ada banyak cara untuk menyelesaikan tugas ini. Dalam tutorial ini, Anda menambahkan [ec2-user ~]$
sudo chkconfig httpd on
_1 ke grup [ec2-user ~]$
sudo chkconfig httpd on
3, untuk memberikan kepemilikan [ec2-user ~]$
sudo chkconfig httpd on
3 grup atas direktori [ec2-user ~]$
sudo chkconfig httpd on
5 dan memberikan izin menulis ke grupUntuk mengatur izin file
Tambahkan pengguna Anda [dalam hal ini,
_1] ke grup[ec2-user ~]$
sudo chkconfig httpd on
3[ec2-user ~]$
sudo chkconfig httpd on
[ec2-user ~]$
sudo usermod -a -G apache
ec2-user
Keluar lalu masuk lagi untuk mengambil grup baru, lalu verifikasi keanggotaan Anda
Keluar [gunakan perintah keluar atau tutup jendela terminal]
[ec2-user ~]$
exit
Untuk memverifikasi keanggotaan Anda di grup
_3, sambungkan kembali ke instans Anda, lalu jalankan perintah berikut[ec2-user ~]$
sudo chkconfig httpd on
0[ec2-user ~]$
sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd
Ubah kepemilikan grup
_5 dan isinya menjadi grup[ec2-user ~]$
sudo chkconfig httpd on
3[ec2-user ~]$
sudo chkconfig httpd on
1[ec2-user ~]$
sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd
Untuk menambahkan izin tulis grup dan menyetel ID grup pada subdirektori mendatang, ubah izin direktori
5 dan subdirektorinya[ec2-user ~]$
sudo chkconfig httpd on
2[ec2-user ~]$
sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd
Untuk menambahkan izin tulis grup, ubah izin file
5 dan subdirektorinya secara rekursif[ec2-user ~]$
sudo chkconfig httpd on
_3[ec2-user ~]$
sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd
Sekarang,
[ec2-user ~]$
sudo chkconfig httpd on
1 [dan anggota masa depan grup [ec2-user ~]$
sudo chkconfig httpd on
3] dapat menambahkan, menghapus, dan mengedit file di root dokumen Apache, memungkinkan Anda menambahkan konten, seperti situs web statis atau aplikasi PHP[Opsional] Amankan server web AndaServer web yang menjalankan protokol HTTP tidak memberikan keamanan transportasi untuk data yang dikirim atau diterimanya. Saat Anda terhubung ke server HTTP menggunakan browser web, URL yang Anda kunjungi, konten halaman web yang Anda terima, dan konten [termasuk kata sandi] dari formulir HTML 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 memasang dukungan untuk HTTPS [HTTP Secure], yang melindungi data Anda dengan enkripsi SSL/TLS
Untuk informasi tentang mengaktifkan HTTPS di server Anda, lihat Tutorial. Konfigurasikan SSL/TLS dengan Amazon Linux AMI
Langkah 2. Uji server Lamp Anda
Jika server Anda terinstal dan berjalan, dan izin file Anda disetel dengan benar, akun
[ec2-user ~]$
sudo chkconfig httpd on
1 Anda harus dapat membuat file PHP di direktori [ec2-user ~]$
sudo service httpd start
Starting httpd: [ OK ]
9 yang tersedia dari internetUntuk menguji server web LAMP Anda
Buat file PHP di root dokumen Apache
_4[ec2-user ~]$
sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd
Jika Anda mendapatkan kesalahan "Izin ditolak" saat mencoba menjalankan perintah ini, coba keluar dan masuk lagi untuk mengambil izin grup yang tepat yang telah Anda konfigurasikan
Di browser web, ketikkan URL file yang baru saja Anda buat. URL ini adalah alamat DNS publik instans Anda diikuti dengan garis miring dan nama file. Sebagai contoh
5[ec2-user ~]$
sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd
Anda akan melihat halaman informasi PHP
Jika Anda tidak melihat halaman ini, pastikan file
7 telah dibuat dengan benar pada langkah sebelumnya. Anda juga dapat memverifikasi bahwa semua paket yang diperlukan telah diinstal dengan perintah berikut. Versi paket di kolom kedua tidak perlu cocok dengan keluaran contoh ini[ec2-user ~]$
chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
6[ec2-user ~]$
sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd
Jika salah satu paket yang diperlukan tidak tercantum dalam output Anda, instal menggunakan perintah sudo yum install
8[ec2-user ~]$
chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Hapus file
_9. Meskipun ini dapat menjadi informasi yang berguna, namun tidak boleh disiarkan ke internet untuk alasan keamanan[ec2-user ~]$
chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
7[ec2-user ~]$
sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd
Langkah 3. Amankan server basis data
Instalasi default 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 tidak aman dari instalasi Anda. Bahkan jika Anda tidak berencana menggunakan server MySQL, sebaiknya lakukan prosedur ini
Untuk mengamankan server database
Mulai server MySQL
_8[ec2-user ~]$
sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd
Jalankan mysql_secure_installation
_9[ec2-user ~]$
sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd
Saat diminta, ketik kata sandi untuk akun root
Ketik kata sandi root saat ini. Secara default, akun root tidak memiliki kata sandi. tekan enter
Ketik
_0 untuk menyetel kata sandi, dan ketikkan kata sandi yang aman dua kali. Untuk informasi selengkapnya tentang cara membuat kata sandi yang aman, lihat https. //identitasaman. norton. com/pembuat kata sandi/. Pastikan untuk menyimpan kata sandi ini di tempat yang amanPort range Protocol Source 22 tcp 0.0.0.0/0
Menetapkan kata sandi root untuk MySQL hanyalah ukuran paling dasar untuk mengamankan database Anda. Saat Anda membuat atau menginstal aplikasi berbasis database, Anda biasanya membuat pengguna layanan database untuk aplikasi tersebut dan menghindari penggunaan akun root untuk apa pun selain administrasi database
Ketik
_0 untuk menghapus akun pengguna anonimPort range Protocol Source 22 tcp 0.0.0.0/0
Ketik
_0 untuk menonaktifkan login root jarak jauhPort range Protocol Source 22 tcp 0.0.0.0/0
Ketik
_0 untuk menghapus database pengujianPort range Protocol Source 22 tcp 0.0.0.0/0
Ketik
_0 untuk memuat ulang tabel hak istimewa dan menyimpan perubahan AndaPort range Protocol Source 22 tcp 0.0.0.0/0
[Opsional] Jika Anda tidak berencana untuk langsung menggunakan server MySQL, hentikan. Anda dapat memulai ulang saat Anda membutuhkannya lagi
_0cat /etc/system-release
[Opsional] Jika Anda ingin server MySQL dimulai setiap boot, ketikkan perintah berikut
_1cat /etc/system-release
Anda sekarang harus memiliki server web LAMP yang berfungsi penuh. Jika Anda menambahkan konten ke root dokumen Apache di
[ec2-user ~]$
sudo service httpd start
Starting httpd: [ OK ]
9, Anda seharusnya dapat melihat konten tersebut di alamat DNS publik untuk instans AndaLangkah 4. [Opsional] Instal phpMyAdmin
Untuk menginstal phpMyAdmin
phpMyAdmini adalah alat manajemen basis data berbasis web yang dapat Anda gunakan untuk melihat dan mengedit basis data MySQL pada instans EC2 Anda. Ikuti langkah-langkah di bawah ini untuk menginstal dan mengonfigurasi phpMyAdmin di instans Amazon Linux Anda
Kami tidak menyarankan menggunakan phpMyAdmin untuk mengakses server LAMP kecuali Anda telah mengaktifkan SSL/TLS di Apache; . Untuk rekomendasi keamanan dari pengembang, lihat
Sistem manajemen paket Amazon Linux saat ini tidak mendukung penginstalan otomatis phpMyAdmin di lingkungan PHP 7. Tutorial ini menjelaskan cara menginstal phpMyAdmin secara manual
Masuk ke instans EC2 Anda menggunakan SSH
Instal dependensi yang diperlukan
_2cat /etc/system-release
Mulai ulang Apache
_3cat /etc/system-release
Arahkan ke akar dokumen Apache di
9[ec2-user ~]$
sudo service httpd start
Starting httpd: [ OK ]
_4cat /etc/system-release
Pilih paket sumber untuk rilis phpMyAdmin terbaru dari https. // www. phpmyadmin. bersih/download. Untuk mengunduh file langsung ke instans Anda, salin tautan dan tempelkan ke perintah wget, seperti dalam contoh ini
_5cat /etc/system-release
Buat folder phpMyAdmin dan ekstrak paket ke dalamnya menggunakan perintah berikut
_6cat /etc/system-release
Hapus tarball
_7Port range Protocol Source 22 tcp 0.0.0.0/0
_7cat /etc/system-release
[Opsional] Jika server MySQL tidak berjalan, mulai sekarang
_8cat /etc/system-release
Di browser web, ketikkan URL instalasi phpMyAdmin Anda. URL ini adalah alamat DNS publik [atau alamat IP publik] instans Anda diikuti dengan garis miring dan nama direktori instalasi Anda. Sebagai contoh
_9cat /etc/system-release
Anda akan melihat halaman login phpMyAdmin
Masuk ke instalasi phpMyAdmin Anda dengan nama pengguna
8 dan kata sandi root MySQL yang Anda buat sebelumnyaPort range Protocol Source 22 tcp 0.0.0.0/0
Instalasi Anda masih harus dikonfigurasi sebelum Anda menjalankannya. Untuk mengonfigurasi phpMyAdmin, Anda dapat , , atau menggabungkan kedua pendekatan tersebut
Untuk informasi tentang cara menggunakan phpMyAdmin, lihat Panduan Pengguna phpMyAdmin
Memecahkan masalah
Bagian ini menawarkan saran untuk mengatasi masalah umum yang mungkin Anda temui saat menyiapkan server LAMP baru
Saya tidak dapat terhubung ke server saya menggunakan browser web
Lakukan pemeriksaan berikut untuk melihat apakah server web Apache Anda berjalan dan dapat diakses
Apakah server web berjalan?
Anda dapat memverifikasi bahwa 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
_6 di runlevel 2, 3, 4, dan 5 [yang ingin Anda lihat][ec2-user ~]$
sudo service httpd start
Starting httpd: [ OK ]
Jika proses httpd tidak berjalan, ulangi langkah-langkah yang dijelaskan di
Apakah firewall dikonfigurasi dengan benar?
Verifikasi bahwa grup keamanan untuk instance berisi aturan untuk mengizinkan lalu lintas HTTP pada port 80. Untuk informasi lebih lanjut, lihat
Perangkat lunak aplikasi yang ingin saya jalankan di server saya tidak kompatibel dengan versi PHP yang diinstal atau perangkat lunak lain
Tutorial ini merekomendasikan penginstalan versi terbaru dari Apache HTTP Server, PHP, dan MySQL. Sebelum menginstal aplikasi LAMP tambahan, periksa persyaratannya untuk memastikan bahwa aplikasi tersebut kompatibel dengan lingkungan yang Anda instal. Jika versi terbaru PHP tidak didukung, dimungkinkan [dan sepenuhnya aman] untuk menurunkan versi ke konfigurasi sebelumnya yang didukung. Anda juga dapat menginstal lebih dari satu versi PHP secara paralel, yang memecahkan masalah kompatibilitas tertentu dengan sedikit usaha. Untuk informasi tentang mengonfigurasi preferensi di antara beberapa versi PHP yang terinstal, lihat Amazon Linux AMI 2016. 09 Catatan Rilis
Cara menurunkan versiVersi sebelumnya yang telah teruji dengan baik dari tutorial ini menyerukan paket inti LAMP berikut
_0[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
_1[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
_2[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
_3[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
Jika Anda telah menginstal paket-paket terbaru seperti yang disarankan di awal tutorial ini, Anda harus terlebih dahulu menghapus paket-paket ini dan dependensi lainnya sebagai berikut
[ec2-user ~]$
sudo service httpd start
Starting httpd: [ OK ]
_1Selanjutnya, instal lingkungan pengganti
[ec2-user ~]$
sudo service httpd start
Starting httpd: [ OK ]
_2Jika nanti Anda memutuskan untuk memutakhirkan ke lingkungan yang disarankan, Anda harus terlebih dahulu menghapus paket dan dependensi yang disesuaikan
[ec2-user ~]$
sudo service httpd start
Starting httpd: [ OK ]
_3Sekarang Anda dapat menginstal paket terbaru, seperti yang dijelaskan sebelumnya
topik-topik yang berkaitan
Untuk informasi selengkapnya tentang mentransfer file ke instans Anda atau 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
Untuk informasi selengkapnya tentang 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 di Panduan Pengembang Amazon Route 53