GNU/Linux >> Belajar Linux >  >> Linux

Cara Instal LEMP Stack Nginx, MySQL, PHP di Ubuntu 22.04

Cara Install LEMP Stack Nginx, MySQL, PHP di Ubuntu 22.04. Dalam panduan ini Anda akan mempelajari cara menginstal Nginx, MySQL 8.0 dan PHP 8.1.

Anda juga akan menginstal beberapa ekstensi PHP umum dan menyesuaikan konfigurasi PHP. Terakhir, Anda akan mengamankan penyiapan dengan Let's Encrypt SSL dan mengonfigurasi pengalihan HTTPS.

Penyiapan ini diuji di Google cloud, sehingga akan berfungsi di semua layanan hosting cloud seperti AWS, Azure, atau VPS apa pun, atau server khusus apa pun yang menjalankan Ubuntu 22.04.

Prasyarat

  • Akses root ke server Anda atau pengguna dengan hak istimewa sudo.
  • Domain menunjuk ke IP server Anda untuk menginstal Let'sEncrypt SSL

Langkah 1:Setup Inisialisasi

Mulailah dengan memperbarui paket ke versi terbaru yang tersedia menggunakan perintah berikut.

sudo apt update
sudo apt upgrade

Setelah Anda memperbarui penyiapan, Anda dapat memulai penyiapan.

Langkah 2:Instal Nignx

Instal Nginx menggunakan perintah berikut.

sudo apt install nginx

Ini akan menginstal nginx dan semua dependensi yang diperlukan.

Langkah 3:Siapkan Firewall

Sekarang Anda dapat mengatur Uncomplicated Firewall (UFW) dengan Nginx untuk mengizinkan akses publik pada port web default untuk HTTP dan HTTPS

sudo ufw app list

Anda akan melihat semua aplikasi yang terdaftar.

Output
Available applications:
   Nginx Full
   Nignx HTTP
   Nginx HTTPS
   OpenSSH
  • HTTP Nginx :Profil ini membuka port 80 (lalu lintas web normal dan tidak terenkripsi)
  • Nginx Penuh :Profil ini membuka kedua port 80 (lalu lintas web normal, tidak terenkripsi) dan port 443 (lalu lintas terenkripsi TLS/SSL)
  • HTTPS Nginx :Profil ini hanya membuka port 443 (lalu lintas terenkripsi TLS/SSL)
  • OpenSSH :Profil ini membuka port 22 untuk akses SSH.

Jika Anda tidak akan menggunakan SSL, Anda hanya perlu mengaktifkan profil HTTP Nginx.

Sekarang kita akan mengaktifkan Nginx Full.

sudo uff allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

Dengan perintah ini Anda dapat melihat status UFW.

sudo ufw status

Anda akan melihat output sebagai berikut.

Output
Status: active
 To                         Action      From
 --                         ------      ----
 Nginx Full                 ALLOW       Anywhere                  
 OpenSSH                    ALLOW       Anywhere                  
 Nginx Full (v6)            ALLOW       Anywhere (v6)             
 OpenSSH (v6)               ALLOW       Anywhere (v6)

Langkah:4 Periksa Instalasi Nginx

Karena kami telah menginstal Nginx pada langkah 2, itu harus dimulai secara otomatis dan sudah aktif dan berjalan.

Setiap proses di Nginx dikelola dengan systemctl memerintah. Periksa status Nginx dengan perintah berikut.

sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-05-04 05:36:49 UTC; 44s ago
       Docs: man:nginx(8)
    Process: 10272 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCC>
    Process: 10273 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 10274 (nginx)
      Tasks: 3 (limit: 1151)
     Memory: 5.3M
        CPU: 35ms
     CGroup: /system.slice/nginx.service

Sekarang kita telah menginstal dan mengkonfigurasi Firewall Nignx.

Langkah 5:Instal MySQL

Di Ubuntu 22.04 MySQL 8 disertakan secara default dalam repositori Jammy Jellyfish, sehingga Anda dapat menginstalnya dengan mudah menggunakan apt install perintah.

sudo apt install mysql-server

Setelah instalasi selesai, layanan MySQL akan dimulai secara otomatis. Untuk memverifikasi bahwa server MySQL sedang berjalan, ketik:

sudo service mysql status

Output harus menunjukkan bahwa layanan diaktifkan dan berjalan:

● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-05-04 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

Periksa versi MySQl menggunakan perintah di bawah ini.

sudo mysql -V
Output
mysql  Ver 8.0.28-0ubuntu4 for Linux on x86_64 ((Ubuntu))

Langkah 6:Amankan MySQL

Instalasi MySQL dilengkapi dengan skrip bernama mysql_secure_installation yang memungkinkan Anda meningkatkan keamanan server MySQL dengan mudah.

sudo mysql_secure_installation

Anda akan diminta untuk mengonfigurasi VALIDATE PASSWORD PLUGIN yang digunakan untuk menguji kekuatan kata sandi pengguna MySQL dan meningkatkan keamanan.

Tekan y jika Anda ingin menyiapkan plugin validasi kata sandi atau kunci lain untuk pindah ke langkah berikutnya.

Ada tiga tingkat kebijakan validasi kata sandi, rendah, sedang, dan kuat.

Masukkan 2 untuk validasi kata sandi yang kuat.

Pada prompt berikutnya, Anda akan diminta untuk mengatur kata sandi untuk pengguna root MySQL.

