GNU/Linux >> Belajar Linux >  >> Ubuntu

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

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

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