GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Memasang LEMP Stack di Server/Desktop Ubuntu 20.04

Tutorial ini akan menunjukkan cara memasang LEMP stack (Nginx, MariaDB, dan PHP7.4) di Ubuntu 20.04. Tumpukan perangkat lunak adalah seperangkat alat perangkat lunak yang dibundel bersama. LEMP adalah singkatan dari Linux, Nginx (Engine-X), MariaDB/MySQL dan PHP, yang semuanya open source dan gratis untuk digunakan. Ini adalah tumpukan perangkat lunak paling umum yang mendukung situs web dinamis dan aplikasi web. Linux adalah sistem operasinya; Nginx adalah server webnya; MariaDB/MySQL adalah server database dan PHP adalah bahasa skrip sisi server yang bertanggung jawab untuk menghasilkan halaman web dinamis.

Prasyarat

Untuk mengikuti tutorial ini, Anda memerlukan OS Ubuntu 20.04 yang berjalan di komputer lokal Anda atau di server jauh.

Jika Anda mencari VPS (Virtual Private Server), maka Anda dapat mendaftarkan akun di DigitalOcean melalui tautan khusus ini untuk mendapatkan kredit gratis $50. (Hanya untuk pengguna baru). Jika Anda sudah menjadi pengguna DigitalOcean, Anda dapat mendaftarkan akun di Vultr melalui tautan khusus ini untuk mendapatkan kredit gratis $50 (hanya untuk pengguna baru).

Dan jika Anda perlu menyiapkan tumpukan LEMP dengan nama domain, saya sarankan membeli nama domain dari NameCheap karena harganya rendah dan mereka memberikan perlindungan privasi whois gratis seumur hidup.

Langkah 1:Perbarui Paket Perangkat Lunak

Sebelum kita menginstal LEMP stack, sebaiknya perbarui repositori dan paket perangkat lunak dengan menjalankan perintah berikut di OS Ubuntu 20.04 Anda.

sudo apt update

sudo apt upgrade

Langkah 2:Instal Server Web Nginx

Nginx adalah server web berkinerja tinggi dan sangat populer saat ini. Itu juga dapat digunakan sebagai proxy terbalik dan server caching. Masukkan perintah berikut untuk menginstal server Web Nginx.

sudo apt install nginx

Setelah diinstal, kita dapat mengaktifkan Nginx untuk memulai otomatis saat boot dengan menjalankan perintah berikut.

sudo systemctl enable nginx

Kemudian mulai Nginx dengan perintah ini:

sudo systemctl start nginx

Sekarang periksa statusnya.

sudo systemctl status nginx

Keluaran:

● 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 2020-04-10 14:11:43 UTC; 3s ago
       Docs: man:nginx(8)
    Process: 8533 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 8545 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 8549 (nginx)
      Tasks: 3 (limit: 9451)
     Memory: 3.9M
     CGroup: /system.slice/nginx.service
             ├─8549 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ├─8550 nginx: worker process
             └─8551 nginx: worker process

Diaktifkan ” menunjukkan bahwa mulai otomatis saat boot diaktifkan dan kita dapat melihat bahwa Nginx sedang berjalan. Anda juga dapat melihat berapa banyak RAM yang digunakan Nginx dari output. Jika perintah di atas tidak langsung berhenti setelah dijalankan. Anda perlu menekan “q ” untuk membuatnya berhenti.

Periksa versi Nginx.

nginx -v

Keluaran:

nginx version: nginx/1.17.9 (Ubuntu)

Sekarang ketikkan alamat IP publik server Ubuntu 20.04 Anda di bilah alamat browser. Anda akan melihat halaman Web “Selamat datang di Nginx”, yang berarti server Web Nginx berjalan dengan baik. Jika Anda menginstal LEMP di komputer Ubuntu 20.04 lokal, ketik 127.0.0.1 atau localhost di bilah alamat browser.

Jika koneksi ditolak atau gagal diselesaikan, mungkin ada firewall yang mencegah permintaan masuk ke port TCP 80. Jika Anda menggunakan firewall iptables, maka Anda perlu menjalankan perintah berikut untuk membuka port TCP 80.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Jika Anda menggunakan firewall UFW, jalankan perintah ini untuk membuka port TCP 80.

sudo ufw allow http

Terakhir, kita perlu membuat www-data (Pengguna Nginx) sebagai pemilik direktori web. Secara default, ini dimiliki oleh pengguna root.

sudo chown www-data:www-data /usr/share/nginx/html -R

Langkah 3:Instal Server Database MariaDB

MariaDB adalah pengganti drop-in untuk MySQL. Ini dikembangkan oleh mantan anggota tim MySQL yang khawatir bahwa Oracle mungkin mengubah MySQL menjadi produk sumber tertutup. Masukkan perintah berikut untuk menginstal MariaDB di Ubuntu 20.04.

