Nginx atau engine x adalah server proxy dan HTTP berkinerja tinggi dengan konsumsi memori rendah. Sebagian besar situs web berskala besar seperti Netflix, Pinterest, CloudFlare, GitHub menggunakan Nginx
Pada langkah ini, kita akan menginstal server web Nginx dari repositori Ubuntu
Perbarui semua repositori di sistem Ubuntu dan instal paket Nginx menggunakan perintah apt di bawah ini
sudo apt updatesudo apt install nginx
Setelah penginstalan selesai, mulai layanan Nginx dan aktifkan untuk diluncurkan setiap kali boot sistem
systemctl start nginxsystemctl enable nginx_
Sekarang instalasi Nginx Webserver selesai, periksa layanan Nginx menggunakan perintah berikut
systemctl status nginxDi bawah ini adalah hasil yang akan Anda dapatkan
Juga, periksa port HTTP pada sistem Ubuntu dan pastikan itu digunakan oleh layanan Nginx
ss -plt4Di bawah ini adalah hasil yang akan Anda dapatkan
Hasilnya, protokol HTTP digunakan oleh layanan Nginx
Selanjutnya, kita akan mengamankan instalasi Nginx kita menggunakan firewall UFW
Tambahkan protokol HTTP dan HTTPS ke konfigurasi firewall UFW menggunakan perintah berikut
for fw in ssh http httpsdo
ufw allow $fw
done_
Sekarang aktifkan firewall UFW dan periksa statusnya
ufw enableufw status numbered
Dan protokol HTTP dan HTTPS telah ditambahkan ke konfigurasi firewall UFW
Langkah 2 - Instal MySQL
MySQL adalah Relational Database Management System (RDBMS) sumber terbuka paling populer yang dibuat oleh Oracle Corporation. Ini adalah komponen utama dari LEMP Stack, dan kami akan menginstal versi MySQL terbaru dari repositori Ubuntu
Instal MySQL menggunakan perintah apt di bawah ini
sudo apt install mysql-server mysql-client_Setelah penginstalan MySQL selesai, mulai layanan MySQL dan aktifkan untuk diluncurkan setiap kali boot sistem
systemctl start mysqlsystemctl enable mysql
Sekarang periksa layanan MySQL menggunakan perintah di bawah ini
systemctl status mysql_Layanan MySQL aktif dan berjalan
Selanjutnya, kita akan mengatur kata sandi root untuk server MySQL
Jalankan perintah 'mysql_secure_installation' di bawah ini
mysql_secure_installation_Sekarang Anda akan diminta sebagai konfigurasi berikut, dan pastikan untuk mengetik kata sandi yang kuat untuk pengguna root MySQL
systemctl start nginxsystemctl enable nginx_0
Dan kata sandi root MySQL telah dikonfigurasi
Akibatnya, instalasi dan konfigurasi LEMP Stack di Ubuntu 20. 04 telah berhasil diselesaikan
Langkah pertama sebelum menginstal paket apa pun adalah mengonfigurasi firewall untuk mengizinkan koneksi HTTP dan HTTPS
Periksa status firewall
$ sudo ufw statusAnda akan melihat sesuatu seperti berikut ini
Izinkan port HTTP dan HTTPs
$ sudo ufw allow http $ sudo ufw allow httpsPeriksa status lagi untuk konfirmasi
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6)Langkah 2 - Instal PHP
Ubuntu 22. 04 dikirimkan dengan PHP 8. 1 secara default. Anda dapat menginstalnya dengan menjalankan perintah berikut
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gdKami telah menginstal ekstensi PHP MySQL, CLI, GD, Mbstring, dan XML. Anda dapat menginstal ekstensi tambahan apa pun sesuai kebutuhan Anda
Untuk selalu mengikuti versi terbaru PHP atau jika Anda ingin menginstal beberapa versi PHP, tambahkan repositori PHP Ondrej
Tambahkan repositori PHP Ondrej
$ sudo add-apt-repository ppa:ondrej/phpSekarang, Anda dapat menginstal versi PHP apa pun
$ sudo apt install php8.0-fpm php8.0-cliPeriksa versi PHP yang diinstal
$ php --version PHP 8.1.2 (cli) (built: Jun 13 2022 13:52:54) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend TechnologiesLangkah 3 - Instal MySQL
Ubuntu 22. 04 dikirimkan dengan versi terbaru dari MySQL. Anda dapat menginstalnya dengan satu perintah
$ sudo apt install mysql-serverPeriksa versi MySQL
$ sudo ufw status _0Langkah ini diperlukan untuk MySQL versi 8. 0. 28 ke atas. Masukkan Shell MySQL
$ sudo ufw status _1Jalankan perintah berikut untuk mengatur kata sandi untuk pengguna root Anda. Pastikan itu memiliki campuran angka, huruf besar, huruf kecil, dan karakter khusus
$ sudo ufw status _2Keluar dari cangkang
$ sudo ufw status _3Jalankan skrip instalasi aman MySQL
$ sudo ufw status _4Anda akan diminta untuk menginstal Komponen Kata Sandi Validasi. Ini memeriksa kekuatan kata sandi yang digunakan di MySQL. Tekan Y untuk menginstalnya
Selanjutnya, Anda akan diminta untuk mengatur tingkat kebijakan validasi kata sandi. Pilih 2 karena itu yang terkuat
Selanjutnya, masukkan kata sandi root Anda. Tekan N untuk menolak mengubahnya
Tekan Y untuk menghapus pengguna anonim, melarang login root jarak jauh, menghapus database pengujian, dan memuat ulang tabel hak istimewa
Langkah 4 - Konfigurasikan MySQL
Masuk ke shell MySQL. Masukkan kata sandi root Anda saat diminta
$ sudo ufw status _5Buat database sampel
$ sudo ufw status _6Buat akun pengguna SQL
$ sudo ufw status _7Berikan semua hak istimewa pada database kepada pengguna
$ sudo ufw status _8Siram hak pengguna
$ sudo ufw status _9Keluar dari cangkang
$ sudo ufw status _3Mari kita masuk lagi ke shell MySQL menggunakan pengguna yang baru dibuat
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 1Buat tabel uji
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 2Masukkan data uji
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 3Ulangi perintah di atas waktu terpisah untuk menambahkan lebih banyak entri. Jalankan perintah berikut untuk memeriksa isi tabel
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 4Anda akan menerima output berikut
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 5Keluar dari shell MySQL
Langkah 5 - Instal Nginx
Ubuntu 22. 04 dikirimkan dengan versi Nginx yang lebih lama. Untuk menginstal versi terbaru, Anda perlu mengunduh repositori resmi Nginx
Impor kunci penandatanganan Nginx
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 7Tambahkan repositori untuk versi stabil Nginx
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 8Perbarui repositori sistem
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) _9Instal Nginx
$ sudo ufw allow http $ sudo ufw allow https 0Verifikasi instalasi
$ sudo ufw allow http $ sudo ufw allow https 1Langkah 6 - Konfigurasikan PHP-FPM
Buka $ sudo add-apt-repository ppa:ondrej/php _9 untuk diedit
$ sudo ufw allow http $ sudo ufw allow https 2Untuk menyetel ukuran upload file, ubah nilai variabel $ sudo apt install php8.0-fpm php8.0-cli 0 dan $ sudo apt install php8.0-fpm php8.0-cli 1
$ sudo ufw allow http $ sudo ufw allow https 3Konfigurasikan batas memori PHP tergantung pada sumber daya dan persyaratan server Anda
$ sudo ufw allow http $ sudo ufw allow https 4Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta
Buka file $ sudo apt install php8.0-fpm php8.0-cli _2
$ sudo ufw allow http $ sudo ufw allow https 5Kita perlu mengatur pengguna/grup proses PHP Unix ke nginx. Temukan $ sudo apt install php8.0-fpm php8.0-cli _3 dan $ sudo apt install php8.0-fpm php8.0-cli 4 baris dalam file dan ubah menjadi $ sudo apt install php8.0-fpm php8.0-cli 5
$ sudo ufw allow http $ sudo ufw allow https 6Juga, temukan baris $ sudo apt install php8.0-fpm php8.0-cli _6 dan $ sudo apt install php8.0-fpm php8.0-cli 7 di file dan ubah menjadi $ sudo apt install php8.0-fpm php8.0-cli 5
$ sudo ufw allow http $ sudo ufw allow https 7Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta
Mulai ulang proses PHP-fpm
$ sudo ufw allow http $ sudo ufw allow https 8Langkah 7 - Instal phpMyAdmin
Unduh file arsip phpMyAdmin untuk bahasa Inggris
$ sudo ufw allow http $ sudo ufw allow https _9Buat direktori publik untuk situs tersebut
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) _0Ekstrak arsip ke direktori publik
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) _1Beralih ke direktori publik
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) _2Ganti nama direktori yang diekstraksi menjadi sesuatu yang tidak jelas untuk meningkatkan keamanan
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) _3Langkah 8 - Konfigurasikan phpMyAdmin
Salin file konfigurasi sampel
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) _4Buka file konfigurasi untuk diedit
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) _5Temukan baris $ sudo apt install php8.0-fpm php8.0-cli 9 dan masukkan string acak 32 karakter untuk autentikasi berbasis cookie
Anda dapat menggunakan generator blowfish online phpSolved atau melakukannya melalui baris perintah
Salin nilainya dan tempel seperti yang ditunjukkan
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) _6Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta
Ubah kepemilikan situs dan phpMyAdmin ke server Nginx
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) _7Hapus direktori pengaturan phpMyAdmin
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) _8Langkah 9 - Konfigurasikan Opcache
Opcache adalah sistem caching PHP. Ini bekerja dengan menyimpan bytecode skrip yang telah dikompilasi dalam memori, jadi setiap kali pengguna mengunjungi halaman, halaman dimuat lebih cepat. Opcache diinstal secara default. Untuk memverifikasi, periksa versi PHP
$ php --version PHP 8.1.2 (cli) (built: Jun 13 2022 13:52:54) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend TechnologiesIni memberitahu kita bahwa Opcache telah diinstal dan tersedia. Jika tidak muncul di sini, Anda dapat menginstalnya secara manual dengan menjalankan perintah berikut
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd 0Untuk mengubah pengaturan Opcache, buka file $ php --version PHP 8.1.2 (cli) (built: Jun 13 2022 13:52:54) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies 0 untuk diedit
Pengaturan berikut harus Anda mulai dengan menggunakan Opcache dan umumnya direkomendasikan untuk kinerja yang baik. Anda dapat mengaktifkan konfigurasi dengan menghapus tanda komentar dengan menghapus titik koma di depannya
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd 2Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta
Langkah 10 - Instal Certbot untuk SSL
Kita perlu menginstal Certbot untuk menghasilkan sertifikat SSL gratis yang ditawarkan oleh Let's Encrypt
Anda dapat menginstal Certbot menggunakan repositori Ubuntu atau mengambil versi terbaru menggunakan alat Snapd. Kami akan menggunakan versi Snapd
Ubuntu 22. 04 dilengkapi dengan Snapd yang terinstal secara default. Jalankan perintah berikut untuk memastikan bahwa versi Snapd Anda sudah yang terbaru
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd _3Instal Cerbot
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd 4Gunakan perintah berikut untuk memastikan bahwa perintah Certbot dapat dijalankan dengan membuat tautan simbolik ke direktori $ php --version PHP 8.1.2 (cli) (built: Jun 13 2022 13:52:54) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies 1
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd 5Langkah 11 - Uji situs demo
Buat situs
Buat dan buka halaman percobaan untuk diedit
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd 6Rekatkan kode berikut di dalamnya
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd 7Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta
Buat Sertifikat SSL
Jalankan perintah berikut untuk menghasilkan Sertifikat SSL
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd 8Perintah di atas akan mengunduh sertifikat ke direktori $ php --version PHP 8.1.2 (cli) (built: Jun 13 2022 13:52:54) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies 2 di server Anda
Hasilkan sertifikat grup Diffie-Hellman
$ sudo apt install php-fpm php-cli php-mysqlnd php-mbstring php-xml php-gd _9Buka file $ php --version PHP 8.1.2 (cli) (built: Jun 13 2022 13:52:54) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies _3 untuk diedit
$ sudo add-apt-repository ppa:ondrej/php _0Rekatkan kode berikut di bagian bawah
$ sudo add-apt-repository ppa:ondrej/php _1Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta
Kami telah membuat sertifikat SSL menggunakan opsi mandiri Certbot. Itu menjalankan server webnya untuk membuat sertifikat yang berarti Nginx harus dimatikan selama pembaruan. Perintah pre_hook dan post_hook berjalan sebelum dan sesudah pembaruan untuk menutup dan memulai ulang server Nginx secara otomatis sehingga tidak memerlukan intervensi manual
Untuk memeriksa apakah perpanjangan SSL berfungsi dengan baik, lakukan uji coba proses
$ sudo add-apt-repository ppa:ondrej/php _2Jika Anda tidak melihat kesalahan, Anda sudah siap. Sertifikat Anda akan diperpanjang secara otomatis
Konfigurasi Nginx
Buat dan buka file $ php --version PHP 8.1.2 (cli) (built: Jun 13 2022 13:52:54) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies _4 untuk diedit
$ sudo add-apt-repository ppa:ondrej/php _3Rekatkan kode berikut di dalamnya
$ sudo add-apt-repository ppa:ondrej/php _4Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta
Buka file $ php --version PHP 8.1.2 (cli) (built: Jun 13 2022 13:52:54) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies _5 untuk diedit
$ sudo add-apt-repository ppa:ondrej/php _5Tambahkan baris berikut sebelum baris $ php --version PHP 8.1.2 (cli) (built: Jun 13 2022 13:52:54) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies 6
$ sudo add-apt-repository ppa:ondrej/php _6Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta
Verifikasi konfigurasi Nginx Anda
$ sudo add-apt-repository ppa:ondrej/php _7Jika Anda tidak melihat kesalahan, itu berarti Anda siap melakukannya. Mulai server Nginx
$ sudo add-apt-repository ppa:ondrej/php _8Muat situs web Anda dengan mengunjungi $ php --version PHP 8.1.2 (cli) (built: Jun 13 2022 13:52:54) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies _7 di browser Anda dan Anda akan melihat halaman berikut
Anda dapat mengakses instalasi phpMyAdmin Anda dengan mengunjungi URL $ php --version PHP 8.1.2 (cli) (built: Jun 13 2022 13:52:54) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies 8 di browser Anda. Anda dapat memasukkan pengguna root Anda atau pengguna yang dibuat sebelumnya untuk masuk
Kesimpulan
Ini menyimpulkan tutorial kami di mana Anda belajar cara menyiapkan tumpukan LEMP di Ubuntu 22. 04 server dan membuat situs demo. Jika Anda memiliki pertanyaan, kirimkan di komentar di bawah