GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Nginx, MySQL &PHP (LEMP) di Ubuntu 20.04

Kombinasi Linux, Nginx, MySQL, dan PHP dikenal sebagai LEMP stack adalah lingkungan web hosting populer untuk aplikasi berbasis PHP. Di sini Linux adalah sistem operasi, Nginx adalah server web yang populer, MySQL adalah sistem manajemen basis data relasional yang digunakan untuk menyimpan data dan PHP adalah bahasa pemrograman yang banyak digunakan.

Artikel ini akan membantu Anda menginstal Nginx, MySQL 8.0 dan PHP 7.4 di sistem Linux Ubuntu. Mari kita mulai dengan instalasi LEMP stack mesin Ubuntu Anda.

Prasyarat

Sebelum memulai instalasi LEMP di Ubuntu:

  • Sistem Ubuntu 20.04 yang sedang berjalan
  • Masuk sebagai akun yang disediakan sudo di sistem Anda. Untuk membuatnya, ikuti tutorial pengaturan server awal.
  • Nama domain/subdomain menunjuk ke server Anda

Menginstal Server Web Nginx

Selanjutnya, Anda perlu menginstal server web Nginx di sistem Anda. Paket Nginx tersedia di repositori apt default.

Jalankan perintah berikut untuk menginstalnya:

sudo apt update
sudo apt install nginx

Menginstal PHP dengan PHP-FPM

Paket PHP 7.4 tersedia di bawah repositori default di Ubuntu 20.04 LTS. Gunakan perintah berikut untuk memperbarui apt cache dan menginstal PHP di sistem Anda.

sudo apt update
sudo apt install -y php7.4 php7.4-fpm

Instal juga modul PHP tambahan yang diperlukan untuk aplikasi Anda.

sudo apt install php7.4-curl php7.4-gd php7.4-json php7.4-mbstring php7.4-xml

Anda telah menginstal PHP 7.4 dengan paket PHP FPM di sistem Anda. Mari kita periksa status layanan PHP FPM dengan menjalankan perintah di bawah ini:

sudo systemctl status php7.4-fpm

● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-06-16 05:15:57 UTC; 34s ago
       Docs: man:php-fpm7.4(8)
    Process: 882716 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74>
   Main PID: 882699 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 2283)
     Memory: 10.3M
     CGroup: /system.slice/php7.4-fpm.service
             ├─882699 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─882714 php-fpm: pool www
             └─882715 php-fpm: pool www

Jun 16 05:15:57 tecadmin systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Jun 16 05:15:57 tecadmin systemd[1]: Started The PHP 7.4 FastCGI Process Manager.

Menginstal MySQL

Repositori apt Ubuntu 20.04 default berisi server MySQL 8.0. Terakhir, instal paket mysql-server untuk database MySQL. Juga, instal paket php-mysql untuk menggunakan dukungan MySQL menggunakan PHP. Gunakan perintah berikut untuk menginstalnya.

sudo apt install mysql-server php7.4-mysql

Penginstal akan meminta kata sandi root, Kata sandi ini akan berfungsi untuk pengguna root MySQL Anda. Setelah menginstal MySQL, jalankan perintah berikut untuk pengaturan awal server MySQL. Anda akan melihat bahwa skrip akan meminta lebih banyak pengaturan daripada versi MySQL sebelumnya seperti kebijakan validasi kata sandi, dll.

sudo mysql_secure_installation
Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component? 

Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

Konfigurasi Nginx dengan PHP-FPM

Mari buat host virtual Nginx untuk dijalankan dengan FPM/FastCGI. Untuk tutorial ini, kami menggunakan VirtualHost default. Edit file konfigurasi Host VirtualHost di editor teks. Anda dapat membuat VirtualHost baru sesuai kebutuhan Anda, jadi pastikan untuk mengaktifkan VirtualHost baru.

sudo vim /etc/nginx/sites-available/example.com

Gunakan konfigurasi Nginx Virtual host dasar di bawah ini dengan pengaturan php fpm. Perbarui konfigurasi sebagai berikut.

Apache
12345678910112131415 server { dengarkan 80; root /var/www/html; indeks index.php index.html index.htm; nama_server contoh.com; lokasi / { try_files $uri $uri/ =404; } lokasi ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; }}

Simpan perubahan Anda ke file konfigurasi dan buat tautan ke direktori yang diaktifkan situs.

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com 

Kemudian restart layanan Nginx untuk memuat ulang perubahan.

sudo systemctl restart nginx

Langkah 5 – Kelola Layanan

Kami telah selesai dengan instalasi LAMP stack pada sistem Ubuntu 20.04 LTS. Perintah di bawah ini akan membantu Anda untuk memulai/menghentikan atau memulai ulang layanan Nginx dan MySQL yang berjalan dengan systemd.

Untuk memulai ulang layanan Nginx dan MySQL, ketik:

sudo systemctl restart nginx
sudo systemctl restart mysql

Untuk memulai layanan Nginx dan MySQL, ketik:

sudo systemctl start nginx
sudo systemctl start mysql

Untuk menghentikan layanan Nginx dan MySQL, ketik:

sudo systemctl stop nginx
sudo systemctl stop mysql

Langkah 6 – Sesuaikan Aturan Firewall

Anda dapat langsung memberikan nama layanan seperti "http" atau "https" untuk mengizinkan. Firewalld menggunakan file /etc/services untuk menentukan port layanan yang sesuai.

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

sudo firewall-cmd --reload

Langkah 7 – Verifikasi Pengaturan

Setelah menyelesaikan semua pengaturan. Mari kita buat info.php file root dokumen situs web dengan konten berikut.

sudo echo "<?php phpinfo(); ?>" > /var/www/html/info.php

Sekarang akses file ini di browser web. Anda akan melihat layar seperti di bawah ini dengan semua detail PHP di server.

Selamat! Anda telah berhasil mengonfigurasi server LEMP pada sistem Ubuntu 20.04 LTS Anda.


Ubuntu
  1. Cara Menginstal Phorum dengan Nginx di Ubuntu 18.04 LTS

  2. Cara Menginstal dan mengatur PHP dan Nginx (LEMP) di Ubuntu 20.04

  3. Cara Menginstal LEMP 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 Instal LEMP Stack Nginx, MySQL, PHP di Ubuntu 22.04

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

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

  3. Nginx 1.7.9 + PHP5-FPM + MySQL (LEMP) di Ubuntu 14.10