LAMPU 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 L inux, M ariaDB/L YSQL, P HP/P ython/P erl. Tutorial ini menjelaskan cara menginstal Apache, MySQL, PHP (LAMP stack) di server Ubuntu 18.04 LTS.
Instal Apache, MySQL, PHP (LAMP) Stack Di Ubuntu 18.04 LTS
Untuk tujuan tutorial ini, kita akan menggunakan testbox Ubuntu berikut.
- Sistem Operasi :Ubuntu 18.04.1 LTS Server Edition
- Alamat IP :192.168.225.22/24
1. Instal server web Apache
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:
$ sudo systemctl status apache2
Contoh keluarannya adalah:
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: en Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Tue 2019-02-05 10:48:03 UTC; 1min 5s ago Main PID: 2025 (apache2) Tasks: 55 (limit: 2320) CGroup: /system.slice/apache2.service ├─2025 /usr/sbin/apache2 -k start ├─2027 /usr/sbin/apache2 -k start └─2028 /usr/sbin/apache2 -k start Feb 05 10:48:02 ubuntuserver systemd[1]: Starting The Apache HTTP Server... Feb 05 10:48:03 ubuntuserver apachectl[2003]: AH00558: apache2: Could not reliably Feb 05 10:48:03 ubuntuserver systemd[1]: Started The Apache HTTP Server.
Selamat! Layanan Apache aktif dan berjalan!!
1.1 Sesuaikan firewall untuk mengizinkan server web Apache
Secara default, browser web apache tidak dapat diakses dari sistem jarak jauh jika Anda telah mengaktifkan firewall UFW di Ubuntu 18.04 LTS. Anda harus mengizinkan port http dan https dengan mengikuti langkah-langkah 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 "info aplikasi ufw "Nama Profil" perintah.
Mari kita lihat “Apache Full” Profil. Untuk melakukannya, jalankan:
$ 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, profil "Apache Full" telah menyertakan aturan untuk mengaktifkan lalu lintas ke port 80 dan 443 :
Sekarang, jalankan perintah berikut untuk mengizinkan lalu lintas HTTP dan HTTPS masuk untuk profil ini:
$ sudo ufw allow in "Apache Full" Rules updated Rules updated (v6)
Jika Anda tidak ingin mengizinkan lalu lintas https, tetapi hanya lalu lintas http (80), jalankan:
$ sudo ufw app info "Apache"
1.2 Menguji server Web Apache
Sekarang, buka browser web Anda dan akses halaman pengujian Apache dengan menavigasi ke http://localhost/ atau http://IP-Address/ .
Halaman pengujian Apache
Jika Anda melihat layar seperti di atas, Anda siap melakukannya. Server Apache berfungsi!
2. Instal MySQL
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: enab Active: active (running) since Tue 2019-02-05 11:07:50 UTC; 17s ago Main PID: 3423 (mysqld) Tasks: 27 (limit: 2320) CGroup: /system.slice/mysql.service └─3423 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid Feb 05 11:07:49 ubuntuserver systemd[1]: Starting MySQL Community Server... Feb 05 11:07:50 ubuntuserver systemd[1]: Started MySQL Community Server.
Mysql sedang berjalan!
2.1 Siapkan kata sandi pengguna administratif basis data (root)
Secara default, MySQL root kata sandi pengguna kosong. Anda perlu mengamankan server MySQL Anda dengan menjalankan skrip berikut:
$ sudo mysql_secure_installation
Anda akan ditanya apakah Anda ingin menyiapkan VALIDATE PASSWORD plugin atau tidak. Plugin 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 membiarkan plugin ini dinonaktifkan . Namun, Anda harus menggunakan kata sandi yang kuat dan unik untuk kredensial basis data. Jika tidak ingin mengaktifkan plugin ini, cukup tekan tombol apa saja untuk melewati bagian validasi kata sandi dan melanjutkan langkah selanjutnya.
Jika jawaban Anda Ya , Anda akan diminta untuk memilih tingkat validasi kata sandi.
Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD PLUGIN 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 plugin? Press y|Y for Yes, any other key for No y
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:
Sekarang, masukkan kata sandi untuk pengguna root MySQL. Harap diingat bahwa Anda harus menggunakan kata sandi untuk pengguna root mysql 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: 50 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 50 ). 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 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!
Itu dia. Kata sandi untuk pengguna root MySQL telah ditetapkan.
2.2 Ubah metode otentikasi untuk pengguna root MySQL
Secara default, pengguna root MySQL diatur untuk mengautentikasi menggunakan auth_socket plugin di 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 ke mysql_native_password . Untuk melakukannya, login ke prompt MySQL Anda menggunakan perintah:
$ sudo mysql
Jalankan perintah berikut pada prompt mysql untuk menemukan metode otentikasi saat ini untuk semua akun pengguna mysql:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Contoh keluaran:
+------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | | auth_socket | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | debian-sys-maint | *F126737722832701DD3979741508F05FA71E5BA0 | mysql_native_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 4 rows in set (0.00 sec)
Seperti yang Anda lihat, pengguna root mysql menggunakan auth_socket
plugin untuk otentikasi.
Untuk mengubah otentikasi ini menjadi mysql_native_password metode, jalankan perintah berikut di prompt mysql. Jangan lupa ganti "sandi" dengan kata sandi yang kuat dan unik pilihan Anda. Jika Anda telah mengaktifkan plugin VALIDATION, pastikan Anda telah menggunakan sandi yang kuat berdasarkan persyaratan kebijakan saat ini.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Perbarui perubahan menggunakan perintah:
FLUSH PRIVILEGES;
Sekarang periksa kembali apakah metode otentikasi diubah atau tidak menggunakan perintah:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Contoh keluaran:
Bagus! Sekarang pengguna root myql dapat mengautentikasi menggunakan kata sandi untuk mengakses shell mysql.
Keluar dari perintah mysql:
exit
3. Instal PHP
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 18.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 tombol ESC 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 halaman pengujian php sekarang.
halaman pengujian php
Biasanya, ketika pengguna meminta direktori dari server web, Apache pertama-tama akan mencari file bernama index.html . Jika Anda ingin mengubah Apache untuk menyajikan 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 file "index.php" ke dulu. Setelah Anda membuat perubahan, dir.conf your 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 dan tekan tombol ENTER.
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
Untuk menginstal semua modul (meskipun tidak perlu), jalankan:
$ sudo apt-get install php*
Jangan lupa untuk me-restart layanan Apache setelah menginstal modul php apa pun. Untuk memeriksa apakah modul dimuat atau tidak, buka file info.php di browser Anda dan periksa apakah ada.
Selanjutnya, Anda mungkin ingin menginstal alat manajemen basis data untuk mengelola basis data dengan mudah melalui browser web. Jika demikian, instal phpMyAdmin seperti yang dijelaskan pada tautan berikut.
- Instal phpMyAdmin Dengan LAMP Stack Di Ubuntu 18.04 LTS
Selamat! Kami telah berhasil menyiapkan tumpukan LAMP di server Ubuntu 18.04 LTS.
Baca juga:
- Instal Nginx, MariaDB, PHP (LEMP) Stack di Ubuntu 18.04 LTS
- Instal tumpukan Apache, MariaDB, PHP (LAMP) di Arch Linux
- Instal Nginx, MariaDB, PHP (LEMP) stack di Arch Linux
Dan, itu saja untuk saat ini. Seperti yang Anda lihat, Menyiapkan tumpukan LAMP di Ubuntu benar-benar mudah dan langsung.
Referensi:
- Samudra Digital