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