GNU/Linux >> Belajar Linux >  >> Ubuntu

Menginstal dan mengatur Php dan Nginx di Ubuntu 20.04

PHP adalah bahasa scripting tujuan umum. Ini sebagian besar populer untuk pengembangan web. Ini dapat digunakan untuk mengembangkan situs web yang dinamis dan interaktif. Itu adalah salah satu bahasa sisi server pertama yang dapat disematkan ke dalam HTML, membuatnya lebih mudah untuk menambahkan fungsionalitas ke halaman web tanpa perlu memanggil file eksternal untuk data. PHP adalah salah satu bahasa pemrograman yang lebih mudah dipelajari.

Ini terintegrasi dengan sejumlah database populer, termasuk MySQL, PostgreSQL, Oracle, Sybase, Informix, dan Microsoft SQL Server. Banyak CMS dan kerangka kerja populer seperti WordPress, Magento, dan Laravel ditulis dalam PHP.

Pada saat penulisan artikel ini, repositori default Ubuntu 20.04 menyertakan versi PHP 7.4.

Prasyarat

Untuk mengikuti panduan ini, pastikan Anda memiliki yang berikut:

  1. Memperbarui server Ubuntu 20.04 yang terhubung ke internet
  2. Akses root ke server atau pengguna dengan akses sudo
  3. Anda harus nyaman menggunakan terminal Linux untuk menjalankan perintah.

Langkah-langkah untuk menginstal dan dan mengkonfigurasi PHP di Ubuntu 20.04

  1. Pastikan server sudah diperbarui
  2. Instal php 7.4 di server
  3. Menginstal Nginx
  4. Konfigurasikan Nginx untuk menyajikan file php

1. Pastikan server sudah diperbarui

Sebelum melanjutkan, izinkan kami memastikan bahwa server kami diperbarui. Gunakan perintah ini untuk 1. Perbarui repositori server, 2. Tingkatkan paket server ke rilis terbaru:

# Update repos
sudo apt update

# Upgrade packages
sudo apt -y upgrade

2. Instal php 7.4 di server

Karena repositori default berisi php versi 7.4, mari kita instal dengan perintah ini:

sudo apt install php -y

Konfirmasikan versi yang diinstal dengan perintah php -v :

~$ php -v
PHP 7.4.3 (cli) (built: Aug 13 2021 05:39:12) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

Dalam pengaturan ini, kami bermaksud menyajikan file php dengan Nginx. Nginx tidak memiliki dukungan bawaan untuk memproses file PHP. Kami akan menggunakan PHP-FPM ("fastCGI process manager") untuk menangani file PHP.

Nginx tidak akan berfungsi jika Apache diinstal dan dijalankan. Karena kita akan menggunakan Nginx, mari gunakan perintah ini untuk menghapus apache jika sudah terpasang di sistem kita:

$ sudo apt remove apache2 -y

Sekarang mari kita instal php-fpm dengan perintah ini:

sudo apt install php-fpm -y

Setelah instalasi selesai, layanan FPM akan dimulai secara otomatis. Layanan ditambahkan ke systemd sebagai php7.4-fpm . Untuk memeriksa status layanan, jalankan:

$ 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 2021-09-28 16:18:41 UTC; 3min 18s ago
       Docs: man:php-fpm7.4(8)
   Main PID: 56092 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 4710)
     Memory: 7.1M
     CGroup: /system.slice/php7.4-fpm.service
             ├─56092 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─56113 php-fpm: pool www
             └─56114 php-fpm: pool www

Sep 28 16:18:41 ip-172-26-11-229 systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Sep 28 16:18:41 ip-172-26-11-229 systemd[1]: Started The PHP 7.4 FastCGI Process Manager.

Anda akan melihat output seperti di atas.

3. Menginstal Nginx

Sekarang setelah PHP dan php-fpm terinstal di sistem, kita perlu menginstal nginx. Nginx akan memungkinkan kita untuk menyiapkan host virtual yang dapat kita gunakan untuk melayani lalu lintas dari domain.

Instal nginx menggunakan perintah ini:

sudo apt install nginx -y

Setelah instalasi selesai, Nginx akan dimulai secara default. Konfirmasikan bahwa itu berfungsi seperti yang diharapkan dengan memeriksa statusnya. Anda akan melihat output seperti ini:

$ sudo systemctl status nginx
● 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 Tue 2021-09-28 16:28:30 UTC; 1min 2s ago
       Docs: man:nginx(8)
   Main PID: 56990 (nginx)
      Tasks: 3 (limit: 4710)
     Memory: 3.7M
     CGroup: /system.slice/nginx.service
             ├─56990 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ├─56991 nginx: worker process
             └─56992 nginx: worker process

Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Starting A high performance web server and a reverse pr>
Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Started A high performance web server and a reverse pro>

