GNU/Linux >> Belajar Linux >  >> Debian

Cara Memasang LEMP Stack di Debian 10 Buster Server/Desktop

Tutorial ini akan menunjukkan cara menginstal Nginx, MariaDB dan PHP7.3 (LEMP stack) di Debian 10 Buster. Tumpukan perangkat lunak adalah seperangkat alat perangkat lunak yang dibundel bersama. LEMP adalah singkatan dari L inux, Nginx , L ariaDB/L ySQL dan P HP yang semuanya open source dan gratis untuk digunakan. Ini adalah tumpukan perangkat lunak yang sangat 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.

Keempat komponen tersebut gratis dan open-source. Namun, karena MySQL sekarang dimiliki oleh Oracle dan ada kemungkinan Oracle mengubahnya menjadi produk sumber tertutup, kami akan memilih MariaDB daripada MySQL.

Prasyarat Instalasi LEMP Stack di Debian 10 Buster

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

Jika Anda mencari VPS (Virtual Private Server), maka 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.

Harap dicatat bahwa Anda harus memiliki hak akses root saat menginstal perangkat lunak di Debian. Anda dapat menambahkan sudo di awal perintah, atau gunakan su - perintah untuk beralih ke pengguna root.

Langkah 1:Perbarui Paket Perangkat Lunak

Sebelum kita menginstal LEMP stack, ada baiknya untuk memperbarui repositori dan paket perangkat lunak. Jalankan perintah berikut di OS Debian 10 Anda.

sudo apt update

sudo apt upgrade

Langkah 2:Instal Server Web Nginx di Debian 10

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, Nginx akan otomatis dimulai. Periksa statusnya dengan systemctl .

systemctl status nginx

Contoh keluaran:

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
   Active: active (running) since Sat 2019-08-10 06:20:26 UTC; 54s ago
     Docs: man:nginx(8)
 Main PID: 19713 (nginx)
    Tasks: 2 (limit: 1149)
   Memory: 4.6M
   CGroup: /system.slice/nginx.service
           ├─19713 nginx: master process /usr/sbin/nginx -g daemon on; master_pr
           └─19714 nginx: worker process

Petunjuk:Jika perintah di atas tidak segera berhenti, Anda dapat menekan tombol Q untuk mendapatkan kembali kendali atas jendela terminal.

Jika tidak berjalan, gunakan systemctl untuk memulainya.

sudo systemctl start nginx

Ini juga merupakan ide yang baik untuk mengaktifkan Nginx untuk memulai secara otomatis saat boot.

sudo systemctl enable nginx

Periksa versi Nginx:

sudo nginx -v

Keluaran:

nginx version: nginx/1.14.2

Sekarang ketikkan alamat IP publik server Debian 10 Anda di bilah alamat browser. Anda akan melihat halaman Web default "Selamat datang di nginx", yang berarti server Web Nginx berjalan dengan benar. Jika Anda menginstal LEMP di komputer Debian 10 lokal Anda, maka Anda harus mengetikkan 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

Sekarang kita perlu menyetel www-data (Pengguna Nginx) sebagai pemilik root dokumen (juga dikenal sebagai root web). Secara default itu dimiliki oleh pengguna root. (Perhatikan bahwa Nginx secara default menggunakan /usr/share/nginx/html/ sebagai root web, sedangkan server web Apache menggunakan /var/www/html/ saat kita melakukan root.)

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

Langkah 3:Instal Server Database MariaDB di Debian 10

MariaDB adalah pengganti drop-in untuk MySQL. Masukkan perintah berikut untuk menginstalnya di Debian 10.

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.15 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: 
   Active: active (running) since Sat 2019-08-10 06:38:58 UTC; 13s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 20669 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 31 (limit: 1149)
   Memory: 77.7M
   CGroup: /system.slice/mariadb.service
           └─20669 /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 tinggal menekan Enter untuk menjawab semua pertanyaan yang tersisa. Ini akan menghapus pengguna anonim, menonaktifkan login root jarak jauh dan menghapus database pengujian. Langkah ini merupakan persyaratan dasar untuk keamanan database MariaDB. (Perhatikan bahwa huruf Y dikapitalisasi, yang berarti itu adalah jawaban default.)

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

sudo mariadb -u root

atau

sudo mysql -u root

Untuk keluar, jalankan

exit;

Periksa informasi versi server MariaDB.

mariadb --version

Keluaran:

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

Langkah 4:Instal PHP7.3 di Debian 10

Pada saat penulisan ini, PHP7.3 adalah versi stabil terbaru dari PHP dan memiliki sedikit peningkatan kinerja dibandingkan versi sebelumnya. Masukkan perintah berikut untuk menginstal PHP7.3 dan beberapa ekstensi PHP umum dari repositori Debian 10.

sudo apt install php7.3 php7.3-fpm php7.3-mysql php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline

Periksa informasi versi PHP.

php --version

Keluaran:

PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies

Sekarang mulai php7.3-fpm.

sudo systemctl start php7.3-fpm

Aktifkan mulai otomatis saat boot.

sudo systemctl enable php7.3-fpm

Periksa status:

systemctl status php7.3-fpm

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 buat file blok server baru di bawah /etc/nginx/conf.d/ direktori dengan editor teks baris perintah, seperti Nano.

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.3-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 mengonfirmasi. 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 skrip PHP dengan server Nginx, kita perlu membuat info.php file di direktori root Web.

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 Anda, 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. Anda dapat menemukan bahwa Zend OPcache diaktifkan.

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 otomatis restart 5 detik setelah kegagalan terdeteksi.

[Service]
Restart=always
RestartSec=5s

Simpan dan tutup file. Kemudian muat ulang systemd.

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

Debian
  1. Cara Menginstal Server MySQL di Debian 10 Buster

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

  3. Cara Memasang LEMP Stack di Debian 10 Buster

  1. Cara menginstal Spotify di Debian 10 Buster Linux Desktop

  2. Cara Mengatur Server LEMP di Debian 10 Buster

  3. Cara Menginstal Server Xrdp (Desktop Jarak Jauh) di Debian 10

  1. Cara Menginstal Nginx, MariaDB, PHP (LEMP stack) di Debian 9

  2. Cara Memasang LEMP Stack di Debian 10

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