Jika Anda mengatur plugin validasi kata sandi, skrip akan menunjukkan kekuatan kata sandi baru Anda. Ketik y untuk mengonfirmasi kata sandi.

Selanjutnya, Anda akan diminta untuk menghapus pengguna anonim, membatasi akses pengguna root ke mesin lokal, menghapus database pengujian, dan memuat ulang tabel hak istimewa. Anda harus menjawab y untuk semua pertanyaan.

Langkah 7:Instal PHP

Secara default Ubuntu 22.04 memiliki repositori PHP 8.1 terbaru yang ditambahkan. Jadi Anda dapat menginstal PHP menggunakan perintah berikut.

sudo apt install php8.1-fpm 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 terinstal, Anda dapat memeriksa versi menggunakan perintah berikut.

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

Langkah 8:Konfigurasi PHP

Sekarang kita mengkonfigurasi PHP untuk Aplikasi Web dengan mengubah beberapa nilai di php.ini berkas.

Untuk PHP 8.1 dengan Nginx php.ini lokasi akan berada di direktori berikut.

sudo nano /etc/php/8.1/fpm/php.ini

Tekan F6 untuk mencari di dalam editor dan memperbarui 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 Anda mengubah pengaturan PHP, Anda perlu memulai ulang PHP-FPM agar perubahan diterapkan.

sudo service php8.1-fpm restart

Langkah 9:Konfigurasi Nginx

Nonaktifkan konfigurasi Nginx default.

sudo rm -rf /etc/nginx/sites-enabled/default
sudo rm -rf /etc/nginx/sites-available/default

Buat direktori situs web.

sudo mkdir -p /var/www/html/domainname/public

Siapkan izin yang benar.

sudo chmod -R 755 /var/www/html/domainname
sudo chown -R www-data:www-data /var/www/html/domainname

Buat konfigurasi blok server baru.

sudo nano /etc/nginx/sites-available/domainname.conf

Tempelkan konfigurasi berikut di file baru.

server {
    listen 80;
    listen [::]:80;

    server_name yourdomainname.com www.yourdomainname.com;

    root /var/www/html/domainname/public;
    index index.html index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ .php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+.php)(/.+)$;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

Aktifkan konfigurasi baru.

sudo ln -s /etc/nginx/sites-available/domainname.conf /etc/nginx/sites-enabled/domainname.conf

Langkah 10:Instal Let's Encrypt SSL

HTTPS adalah protokol untuk komunikasi yang aman antara server (instance) dan klien (web browser). Karena pengenalan Let's Encrypt, yang menyediakan sertifikat SSL gratis, HTTPS diadopsi oleh semua orang dan juga memberikan kepercayaan kepada audiens Anda.

sudo apt install python3-certbot-nginx

Sekarang kami telah menginstal Certbot oleh Let's Encrypt untuk Ubuntu 22.04, jalankan perintah ini untuk menerima sertifikat Anda.

sudo certbot --nginx --agree-tos --redirect -m [email protected] -d domainname.com -d www.domainname.com

Perintah ini akan menginstal SSL Gratis, mengonfigurasi pengalihan ke HTTPS, dan memulai ulang server Nginx.

Langkah 11:Memperbarui Sertifikat SSL

Sertifikat yang diberikan oleh Let's Encrypt hanya berlaku selama 90 hari, jadi Anda harus sering memperbaruinya. Jadi, mari kita uji fitur pembaruan menggunakan perintah berikut.

sudo certbot renew --dry-run

Perintah ini akan menguji masa berlaku sertifikat dan mengonfigurasi fitur yang dapat diperbarui secara otomatis.

Langkah:12:Uji Penyiapan

Setelah Anda melakukan langkah-langkah yang dapat Anda lakukan, Anda dapat membuat file PHP pengujian baru di direktori web Anda.

sudo nano /var/www/html/domainname/public/info.php

Tempelkan kode di bawah ini di dalam file.

<?php phpinfo();

Simpan file.

Sekarang lanjutkan dan periksa nama domain Anda dengan info.php di url (domainname.com/info.php ).

Anda akan melihat bahwa domain Anda dialihkan ke HTTPS dan melihat detail informasi PHP.

Tingkatkan Karir Administrasi Linux Anda dengan menyelesaikan kursus pelatihan dan dapatkan pekerjaan impian Anda.

Kesimpulan

Sekarang Anda telah mempelajari cara menginstal LEMP stack di Ubuntu 22.04 dengan Let'sEncrypt SSL.

Terima kasih atas waktunya. Jika Anda menghadapi masalah atau umpan balik, silakan tinggalkan komentar di bawah.


Linux
  1. Cara Menginstal LEMP di Ubuntu 18.04

  2. Cara Install LEMP Stack Nginx, MySQL, PHP di Debian 11

  3. Cara Menginstal LEMP Stack di Ubuntu 18.04

  1. Cara Menginstal LEMP Stack (Nginx, MySQL, PHP v7) di CentOS 7

  2. Cara Instal Nginx dengan PHP dan MySQL (LEMP Stack) di Ubuntu 18.04

  3. Cara Menginstal Nginx dengan PHP dan MySQL (LEMP Stack) di Ubuntu 20.04 LTS

  1. Cara Instal Nginx dengan PHP + MySQL (LEMP) di Debian 9

  2. Cara Menginstal Nginx, MariaDB, PHP (LEMP Stack) di Debian 11

  3. Cara Instal Linux, Nginx, MySQL, PHP (LEMP Stack) di Ubuntu 18.04