sudo apt install mariadb-server mariadb-client

Setelah terinstal, server MariaDB akan otomatis menatap. Gunakan systemctl untuk memeriksa statusnya.

systemctl status mariadb

Keluaran:

● mariadb.service - MariaDB 10.3.22 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-04-10 14:19:16 UTC; 18s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 9161 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 31 (limit: 9451)
     Memory: 64.7M
     CGroup: /system.slice/mariadb.service
             └─9161 /usr/sbin/mysqld

Jika tidak berjalan, mulai dengan perintah ini:

sudo systemctl start mariadb

Untuk mengaktifkan MariaDB agar mulai otomatis saat boot, jalankan

sudo systemctl enable mariadb

Sekarang jalankan skrip keamanan pasca instalasi.

sudo mysql_secure_installation

Saat diminta untuk memasukkan kata sandi root MariaDB, tekan tombol Enter karena kata sandi root belum disetel. Kemudian masukkan y untuk mengatur kata sandi root untuk server MariaDB.

Selanjutnya, Anda dapat menekan Enter untuk menjawab semua pertanyaan yang tersisa, yang akan menghapus pengguna anonim, menonaktifkan login root jarak jauh, dan menghapus database pengujian. Langkah ini merupakan persyaratan dasar untuk keamanan database MariaDB. (Perhatikan bahwa Y dikapitalisasi, yang berarti itu adalah jawaban default. )

Secara default, paket MaraiDB di Ubuntu menggunakan unix_socket untuk mengautentikasi login pengguna, yang pada dasarnya berarti Anda dapat menggunakan nama pengguna dan kata sandi OS untuk masuk ke konsol MariaDB. Jadi Anda dapat menjalankan perintah berikut untuk login tanpa memberikan kata sandi root MariaDB.

sudo mariadb -u root

Untuk keluar, jalankan

exit;

Periksa informasi versi server MariaDB.

mariadb --version

Seperti yang Anda lihat, kami telah menginstal MariaDB 10.3.22.

mariadb  Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Langkah 4:Instal PHP7.4

PHP7.4 disertakan dalam repositori Ubuntu 20.04 dan memiliki sedikit peningkatan kinerja dibandingkan PHP7.3. Masukkan perintah berikut untuk menginstal PHP7.4 dan beberapa ekstensi umum.

sudo apt install php7.4 php7.4-fpm php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl

Ekstensi PHP biasanya dibutuhkan untuk sistem manajemen konten (CMS) seperti WordPress. Misalnya, jika instalasi Anda tidak memiliki php7.4-xml , maka beberapa halaman situs WordPress Anda mungkin kosong dan Anda dapat menemukan kesalahan di log kesalahan Nginx seperti:

PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function xml_parser_create()

Memasang ekstensi PHP ini memastikan CMS Anda berjalan dengan lancar. Sekarang mulai php7.4-fpm.

sudo systemctl start php7.4-fpm

Aktifkan mulai otomatis saat boot.

sudo systemctl enable php7.4-fpm

Periksa status:

systemctl status php7.4-fpm

Contoh keluaran:

● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor pr>
     Active: active (running) since Fri 2020-04-10 14:40:26 UTC; 12s ago
       Docs: man:php-fpm7.4(8)
    Process: 21019 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /ru>
   Main PID: 21012 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req>
      Tasks: 3 (limit: 9451)
     Memory: 9.4M
     CGroup: /system.slice/php7.4-fpm.service
             ├─21012 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─21017 php-fpm: pool www
             └─21018 php-fpm: pool www

Jika perintah di atas tidak langsung berhenti setelah dijalankan. Anda perlu menekan “q ” untuk membuatnya berhenti.

Langkah 5:Buat Blok Server Nginx

Blok server Nginx seperti host virtual di Apache. Kami tidak akan menggunakan blok server default karena tidak memadai untuk menjalankan kode PHP dan jika kami memodifikasinya menjadi berantakan. Jadi hapus default symlink di sites-enabled direktori dengan menjalankan perintah berikut. (Masih tersedia sebagai /etc/nginx/sites-available/default .)

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

Kemudian gunakan editor teks baris perintah seperti Nano untuk membuat file blok server baru di bawah /etc/nginx/conf.d/ direktori.

sudo nano /etc/nginx/conf.d/default.conf

Rekatkan teks berikut ke dalam file. Cuplikan berikut akan membuat Nginx mendengarkan pada port IPv4 80 dan IPv6 port 80 dengan nama server yang menangkap semua.

