GNU/Linux >> Belajar Linux >  >> Rocky Linux

Cara Install dan Setting PHP dan Nginx (LEMP) di Rocky Linux/Alma Linux 8

PHP adalah bahasa scripting tujuan umum diarahkan pengembangan web. Ini adalah salah satu bahasa pemrograman populer untuk web. Alat populer seperti WordPress dikodekan menggunakan php. Perusahaan besar seperti Facebook juga banyak menggunakan php.

Nginx adalah server web yang juga dapat digunakan sebagai proxy terbalik, penyeimbang beban, proxy surat, dan cache HTTP. Ini dimulai sebagai server web yang dirancang untuk kinerja dan stabilitas maksimum. Nginx semakin populer sejak dirilis karena penggunaan sumber dayanya yang ringan dan kemampuannya untuk menskalakan dengan mudah pada perangkat keras minimal. Nginx unggul dalam menyajikan konten statis dengan cepat dan dirancang untuk meneruskan permintaan dinamis ke perangkat lunak lain yang lebih cocok untuk tujuan tersebut.

Konten Terkait

  • Cara Menginstal dan menyiapkan PHP dan Nginx (LEMP) di OpenSUSE Leap 15.3
  • Cara Menginstal tumpukan Apache PHP 7.4 (LAMP) di Rocky Linux/Centos 8
  • Cara menginstal dan menyiapkan PHP dan Apache (LAMP stack) di Ubuntu 20.04
  • Cara Menginstal dan menyiapkan PHP dan Nginx (LEMP) di Ubuntu 20.04
  • Cara menginstal dan menyiapkan PHP dan Apache (LAMP stack) di Debian 11
  • Cara Menginstal dan menyiapkan PHP dan Nginx (LEMP) di Debian 11

Daftar Isi

  1. Memastikan bahwa server selalu mutakhir
  2. Menginstal PHP di Rocky Linux/Alma Linux 8
  3. Menginstal Nginx di Rocky Linux/Alma Linux 8
  4. Menginstal php-fpm di Rocky Linux/Alma Linux 8
  5. Membuat situs sederhana dan mengonfigurasi host virtual
  6. Menguji konfigurasi

1. Memastikan bahwa server sudah diperbarui

Sebelum melanjutkan, itu selalu merupakan praktik yang baik untuk memastikan bahwa server up to date. Gunakan perintah ini untuk mencapainya

sudo df update -y

2. Menginstal PHP di Rocky Linux/Alma Linux 8

Untuk file php yang akan disajikan, php perlu diatur dalam sistem. Dalam panduan ini kita akan menginstal php 7.4.

PHP 7.4 belum tersedia di repositori default. Remi Repository adalah repo yang sempurna untuk menginstal php7.4. Remi repo adalah repositori YUM gratis dan stabil terutama untuk tumpukan PHP. Ini berisi paket-paket untuk PHP versi terbaru.

Untuk mengaktifkan Remi Repository di Server Centos kami:

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Konfirmasikan bahwa repositori remi telah diinstal dan diaktifkan dengan perintah ini:

$ sudo dnf repolist
repo id                                 repo name
appstream                               CentOS Linux 8 - AppStream
baseos                                  CentOS Linux 8 - BaseOS
epel                                    Extra Packages for Enterprise Linux 8 - x86_64
epel-modular                            Extra Packages for Enterprise Linux Modular 8 - x86_64
extras                                  CentOS Linux 8 - Extras
remi-modular                            Remi's Modular repository for Enterprise Linux 8 - x86_64
remi-safe                               Safe Remi's RPM repository for Enterprise Linux 8 - x86_64

Anda akan melihat repo remi sebagai bagian dari daftar.

Sekarang repositori telah diinstal, mari kita cari php. Gunakan perintah ini:

$ sudo dnf module list php
Last metadata expiration check: 0:49:30 ago on Wed 22 Dec 2021 04:23:13 AM UTC.
Rocky Linux 8 - AppStream
Name           Stream             Profiles                            Summary
php            7.2 [d]            common [d], devel, minimal          PHP scripting language
php            7.3                common [d], devel, minimal          PHP scripting language
php            7.4                common [d], devel, minimal          PHP scripting language

Remi's Modular repository for Enterprise Linux 8 - x86_64
Name           Stream             Profiles                            Summary
php            remi-7.2           common [d], devel, minimal          PHP scripting language
php            remi-7.3           common [d], devel, minimal          PHP scripting language
php            remi-7.4           common [d], devel, minimal          PHP scripting language
php            remi-8.0           common [d], devel, minimal          PHP scripting language
php            remi-8.1           common [d], devel, minimal          PHP scripting language

Dari daftar. kita dapat melihat bahwa yang default adalah 7.2. Melakukan dnf install php akan menginstal 7.2 yang tidak kita inginkan. Mari aktifkan 7.4 menggunakan perintah ini:

sudo dnf module enable php:remi-7.4

