Dalam tutorial ini, kita akan belajar cara menginstal dan mengkonfigurasi Lamp (apache, mysql, php) di server Ubuntu 22.04.
Pastikan anda sudah memiliki Server atau VPS yang sudah terinstall Sistem Operasi Linux Ubuntu 22.04. dan dapat diakses dengan IP publik
LAMP adalah singkatan dari Linux, Apache, Mysql, dan PHP. Ini adalah platform open source dan bekerja pada sistem operasi Linux. Ini menggunakan server web Apache, sistem manajemen basis data relasional MySQL, dan bahasa script berorientasi objek PHP.
Berikut tahapan untuk menginstal dan mengkonfigurasi LAMP linux, apache, PHP, MySQL di ubuntu 22.04:
- Update Sistem Operasi Linux
- Instal Apache
- Konfigurasi Firewall
- Periksa Instalasi Apache
- Instal MySQL
- Secure MySQL
- Install PHP
- Konfigurasi PHP
- Konfigurasikan Apache
- Install phpmyadmin
- Instal Let’s Encrypt SSL
1. Update System Dependencies
Buka command prompt atau terminal dan jalankan perintah berikut pada prompt perintah untuk memperbarui paket ke versi terbaru yang tersedia:
sudo apt update
sudo apt upgrade
Tunggu sampai proses selesai
2. Install Apache
Instal apache di sistem ubuntu 22.04, jadi jalankan perintah berikut pada command prompt untuk menginstal apache di sistem ubuntu 22.04:
sudo apt install apache2
2. Setup Firewall
Setelah penginstalan apache selesai, kita perlu menyiapkan Uncomplicated Firewall (UFW) dengan Apache untuk mengizinkan akses publik pada port web default untuk HTTP dan HTTPS
3. Setup Firewall
Setelah penginstalan apache selesai, kita perlu menyiapkan Uncomplicated Firewall (UFW) dengan Apache untuk mengizinkan akses publik pada port web default untuk HTTP dan HTTPS
sudo ufw app list
Akan tampil semua aplikasi yang terdaftar.
Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
- Apache: ini membuka port 80 (lalu lintas web normal dan tidak terenkripsi)
- Apache Full: ini membuka port 80 (lalu lintas web normal dan tidak terenkripsi) dan port 443 (lalu lintas terenkripsi TLS/SSL)
- Apache Secure: ini hanya membuka port 443 (lalu lintas terenkripsi TLS/SSL)
- OpenSSH: ini membuka port 22 untuk akses SSH
Jika kita tidak akan menggunakan SSL, kita hanya perlu mengaktifkan profil Apache.
Kemudian aktifkan apache full dengan menggunakan perintah berikut; adalah sebagai berikut:
sudo ufw allow 'Apache Full'
Dengan perintah ini kita bisa melihat status UFW.
sudo ufw status
Akan tampil output
Output
Status: active
To Action From
-- ------ ----
Apache Full ALLOW Anywhere
OpenSSH ALLOW Anywhere
Apache Full (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)
4. Periksa Instalasi Apache
Setelah Apache terinstal dan konfigurasi firewall sudah selesai, kita bisa mengecek versi Apache menggunakan perintah berikut: adalah sebagai berikut:
sudo apachectl -v
Output
Server version: Apache/2.4.52 (Ubuntu)
Server built: 2022-03-25T00:35:40
Setiap proses di Apache dikelola dengan perintah systemctl. Periksa status Apache dengan perintah berikut.
sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-04-29 00:34:49 UTC; 2min 52s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 12782 (apache2)
Tasks: 55 (limit: 1151)
Memory: 5.1M
CPU: 52ms
CGroup: /system.slice/apache2.service
├─12782 /usr/sbin/apache2 -k start
├─12784 /usr/sbin/apache2 -k start
└─12785 /usr/sbin/apache2 -k start
5. Instal MySQL
Instal dan konfigurasikan mysql di ubuntu 22.04 dengan menggunakan perintah berikut:
sudo apt install mysql-server
Setelah instalasi selesai. Kami dapat memverifikasi bahwa status server MySQL sedang berjalan, ketik:
sudo service mysql status
Output harus menunjukkan bahwa mysql sudah aktif dan berjalan:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-04-29 00:38:45 UTC; 11s ago
Process: 13836 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, statu>
Main PID: 13844 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 1151)
Memory: 351.4M
CPU: 1.043s
CGroup: /system.slice/mysql.service
└─13844 /usr/sbin/mysqld
Untuk memeriksa versi mysql menggunakan perintah berikut:
sudo mysql -V
Output
mysql Ver 8.0.28-0ubuntu4 for Linux on x86_64 ((Ubuntu))
6. Secure MySQL
Instalasi MySQL dilengkapi dengan skrip bernama mysql_secure_installation yang memungkinkan kita meningkatkan keamanan server MySQL dengan mudah.
sudo mysql_secure_installation
Akan diminta untuk mengonfigurasi PLUGIN VALIDATE PASSWORD yang digunakan untuk menguji kekuatan kata sandi pengguna MySQL dan meningkatkan keamanan.
Tekan y jika kami ingin kata sandi validasi atau tombol lain untuk pindah ke langkah berikutnya.
Ada tiga tingkat validasi kata sandi, rendah, sedang, dan kuat. Masukkan 2 untuk validasi kata sandi yang kuat.
Pada prompt berikutnya, akan diminta untuk mengatur kata sandi untuk pengguna root MySQL.
Jika kita menggunakan validasi kata sandi, skrip akan menunjukkan kepada kita kekuatan kata sandi baru kita. Ketik y untuk mengonfirmasi kata sandi.
Selanjutnya, akan diminta untuk menghapus pengguna anonim, membatasi akses pengguna root ke mesin lokal, menghapus database test, dan reload privilege tables.ketik y untuk semua pertanyaan.
7. Install PHP
Instal PHP menggunakan perintah berikut:
sudo apt install php8.1-fpm php8.1 libapache2-mod-php8.1 php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-intl php8.1-bcmath unzip -y
Setelah PHP diinstal selesai, kita dapat menggunakan perintah berikut untuk memeriksa versi php yang diinstal:
php -v
Output
PHP 8.1.5 (cli) (built: Apr 7 2022 17:46:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.5, Copyright (c) Zend Technologies
with Zend OPcache v8.1.5, Copyright (c), by Zend Technologies
8. Konfigurasi PHP
Untuk mengonfigurasi PHP dengan mengubah beberapa variabel di file php.ini
buka file php.ini dengan menggunakan perintah berikut pada command prompt:
sudo nano /etc/php/8.1/apache2/php.ini
Tekan F6 untuk mencari di dalam editor dan perbarui nilai berikut untuk kinerja yang lebih baik.
upload_max_filesize = 32M
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000
Setelah kita memodifikasi pengaturan PHP, kita perlu me-restart Apache agar perubahan dapat bekerja.
9. Konfigurasikan Apache
Nonaktifkan konfigurasi Apache default.
sudo a2dissite 000-default
Buat direktori web.
sudo mkdir -p /var/www/html/domainname/public
Berikan hak akses.
sudo chmod -R 755 /var/www/html/domainname
sudo chown -R www-data:www-data /var/www/html/domainname
Buat konfigurasi host virtual baru.
sudo nano /etc/apache2/sites-available/domainname.conf
paste ini di dalam file konfigurasi
ServerAdmin admin@domainname.com
ServerName domainname.com
ServerAlias www.domainname.com
DocumentRoot /var/www/html/domainname/public
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Enable Konfigurasi virtualhost
sudo a2ensite domainname.conf
10. Install PhpMyAdmin
Gunakan perintah berikut untuk menginstal PHPMyAdmin:
sudo apt install phpmyadmin
Konfigurasi phpmyadmin untuk Apache.
sudo cp /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
Enable Konfigurasi virtualhost
sudo a2enconf phpmyadmin.conf
Kemudian jalankan perintah berikut pada command prompt untuk restart apache web server:
sudo service apache2 restart
Proses Instalasi PHPMyadmin selesai, silahkan akses dengan url htt://yourdomain.com/phpmyadmin.
11. Install Let’s Encrypt SSL
HTTPS adalah protokol untuk komunikasi aman antara server (instance) dan klien (browser web). Let’s Encrypt, menyediakan sertifikat SSL gratis, HTTPS diadopsi oleh semua orang dan juga memberikan kepercayaan kepada pengunjung website anda.
sudo apt install python3-certbot-apache
Tunggu proses instalasi Certbot by Let's Encrypt sampai proses selesai. lalu, jalankan perintah ini untuk konfigurasi dan request sertifikat SSL.
sudo certbot --apache --agree-tos --redirect -m youremail@email.com -d domainname.com -d www.domainname.com
Perintah ini akan menginstal SSL Gratis, konfigurasi redirect HTTP ke HTTPS, dan restart web server Apache.
12. Renewing SSL Certificate
Sertifikat yang disediakan oleh Let’s Encrypt hanya berlaku selama 90 hari, jadi Anda harus memperbaruinya setiap 3 bulan sekali. Jadi, mari kita coba fitur pembaruan menggunakan perintah berikut.
sudo certbot renew --dry-run
Perintah ini akan menguji sertifikat kedaluwarsa dan konfigurasi fitur yang dapat diperbarui secara otomatis.