server {
  listen 80;
  listen [::]:80;
  server_name _;
  root /usr/share/nginx/html/;
  index index.php index.html index.htm index.nginx-debian.html;

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

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

Simpan dan tutup file. (Untuk menyimpan file di editor teks Nano, tekan Ctrl+O , lalu tekan Enter untuk mengkonfirmasi. Untuk keluar, tekan Ctrl+X .)

Kemudian uji konfigurasi Nginx.

sudo nginx -t

Jika tes berhasil, muat ulang Nginx.

sudo systemctl reload nginx

Langkah 6:Uji PHP

Untuk menguji PHP-FPM dengan server Web Nginx, kita perlu membuat info.php file di direktori webroot.

sudo nano /usr/share/nginx/html/info.php

Rekatkan kode PHP berikut ke dalam file.

<?php phpinfo(); ?>

Simpan dan tutup file. Sekarang di bilah alamat browser, masukkan server-ip-address/info.php . Ganti sever-ip-address dengan IP Anda yang sebenarnya. Jika Anda mengikuti tutorial ini di komputer lokal, ketik 127.0.0.1/info.php atau localhost/info.php .

Anda akan melihat informasi PHP server Anda. Ini berarti skrip PHP dapat berjalan dengan baik dengan server web Nginx.

Selamat! Anda telah berhasil menginstal Nginx, MariaDB dan PHP7.4 di Ubuntu 20.04. Untuk keamanan server Anda, Anda harus menghapus info.php file sekarang untuk mencegah peretas melihatnya.

sudo rm /usr/share/nginx/html/info.php

Kiat Pemecahan Masalah

Jika Anda menemukan kesalahan, Anda dapat memeriksa log kesalahan Nginx (/var/log/nginx/error.log ) untuk mencari tahu apa yang salah.

Restart Otomatis Nginx

Jika karena alasan apa pun proses Nginx Anda terhenti, Anda perlu menjalankan perintah berikut untuk memulai ulang.

sudo systemctl restart nginx

Alih-alih mengetikkan perintah ini secara manual, kita dapat membuat Nginx secara otomatis memulai ulang dengan mengedit nginx.service unit layanan sistemd. Untuk mengganti konfigurasi layanan systemd default, kami membuat direktori terpisah.

sudo mkdir -p /etc/systemd/system/nginx.service.d/

Kemudian buat file di bawah direktori ini.

sudo nano /etc/systemd/system/nginx.service.d/restart.conf

Tambahkan baris berikut dalam file, yang akan membuat Nginx secara otomatis memulai ulang 5 detik setelah kegagalan terdeteksi. Nilai default RetartSec adalah 100 md , yang terlalu kecil. Nginx mungkin mengeluh bahwa "mulai permintaan diulang terlalu cepat" jika RestartSec tidak cukup besar.

[Service]
Restart=always
RestartSec=5s

Simpan dan tutup file. Kemudian muat ulang systemd agar perubahan diterapkan.

sudo systemctl daemon-reload

Untuk memeriksa apakah ini akan berhasil, bunuh Nginx dengan:

sudo pkill nginx

Kemudian periksa status Nginx. Anda akan menemukan Nginx dimulai ulang secara otomatis.

systemctl status nginx

Langkah Selanjutnya

Saya harap tutorial ini membantu Anda menginstal tumpukan LEMP di Ubuntu 20.04 LTS . Anda mungkin ingin menginstal phpMyAdmin, yang merupakan alat manajemen basis data berbasis web sumber terbuka dan gratis.

  • Cara Menginstal phpMyAdmin dengan Nginx (LEMP) di Ubuntu 20.04 LTS

Anda juga dapat menginstal WordPress di atas tumpukan LEMP untuk membuat situs web atau blog Anda sendiri.

  • Instal WordPress di Ubuntu 20.04 dengan Nginx, MariaDB, PHP7.4 (LEMP)

Seperti biasa, jika menurut Anda postingan ini bermanfaat, berlangganan newsletter gratis kami untuk mendapatkan lebih banyak tips dan trik. Hati-hati


Ubuntu
  1. Cara Menginstal Nginx di Ubuntu 20.04

  2. Cara Menginstal Desktop Ubuntu dari Server Ubuntu

  3. Cara Menginstal LEMP di Ubuntu 16.04

  1. Cara Menginstal LEMP Stack di Ubuntu 20.04

  2. Cara Memasang LEMP Stack di Debian 10 Buster Server/Desktop

  3. Cara Menginstal qBittorrent di Desktop atau Server Ubuntu 18.04

  1. Instal NextCloud di Ubuntu 18.04 dengan Nginx (LEMP Stack)

  2. Cara Menginstal Plex Media Server di Ubuntu 16.04 Server/Desktop

  3. Instal NextCloud di Ubuntu 20.04 dengan Nginx (LEMP Stack)