Untuk mengonfirmasi bahwa Nginx benar-benar berjalan dan dapat dijangkau, gunakan perintah ini:

curl http://server_ip/

Dimana server_ip adalah ip server Anda. Jika karena alasan apa pun Anda tidak mengetahui ip publik server Anda, gunakan ini untuk memeriksa:

curl -4 icanhazip.com

Anda akan melihat halaman default Nginx.

4. Konfigurasi Nginx untuk menyajikan file php

Sekarang kita telah menyiapkan dan menjalankan Nginx di server kita, mari membuatnya melayani file php. Dalam contoh ini kita akan mengkonfigurasi Nginx untuk melayani halaman info php.

Untuk mencapai ini, kita perlu menyiapkan virtual host di Nginx yang melayani lalu lintas untuk domain tertentu (kita akan menggunakan example.citizix.com ). Agar ini berfungsi, Anda perlu memperbarui catatan DNS untuk domain itu di host dns Anda agar memiliki A catatan menunjuk ke domain atau subdomain itu. Lihat dokumentasi penyedia DNS Anda untuk mengetahui cara melakukannya secara spesifik.

Konfirmasikan bahwa domain dapat diselesaikan dengan benar ke server menggunakan perintah dig:

❯ dig -t A example.citizix.com

; <<>> DiG 9.10.6 <<>> -t A example.citizix.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10212
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;example.citizix.com.       IN  A

;; ANSWER SECTION:
example.citizix.com.    300 IN  A   172.67.197.11

;; Query time: 828 msec
;; SERVER: 192.168.157.227#53(192.168.157.227)
;; WHEN: Tue Sep 28 20:42:05 EAT 2021
;; MSG SIZE  rcvd: 80

Sekarang kita perlu mengikuti langkah-langkah ini agar skrip sederhana kita berfungsi:

  1. Buat direktori untuk menyimpan konten statis kami (kami akan menggunakan /var/www/example.citizix.com )
    sudo mkdir -p /var/www/example.citizix.com
  2. Pastikan direktori yang dibuat dapat diakses oleh pengguna Nginx
    sudo chown -R www-data:www-data /var/www/example.citizix.com
    sudo chmod -R 755 /var/www/example.citizix.com
  3. Tambahkan file indeks /var/www/example.citizix.com/index.php dengan konten untuk menampilkan info php ke direktori (/var/www/example.citizix.com )
    Mengedit file:

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

    Tambahkan konten ini:

    <?php
    phpinfo()
    ?>

    Simpan dan tutup file.

  4. Buat konfigurasi nginx di direktori default nginx /etc/nginx/conf.d . 1. Kita akan membuat file /etc/nginx/conf.d/example.citizix.com.conf dengan konten yang diperlukan.
    sudo vim /etc/nginx/conf.d/example.citizix.com.conf

Tambahkan konten ini:

server {
    listen 80;
    server_name example.citizix.com;

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

    location ~ \.php$ {
        fastcgi_intercept_errors on;
        include        fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }
}

Konfirmasikan bahwa konfigurasi nginx sudah benar dengan perintah ini:

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Sekarang Anda perlu me-restart nginx dan php-fpm menggunakan perintah ini:

sudo systemctl restart nginx
sudo systemctl restart php7.4-fpm

Konfirmasikan bahwa layanan muncul:

sudo systemctl status nginx
sudo systemctl status php7.4-fpm

Anda akan melihat bahwa layanan berhasil dimulai ulang!

Jika semuanya berjalan dengan baik, Anda akan melihat halaman info php seperti yang ditunjukkan pada tangkapan layar di bawah ini:

Itu saja! Sampai saat ini kami telah dapat menginstal php 7.4 di Ubuntu 20.04 dan menyajikan file sederhana dengan Nginx.


Ubuntu
  1. Konfigurasi Dasar PHP 7 dan Nginx di Ubuntu 16.04 Linux

  2. Mengatur NTP Pada Centos dan Ubuntu

  3. Menginstal LLMP (Lighttpd, PHP, dan MySQL) di Ubuntu 14.10

  1. Instal dan Konfigurasi PHP OPcache di Ubuntu 20.04

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

  3. Kesalahan Saat Menginstal Nginx Di Ubuntu 16.04?

  1. Hal yang harus dilakukan Setelah Menginstal Ubuntu 18.04 dan 19.10

  2. Cara Menginstal PHP 7.4 dan 8.0 Di Ubuntu 18.04 atau 20.04

  3. Menginstal Nginx di Ubuntu 14.04 dan 16.04