Jika karena alasan tertentu gagal, Anda dapat mengatur ulang modul yang ada dengan perintah ini:

sudo dnf module reset php

Sekarang repo telah diaktifkan, mari instal php dengan perintah ini:

sudo dnf install -y php \
    php-common \
    php-cli

Setelah berhasil. konfirmasi versi yang diinstal dengan perintah ini:

$ php -v
PHP 7.4.27 (cli) (built: Dec 14 2021 17:17:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.27, Copyright (c), by Zend Technologies

3. Menginstal Nginx di Rocky Linux

Kami akan menggunakan Nginx untuk menyajikan konten PHP. Nginx, sebagai server web berkinerja tinggi yang stabil dan dengan konsumsi sumber daya yang sangat rendah, sangat cocok untuk PHP-FPM. Nginx memiliki arsitektur asinkron yang jauh lebih skalabel, berdasarkan peristiwa.

Nginx tersedia di repo Rocky Linux/Alma Linu default. Instal menggunakan perintah ini:

sudo dnf install -y nginx

Konfirmasi nginx yang diinstal

$ rpm -qi nginx
Name        : nginx
Epoch       : 1
Version     : 1.14.1
Release     : 9.module+el8.4.0+542+81547229
Architecture: x86_64
Install Date: Wed 22 Dec 2021 05:16:08 AM UTC
Group       : System Environment/Daemons
Size        : 1669719
License     : BSD
Signature   : RSA/SHA256, Thu 10 Jun 2021 09:22:38 AM UTC, Key ID 15af5dac6d745a60
Source RPM  : nginx-1.14.1-9.module+el8.4.0+542+81547229.src.rpm
Build Date  : Thu 10 Jun 2021 09:10:40 AM UTC
Build Host  : ord1-prod-x86build005.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager    : [email protected]
Vendor      : Rocky
URL         : http://nginx.org/
Summary     : A high performance web server and reverse proxy server
Description :
Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
IMAP protocols, with a strong focus on high concurrency, performance and low

Layanan tidak akan dimulai secara default. Untuk memulai Nginx, gunakan perintah ini:

sudo systemctl start nginx

Konfirmasi status menggunakan perintah ini:

$ sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           └─php-fpm.conf
   Active: active (running) since Wed 2021-12-22 05:17:32 UTC; 45s ago
  Process: 118235 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 118228 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 118226 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 118237 (nginx)
    Tasks: 3 (limit: 23167)
   Memory: 5.0M
   CGroup: /system.slice/nginx.service
           ├─118237 nginx: master process /usr/sbin/nginx
           ├─118238 nginx: worker process
           └─118239 nginx: worker process

Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 22 05:17:32 rockylinuxsrv.citizix.com nginx[118228]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 22 05:17:32 rockylinuxsrv.citizix.com nginx[118228]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Started The nginx HTTP and reverse proxy server.

Untuk mengaktifkan layanan saat boot, gunakan perintah systemd ini:

sudo systemctl enable nginx

4. Menginstal PHP FPM di Rocky Linux/Alma Linux 8

PHP-FPM (singkatan dari FastCGI Process Manager) adalah implementasi FastCGI PHP (Hypertext Processor) alternatif yang sangat populer. PHP-FPM adalah alternatif implementasi PHP FastCGI yang paling populer. Ini memiliki fitur tambahan yang sangat berguna untuk situs web dengan lalu lintas tinggi. Saat menggunakan Nginx dengan PHP-FPM, kinerja pada tingkat konsumsi memori ditingkatkan.

PHP berjalan sebagai layanan terpisah saat menggunakan PHP-FPM. Dengan menggunakan versi PHP ini sebagai penerjemah bahasa, permintaan diproses melalui soket TCP/IP; sehingga web server Nginx hanya menangani permintaan HTTP dan PHP-FPM menginterpretasikan kode PHP. Fakta memiliki dua layanan terpisah adalah kunci untuk meningkatkan efisiensi.

Instal php-fpm menggunakan perintah ini:

sudo dnf install -y php-fpm

Layanan tidak akan dimulai secara default. Untuk memulainya, gunakan perintah systemd ini:

sudo systemctl start php-fpm

Periksa status layanan untuk mengonfirmasi bahwa itu berjalan menggunakan perintah ini:

$ sudo systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-12-22 05:17:32 UTC; 3min 5s ago
 Main PID: 118227 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 6 (limit: 23167)
   Memory: 22.9M
   CGroup: /system.slice/php-fpm.service
           ├─118227 php-fpm: master process (/etc/php-fpm.conf)
           ├─118230 php-fpm: pool www
           ├─118231 php-fpm: pool www
           ├─118232 php-fpm: pool www
           ├─118233 php-fpm: pool www
           └─118234 php-fpm: pool www

Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Starting The PHP FastCGI Process Manager...
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Started The PHP FastCGI Process Manager.

5. Membuat situs sederhana dan mengonfigurasi virtual host

Nginx memungkinkan Anda untuk melayani beberapa situs menggunakan virtual host. Konsep host virtual memungkinkan lebih dari satu situs Web pada satu sistem atau server Web. Server dibedakan berdasarkan nama hostnya. Pengunjung ke situs Web dirutekan dengan nama host atau alamat IP ke host virtual yang benar. Hosting virtual memungkinkan perusahaan berbagi satu server untuk masing-masing memiliki nama domain sendiri.

Dalam contoh ini, kami akan menggunakan domain site1.citizix.com untuk virtual host tetapi bebas menggunakan domain pilihan Anda. Harap dicatat bahwa DNS untuk domain yang akan digunakan harus sudah dikonfigurasi untuk menunjuk ke alamat IP server. Konfirmasikan dengan:

dig -t A site1.citizix.com

Membuat direktori dan menambahkan konten sampel

Halaman default nginx dikonfigurasi sebagai host virtual default yang menyajikan konten dari /var/www/html . Ini adalah praktik terbaik untuk membuat direktori situs Anda di /var/www direktori karena ini adalah praktik terbaik untuk melayani dari sana.

Mari buat direktori untuk situs kita dengan perintah berikut:

sudo mkdir /var/www/site1.citizix.com

Mari kita buat index.php yang sederhana halaman untuk melayani dari situs kami. Anda perlu menginstal vim agar ini berfungsi, jika tidak gunakan perintah ini:

sudo dnf install -y vim

Edit filenya:

sudo vim /var/www/site1.citizix.com/index.php

Tambahkan konten ke file:

<?php phpinfo(); ?>

Membuat host virtual (Blok server)

Blok server Nginx dapat digunakan untuk merangkum detail konfigurasi dan menghosting lebih dari satu domain di satu server. Kami akan membuat host virtual untuk situs kami (site1.citizix.com).

Konfigurasi virtual host Nginx disimpan di direktori /etc/nginx/conf.d/ . Mari buat konfigurasi untuk situs kita:

sudo vim /etc/nginx/conf.d/site1.citizix.com.conf

Tambahkan konten berikut

server {
    listen 80;
    server_tokens off;
    client_max_body_size 100M;
    server_name site1.citizix.com;

    access_log /var/log/nginx/site1.citizix.com.log;
    error_log  /var/log/nginx/site1.citizix.com.log;

    root /var/www/site1.citizix.com;
    index index.php;

    if ($host !~* ^(site1.citizix.com)$) {
        return 444;
    }

    location / {
        proxy_read_timeout 600;
        proxy_connect_timeout 600;
        proxy_send_timeout 600;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_index index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/run/php/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Mari kita restart layanan nginx dan php-fpm agar konfigurasi dapat diterapkan

sudo systemctl restart php-fpm
sudo systemctl restart nginx

6. Menguji konfigurasi

Untuk menguji konfigurasi, buka browser Anda dan muat domain yang Anda siapkan. Dalam kasus saya ini adalah http://site1.citizix.com . Anda akan melihat halaman info php.

Jika Anda belum mengonfigurasi pengaturan DNS Anda atau hanya tidak ingin situs tersebut ditayangkan, Anda dapat memodifikasi file host komputer Anda. Untuk melakukannya, gunakan perintah berikut di CLI komputer lokal Anda

sudo vim /etc/hosts

Kemudian, tambahkan alamat IP server Anda yang sebenarnya diikuti dengan nama domain yang Anda konfigurasikan, misalnya:

# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com

Sekarang Anda seharusnya dapat menyimpan file dan mengaksesnya dari dalam browser web.

Kesimpulan

Host virtual Nginx atau server blok adalah cara yang bagus untuk menambahkan situs web tambahan ke server asal yang sama. Jumlah kemungkinan konfigurasi untuk situs tertentu hampir tidak terbatas saat Anda mulai memodifikasi file konfigurasi host virtual agar sesuai dengan kebutuhan spesifik situs Anda.

Dalam panduan ini kami mempelajari cara menyiapkan host virtual untuk menyajikan konten php di sistem berbasis Rocky Linux/Alma Linux atau RHEL.


Rocky Linux
  1. Cara menginstal Erlang di Rocky Linux/Alma Linux/CentOS 8

  2. Cara Menginstal dan mengatur PHP dan Nginx (LEMP) di OpenSUSE Leap 15.3

  3. Cara Setting Laravel Bagisto dengan Nginx dan PHP-FPM di Rocky Linux/Alma Linux 8

  1. Cara Install dan Konfigurasi Memcached di Rocky Linux/Alma Linux 8

  2. Cara Install FFmpeg di Rocky Linux/Alma Linux 8

  3. Cara menginstal PHP 8 di Alma Linux &Rocky Linux

  1. Bagaimana Cara Install WordPress dengan LEMP (Nginx, MariaDB, dan PHP) di Rocky Linux 8 ?

  2. Cara Menginstal dan mengatur PHP dan Nginx (LEMP) di Debian 11

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