GNU/Linux >> Belajar Linux >  >> Ubuntu

Instal Apache, MySQL, PHP (LAMP Stack) Di Ubuntu 20.04 LTS

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

Ubuntu
  1. Cara Menginstal tumpukan Linux, Apache, MySQL, PHP (LAMP) di Ubuntu 16.04

  2. Cara Memasang LAMP Stack di Ubuntu 22.04 LTS

  3. Cara Menginstal Apache, MySQL, PHP (LAMP) di Ubuntu 16.04 LTS

  1. Tutorial server LAMP Ubuntu 14.10 dengan Apache 2, PHP 5 dan MySQL (MariaDB)

  2. Tutorial server LAMP Ubuntu 15.04 dengan Apache 2, PHP 5 dan MariaDB (bukan MySQL)

  3. Tutorial server LAMP Ubuntu 15.10 dengan Apache 2.4, PHP 5 dan MariaDB (bukan MySQL)

  1. Tutorial server LAMP Ubuntu 16.04 (LTS) dengan Apache, PHP 7, dan MySQL

  2. Instal LAMP Stack (Apache, MariaDB, PHP) di Ubuntu 22.04

  3. Cara Menginstal tumpukan Linux, Apache, MySQL, PHP (LAMP) di Ubuntu 16.04 / Ubuntu 14.04