GNU/Linux >> Znalost Linux >  >> Ubuntu

Instalace a nastavení PHP a Nginx na Ubuntu 20.04

PHP je univerzální skriptovací jazyk. To je většinou populární pro vývoj webových aplikací. Může být použit k vývoji dynamických a interaktivních webových stránek. Patřil mezi první jazyky na straně serveru, které bylo možné vložit do HTML, což usnadnilo přidávání funkcí na webové stránky bez nutnosti volat externí soubory pro data. PHP patří mezi programovací jazyky, které se snadněji učí.

Je integrován s řadou oblíbených databází, včetně MySQL, PostgreSQL, Oracle, Sybase, Informix a Microsoft SQL Server. Mnoho populárních CMS a frameworků jako WordPress, Magento a Laravel je napsáno v PHP.

V době psaní tohoto článku zahrnují výchozí úložiště Ubuntu 20.04 verzi PHP 7.4.

Předpoklady

Chcete-li postupovat podle tohoto průvodce, ujistěte se, že máte následující:

  1. Aktualizovaný server Ubuntu 20.04, který je připojen k internetu
  2. Kořenový přístup k serveru nebo uživateli s přístupem sudo
  3. Měli byste být spokojeni s používáním terminálu Linux ke spouštění příkazů.

Kroky k instalaci a konfiguraci PHP v Ubuntu 20.04

  1. Ujistěte se, že je server aktuální
  2. Nainstalujte na server php 7.4
  3. Instalace Nginx
  4. Nakonfigurujte Nginx pro poskytování souboru php

1. Ujistěte se, že je server aktuální

Než budete pokračovat, ujistěte se, že je náš server aktualizován. Tyto příkazy použijte k 1. aktualizaci úložišť serveru, 2. aktualizaci serverových balíčků na nejnovější verze:

# Update repos
sudo apt update

# Upgrade packages
sudo apt -y upgrade

2. Nainstalujte na server php 7.4

Protože výchozí úložiště obsahují php verze 7.4, nainstalujme jej pomocí tohoto příkazu:

sudo apt install php -y

Nainstalovanou verzi potvrďte příkazem 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

V tomto nastavení máme v úmyslu poskytovat soubory php pomocí Nginx. Nginx nemá vestavěnou podporu pro zpracování souborů PHP. Ke zpracování souborů PHP použijeme PHP-FPM („fastCGI process manager“).

Nginx nebude fungovat, pokud je nainstalován a spuštěn Apache. Protože budeme používat Nginx, použijte tento příkaz k odstranění apache, pokud je nainstalován v našem systému:

$ sudo apt remove apache2 -y

Nyní nainstalujme php-fpm pomocí tohoto příkazu:

sudo apt install php-fpm -y

Po dokončení instalace se služba FPM automaticky spustí. Služba je přidána do systemd jako php7.4-fpm . Chcete-li zkontrolovat stav služby, spusťte:

$ 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.

Měli byste vidět výstup jako výše.

3. Instalace Nginx

Nyní, když jsou v systému nainstalovány PHP a php-fpm, musíme nainstalovat nginx. Nginx nám umožní nastavit virtuálního hostitele, který můžeme použít k obsluze provozu z domény.

Nainstalujte nginx pomocí tohoto příkazu:

sudo apt install nginx -y

Po dokončení instalace se ve výchozím nastavení spustí Nginx. Zkontrolujte jeho stav a potvrďte, že funguje podle očekávání. Výstup byste měli vidět takto:

$ 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>

Chcete-li potvrdit, že Nginx skutečně běží a je dosažitelný, použijte tento příkaz:

curl http://server_ip/

Kde server_ip je ip vašeho serveru. Pokud z nějakého důvodu neznáte veřejnou IP svého serveru, použijte toto ke kontrole:

curl -4 icanhazip.com

Měli byste vidět výchozí stránku Nginx.

4. Nakonfigurujte Nginx tak, aby obsluhoval soubor php

Nyní, když máme Nginx nastaven a spuštěn na našem serveru, udělejme, že bude sloužit souborům php. V tomto příkladu nakonfigurujeme Nginx tak, aby obsluhoval informační stránku php.

Abychom toho dosáhli, musíme v Nginx nastavit virtuálního hostitele obsluhujícího provoz pro konkrétní doménu (použijeme example.citizix.com ). Aby to fungovalo, musíte aktualizovat záznamy DNS pro tuto doménu ve vašem hostiteli DNS tak, aby měly A záznamy ukazují na tuto doménu nebo subdoménu. Podrobnosti o tom, jak to udělat, najdete v dokumentaci poskytovatele DNS.

Pomocí příkazu dig:

potvrďte, že doména může být správně převedena na server
❯ 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

Nyní musíme provést tyto kroky, aby náš jednoduchý skript fungoval:

  1. Vytvořte adresář pro uložení našeho statického obsahu (budeme používat /var/www/example.citizix.com )
    sudo mkdir -p /var/www/example.citizix.com
  2. Zajistěte, aby byl vytvořený adresář přístupný uživateli Nginx
    sudo chown -R www-data:www-data /var/www/example.citizix.com
    sudo chmod -R 755 /var/www/example.citizix.com
  3. Přidat indexový soubor /var/www/example.citizix.com/index.php s obsahem pro zobrazení informací o php do adresáře (/var/www/example.citizix.com )
    Upravit soubor:

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

    Přidejte tento obsah:

    <?php
    phpinfo()
    ?>

    Uložte a zavřete soubor.

  4. Vytvořte konfiguraci nginx ve výchozím adresáři nginx /etc/nginx/conf.d . 1. Vytvoříme soubor /etc/nginx/conf.d/example.citizix.com.conf s požadovaným obsahem.
    sudo vim /etc/nginx/conf.d/example.citizix.com.conf

Přidejte tento obsah:

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;
    }
}

Ověřte správnost konfigurace nginx pomocí tohoto příkazu:

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

Nyní musíte restartovat nginx a php-fpm pomocí těchto příkazů:

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

Potvrďte, že se služby objevily:

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

Měli byste vidět, že se služby úspěšně restartovaly!

Pokud vše půjde dobře, měli byste vidět stránku s informacemi o php, jak je znázorněno na obrázku níže:

To je vše! Do této chvíle jsme byli schopni nainstalovat php 7.4 v Ubuntu 20.04 a obsluhovat jednoduchý soubor s Nginx.


Ubuntu
  1. Základní konfigurace PHP 7 a Nginx na Ubuntu 16.04 Linux

  2. Nastavení NTP na Centos a Ubuntu

  3. Nainstalujte a nakonfigurujte PHP OPcache na Ubuntu 20.04

  1. Instalace LLMP (Lighttpd, PHP a MySQL) na Ubuntu 14.10

  2. Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Ubuntu 20.04

  3. Chyba při instalaci Nginx na Ubuntu 16.04?

  1. Co dělat po instalaci Ubuntu 18.04 a 19.10

  2. Jak nainstalovat PHP 7.4 a 8.0 na Ubuntu 18.04 nebo 20.04

  3. Instalace Nginx na Ubuntu 14.04 a 16.04