LAMP stack adalah platform pengembangan web open source yang populer yang dapat digunakan untuk menjalankan dan menyebarkan situs web dinamis dan aplikasi berbasis web. Biasanya, tumpukan LAMP terdiri dari server web Apache, database MariaDB/MySQL, bahasa pemrograman PHP/Python/Perl. LAMP adalah singkatan dari Linux, Apache, MariaDB/MYSQL, PHP/Python/Perl. Tutorial langkah demi langkah ini menjelaskan cara menginstal Apache, MySQL, PHP (LAMP stack) di Ubuntu 20.04 LTS server edition.
Instal Apache, MySQL, PHP (LAMP Stack) Di Ubuntu 20.04 LTS
Untuk tujuan tutorial ini, kita akan menggunakan sistem Ubuntu berikut.
- Sistem Operasi :Ubuntu 20.04 LTS Server Edition
- Alamat IP :192.168.225.52/24
Pertama, mari kita instal server Apache.
1. Instal server web Apache Di Ubuntu
Pertama-tama, perbarui server Ubuntu menggunakan perintah:
$ sudo apt update
$ sudo apt upgrade
Selanjutnya, instal server web Apache:
$ sudo apt install apache2
Periksa apakah server web Apache berjalan atau tidak dengan perintah:
$ sudo systemctl status apache2
Contoh keluarannya adalah:
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabl> Active: active (running) since Fri 2020-05-29 07:02:26 UTC; 25s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 23996 (apache2) Tasks: 55 (limit: 2283) Memory: 5.1M CGroup: /system.slice/apache2.service ├─23996 /usr/sbin/apache2 -k start ├─23998 /usr/sbin/apache2 -k start └─23999 /usr/sbin/apache2 -k start May 29 07:02:26 ubuntuserver systemd[1]: Starting The Apache HTTP Server... May 29 07:02:26 ubuntuserver apachectl[23981]: AH00558: apache2: Could not reliably det> May 29 07:02:26 ubuntuserver systemd[1]: Started The Apache HTTP Server.
Selamat! Layanan Apache aktif dan berjalan!!
1.1. Izinkan server web Apache melalui firewall UFW
UFW , singkatan dari U nrumit F marahdengan all, adalah program untuk mengelola firewall netfilter yang dirancang agar mudah digunakan. UFW tersedia secara default di semua versi Ubuntu.
Secara default, browser web Apache tidak dapat diakses dari sistem jarak jauh jika Anda telah mengaktifkan firewall UFW di Ubuntu 20.04 LTS. Anda harus mengizinkan http
dan https
port dengan mengikuti langkah-langkah yang diberikan di bawah ini.
Pertama, buat daftar profil aplikasi yang tersedia di sistem Ubuntu Anda menggunakan perintah:
$ sudo ufw app list
Contoh keluaran:
Available applications: Apache Apache Full Apache Secure OpenSSH
Seperti yang Anda lihat, aplikasi Apache dan OpenSSH telah menginstal profil UFW. Anda dapat membuat daftar informasi tentang setiap profil dan aturan yang disertakan dengan menggunakan ufw app info "Profile Name"
perintah.
Mari kita lihat “Apache Full”
profil menggunakan perintah:
$ sudo ufw app info "Apache Full"
Contoh keluaran:
Profile: Apache Full Title: Web Server (HTTP,HTTPS) Description: Apache v2 is the next generation of the omnipresent Apache web server. Ports: 80,443/tcp
Seperti yang Anda lihat, "Apache Full"
profile telah menyertakan aturan untuk mengaktifkan lalu lintas ke port 80
dan 443
.
Sekarang, jalankan perintah berikut untuk mengizinkan masuk HTTP
dan HTTPS
lalu lintas untuk profil ini:
$ sudo ufw allow in "Apache Full"
Anda akan melihat output seperti di bawah ini:
Rules updated Rules updated (v6)
Jika Anda tidak ingin mengizinkan https
lalu lintas, tetapi hanya http
(80) lalu lintas, jalankan:
$ sudo ufw app info "Apache"
1.2. Uji server Web Apache
Sekarang, buka browser web Anda dan akses halaman pengujian Apache dengan menavigasi ke http://localhost/
atau http://IP-Address/
.
Jika Anda melihat "Halaman default Apache 2 Ubuntu" seperti yang ditunjukkan di bawah ini, Anda siap melakukannya. Server Apache berfungsi!
2. Instal MySQL Di Ubuntu
Untuk menginstal MySQL Di Ubuntu, jalankan:
$ sudo apt install mysql-server
Verifikasi apakah layanan MySQL berjalan atau tidak menggunakan perintah:
$ sudo systemctl status mysql
Contoh keluaran:
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-05-29 07:15:22 UTC; 2min 8s ago Main PID: 25242 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 2283) Memory: 323.7M CGroup: /system.slice/mysql.service └─25242 /usr/sbin/mysqld May 29 07:15:16 ubuntuserver systemd[1]: Starting MySQL Community Server... May 29 07:15:22 ubuntuserver systemd[1]: Started MySQL Community Server.
Seperti yang Anda lihat pada output di atas, MySQL sedang berjalan!
2.1. Siapkan kata sandi pengguna administratif basis data (root) untuk MySQL
Secara default, MySQL root
kata sandi pengguna kosong. Tidak disarankan untuk menggunakan kata sandi kosong untuk akun administratif basis data. Anda perlu mengamankan server MySQL Anda dengan menjalankan skrip berikut:
$ sudo mysql_secure_installation
Anda akan ditanya apakah ingin menyiapkan "VALIDATE PASSWORD"
komponen atau tidak. Komponen ini memungkinkan pengguna untuk mengonfigurasi kata sandi yang kuat untuk kredensial basis data. Jika diaktifkan, Ini akan secara otomatis memeriksa kekuatan kata sandi dan memaksa pengguna untuk hanya mengatur kata sandi yang cukup aman. Aman untuk membiarkannya dinonaktifkan . Namun, Anda harus menggunakan kata sandi yang kuat dan unik untuk kredensial basis data. Jika Anda tidak ingin mengaktifkan komponen ini, cukup tekan tombol apa saja untuk melewati bagian validasi kata sandi dan melanjutkan langkah selanjutnya.
Masukkan y
jika Anda ingin mengatur VALIDATE PASSWORD
komponen:
Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: y
Jika jawaban Anda Ya , Anda akan diminta untuk memilih tingkat validasi kata sandi. Validasi sandi yang tersedia rendah , sedang dan kuat . Cukup masukkan nomor yang sesuai (0 untuk rendah, 1 untuk sedang dan 2 untuk sandi kuat) dan tekan tombol ENTER.
There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Sekarang, masukkan kata sandi untuk MySQL root
pengguna. Harap diingat bahwa Anda harus menggunakan kata sandi untuk root
MySQL pengguna tergantung pada kebijakan kata sandi yang Anda pilih pada langkah sebelumnya. Jika Anda tidak mengaktifkan plugin, cukup gunakan kata sandi yang kuat dan unik pilihan Anda.
Please set the password for root here. New password: Re-enter new password: Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
Setelah Anda memasukkan kata sandi dua kali, Anda akan melihat kekuatan kata sandi (Dalam kasus kami ini adalah 100 ). Jika Anda setuju, tekan Y untuk melanjutkan dengan kata sandi yang diberikan. Jika tidak puas dengan panjang kata sandi, tekan tombol lain dan atur kata sandi yang kuat. Saya setuju dengan kata sandi saya saat ini, jadi saya memilih y
.
Untuk pertanyaan lainnya, cukup ketik y
dan tekan ENTER
. Ini akan menghapus pengguna anonim, melarang login pengguna root dari jarak jauh, dan menghapus basis data pengujian.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success. All done!
Selesai! Kami telah mengatur root
MySQL kata sandi pengguna.
2.2. Ubah metode otentikasi untuk pengguna root MySQL
Secara default, pengguna root MySQL diatur untuk mengautentikasi menggunakan auth_socket
plugin mulai dari MySQL 5.7 dan versi yang lebih baru di Ubuntu. Meskipun meningkatkan keamanan, itu juga akan memperumit hal-hal ketika Anda mengakses server database Anda menggunakan program eksternal, misalnya phpMyAdmin. Untuk memperbaiki masalah ini, Anda perlu mengubah metode autentikasi dari auth_socket menjadi caching_sha2_password
atau mysql_native_password
.
Pada versi MySQL 8.0, plugin otentikasi yang disukai dan default adalah caching_sha2_password
. caching_sha2_password
plugin otentikasi menyediakan enkripsi kata sandi yang lebih aman daripada mysql_native_password
pengaya.
Untuk mengubah plugin otentikasi, login ke prompt MySQL Anda menggunakan perintah:
$ sudo mysql
Atau,
$ mysql -u root -p
Masukkan root
MySQL sandi yang kita siapkan pada langkah sebelumnya.
Jalankan perintah berikut pada prompt mysql untuk menemukan metode otentikasi saat ini untuk semua akun pengguna MySQL:
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Contoh keluaran:
+------------------+------------------------------------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+------------------------------------------------------------------------+-----------------------+-----------+ | debian-sys-maint | $A$005$=s%UO"�[email protected]>[email protected] | caching_sha2_password | localhost | | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | root | | auth_socket | localhost | +------------------+------------------------------------------------------------------------+-----------------------+-----------+ 5 rows in set (0.00 sec)
Seperti yang Anda lihat, pengguna root mysql menggunakan auth_socket
plugin untuk otentikasi.
Untuk mengubah auth_socket
plugin ke caching_sha2_password
, jalankan perintah berikut pada prompt MySQL. Jika Anda telah mengaktifkan VALIDATE PASSWORD
plugin, pastikan Anda telah menggunakan kata sandi yang kuat berdasarkan persyaratan kebijakan saat ini. Strong harus terdiri dari minimal 8 karakter termasuk huruf besar, huruf kecil, angka, dan karakter khusus.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Password123#@!';
Ganti Password123#@!
dengan kata sandi yang kuat dan unik pilihan Anda pada perintah di atas.
Perbarui perubahan menggunakan perintah:
mysql> FLUSH PRIVILEGES;
Sekarang periksa apakah plugin otentikasi saat ini diubah atau tidak menggunakan perintah:
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Contoh keluaran:
Bagus! Sekarang MySQL root
pengguna dapat mengautentikasi menggunakan kata sandi untuk mengakses shell MySQL.
Keluar dari perintah MySQL:
mysql> exit
Catatan:
Meskipun caching_sha2_password
plugin menyediakan enkripsi aman yang ditingkatkan, ia memiliki beberapa masalah kompatibilitas dengan instalasi MySQL yang ada. Untuk detailnya, lihat tautan ini . Jika Anda mengalami masalah kompatibilitas, Anda perlu menyetel mysql_native_password
plugin sebagai plugin otentikasi default.
Untuk mengubah ke mysql_native_password
plugin, jalankan perintah berikut pada prompt MySQL.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Perbarui perubahan menggunakan perintah:
mysql> FLUSH PRIVILEGES;
Sekarang periksa kembali apakah metode otentikasi diubah atau tidak menggunakan perintah:
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Contoh keluaran:
Keluar dari perintah mysql:
mysql> exit
3. Instal PHP Di Ubuntu
Untuk menginstal PHP, jalankan:
$ sudo apt install php libapache2-mod-php php-mysql
Setelah menginstal PHP, buat info.php
file di folder dokumen root Apache. Biasanya, folder dokumen root Apache adalah /var/www/html/
atau /var/www/
di sebagian besar distribusi Linux berbasis Debian. Di Ubuntu 20.04 LTS, ini adalah /var/www/html/
.
Mari kita buat info.php
file di folder root apache:
$ sudo vi /var/www/html/info.php
Tambahkan baris berikut:
<?php phpinfo(); ?>
Tekan ESC
kunci dan ketik :wq
untuk menyimpan dan keluar dari file. Mulai ulang layanan apache untuk menerapkan perubahan.
$ sudo systemctl restart apache2
3.1. Uji PHP
Buka browser web Anda dan navigasikan ke http://IP-address/info.php
URL.
Anda akan melihat informasi php seperti versi, API server, dan detail semua plugin php yang diaktifkan.
Biasanya, ketika pengguna meminta direktori dari server web, Apache pertama-tama akan mencari file bernama index.html
. Jika Anda ingin mengubah Apache untuk melayani file php daripada yang lain, pindahkan index.php
ke posisi pertama di dir.conf
file seperti yang ditunjukkan di bawah ini
$ sudo vi /etc/apache2/mods-enabled/dir.conf
Berikut isi dari file di atas.
<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Pindahkan index.php
file ke pertama . Setelah Anda membuat perubahan, dir.conf
. Anda file akan terlihat seperti di bawah ini.
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Tekan ESC
kunci dan ketik :wq
untuk menyimpan dan menutup file. Mulai ulang layanan Apache untuk menerapkan perubahan.
$ sudo systemctl restart apache2
3.2. Instal modul PHP
Untuk meningkatkan fungsionalitas PHP, Anda dapat menginstal beberapa modul PHP tambahan.
Untuk membuat daftar modul PHP yang tersedia, jalankan:
$ sudo apt-cache search php- | less
Contoh keluaran:
Gunakan tombol panah untuk melihat hasilnya. Untuk keluar, ketik q
.
Untuk menemukan detail modul php tertentu, misalnya php-gd , jalankan:
$ sudo apt-cache show php-gd
Untuk menginstal modul php, jalankan:
$ sudo apt install php-gd
Jangan lupa untuk me-restart layanan Apache setelah menginstal modul php. Untuk memeriksa apakah modul dimuat atau tidak, buka file info.php di browser Anda dan periksa apakah ada.
Selamat! Seperti yang Anda lihat, sangat mudah untuk menginstal apache, mysql, php (LAMP stack) di Ubuntu 20.04 LTS. Sekarang Anda dapat mulai menghosting situs web Anda menggunakan tumpukan LAMP.
Baca Selanjutnya:
- Instal phpMyAdmin Dengan LAMP Stack Di Ubuntu 20.04 LTS
Bacaan terkait:
- Instal Nginx, MySQL, PHP (LEMP Stack) Di Ubuntu 20.04 LTS
- Instal Apache, MariaDB, PHP (LAMP Stack) Di CentOS 8