GNU/Linux >> Znalost Linux >  >> OpenSuse

Jak nainstalovat a nastavit PHP a Nginx (LEMP) na OpenSUSE Leap 15.3

PHP je univerzální skriptovací jazyk zaměřený na vývoj webových aplikací. Je to jeden z oblíbených programovacích jazyků pro web. Populární nástroje, jako je WordPress, jsou kódovány pomocí php. Velké společnosti jako Facebook také hojně využívají php.

Nginx je webový server, který lze také použít jako reverzní proxy, vyrovnávání zatížení, poštovní proxy a HTTP cache. Začalo to jako webový server navržený pro maximální výkon a stabilitu. Nginx od svého vydání vzrostl na popularitě díky nízkému využití zdrojů a schopnosti snadno škálovat na minimálním hardwaru. Nginx vyniká v rychlém poskytování statického obsahu a je navržen tak, aby dynamické požadavky předával jinému softwaru, který je pro tyto účely vhodnější.

Související obsah

  • Jak nainstalovat a nastavit PHP a Apache (zásobník LAMP) na OpenSUSE Leap 15.3
  • Jak nainstalovat Apache PHP 7.4 (LAMP) stack na Rocky Linux/Centos 8
  • Jak nainstalovat a nastavit PHP a Apache (zásobník LAMP) na Ubuntu 20.04
  • Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Ubuntu 20.04
  • Jak nainstalovat a nastavit PHP a Apache (zásobník LAMP) na Debian 11
  • Jak nainstalovat a nastavit PHP a Nginx (LEMP) v Debianu 11
  • Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Rocky Linux/Alma Linux 8

Obsah

  1. Zajištění aktuálnosti serveru
  2. Instalace PHP na OpenSUSE Leap 15.3
  3. Instalace Nginx na OpenSUSE Leap 15.3
  4. Instalace php-fpm v OpenSUSE Leap 15.3
  5. Vytvoření jednoduchého webu a konfigurace virtuálního hostitele
  6. Testování konfigurace

1. Zajištění aktuálnosti serveru

Než budete pokračovat, je vždy dobré se ujistit, že je server aktuální. K tomu použijte tyto příkazy

sudo zypper refresh
sudo zypper update -y

2. Instalace PHP na OpenSUSE Leap 15.3

PHP je k dispozici ve výchozím repozitáři OpenSUSE. Nejnovější verze PHP v době psaní tohoto blogu je PHP 7.4.

Nainstalujte PHP a některé běžné balíčky pomocí tohoto příkazu:

sudo zypper install -y \
    php \
    php-cli

Zkontrolujte nainstalovanou verzi PHP

~> zypper info php7
Repository 'Update repository with updates from SUSE Linux Enterprise 15' is out-of-date. You can run 'zypper refresh' as root to update it.
Loading repository data...
Reading installed packages...


Information for package php7:
-----------------------------
Repository     : Update repository with updates from SUSE Linux Enterprise 15
Name           : php7
Version        : 7.4.6-3.29.1
Arch           : x86_64
Vendor         : SUSE LLC <https://www.suse.com/>
Installed Size : 10.3 MiB
Installed      : Yes
Status         : up-to-date
Source package : php7-7.4.6-3.29.1.src
Summary        : Interpreter for the PHP scripting language version 7
Description    :
    PHP is a server-side HTML embedded scripting language designed
    primarily for web development but also used as a general-purpose
    programming language.

    This package contains the standard implementation of PHP, namely Zend
    PHP. Included are the PHP command-line binary and the configuration
    file (php.ini). This package must be installed in order to use PHP.
    Additionally, extension modules and server modules (e.g. for Apache)
    may be installed.

    Additional documentation is available in package php-doc.

Zkontrolujte nainstalovanou verzi php pomocí tohoto příkazu:

~> php -v
PHP 7.4.6 (cli) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

3. Instalace Nginx na OpenSUSE Leap 15.3

K poskytování obsahu PHP použijeme Nginx. Nginx jako stabilní vysoce výkonný webový server s velmi nízkou spotřebou zdrojů se perfektně hodí pro PHP-FPM. Nginx má asynchronní architekturu, která je mnohem škálovatelnější na základě událostí.

Nginx je k dispozici ve výchozím úložišti UpenSUSE. Nainstalujte jej pomocí tohoto příkazu:

sudo zypper install -y nginx

Potvrďte nainstalovaný nginx

~> zypper info nginx
Loading repository data...
Reading installed packages...


Information for package nginx:
------------------------------
Repository     : Main Repository
Name           : nginx
Version        : 1.19.8-3.6.1
Arch           : x86_64
Vendor         : SUSE LLC <https://www.suse.com/>
Installed Size : 2.2 MiB
Installed      : Yes
Status         : up-to-date
Source package : nginx-1.19.8-3.6.1.src
Summary        : A HTTP server and IMAP/POP3 proxy server
Description    :
    nginx [engine x] is a HTTP server and IMAP/POP3 proxy server written by Igor Sysoev.
    It has been running on many heavily loaded Russian sites for more than two years.

Nainstalovaná služba Nginx se ve výchozím nastavení nespouští. Pro spuštění služby použijte tento příkaz:

sudo systemctl start nginx

Pomocí tohoto příkazu ověřte, že je služba spuštěna:

~> 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)
     Active: active (running) since Mon 2021-12-20 18:56:15 UTC; 36s ago
    Process: 31740 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
   Main PID: 31741 (nginx)
      Tasks: 2 (limit: 4587)
     CGroup: /system.slice/nginx.service
             ├─31741 nginx: master process /usr/sbin/nginx -g daemon off;
             └─31742 nginx: worker process

Dec 20 18:56:15 ip-10-2-40-44 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 20 18:56:15 ip-10-2-40-44 nginx[31740]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 20 18:56:15 ip-10-2-40-44 nginx[31740]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 20 18:56:15 ip-10-2-40-44 systemd[1]: Started The nginx HTTP and reverse proxy server.

Chcete-li službu povolit při spouštění, použijte tento příkaz:

sudo systemctl enable nginx

4. Instalace PHP FPM v OpenSUSE Leap 15.3

PHP-FPM (zkratka pro FastCGI Process Manager) je velmi oblíbená alternativní implementace FastCGI PHP (Hypertext Processor). PHP-FPM je nejoblíbenější alternativní implementací PHP FastCGI. Má další funkce, které jsou opravdu užitečné pro weby s vysokou návštěvností. Při použití Nginx s PHP-FPM se zlepší výkon na úrovni spotřeby paměti.

Při použití PHP-FPM běží PHP jako samostatná služba. Při použití této verze PHP jako jazykového tlumočníka jsou požadavky zpracovávány přes TCP/IP soket; takže webový server Nginx zpracovává pouze požadavky HTTP a PHP-FPM interpretuje kód PHP. Skutečnost, že máme dvě samostatné služby, je klíčem ke zvýšení efektivity.

Nainstalujte php-fpm pomocí tohoto příkazu:

sudo zypper install -y php-fpm

Zkopírujte výchozí konfigurační soubory

sudo cp /etc/php7/fpm/php-fpm.conf.default /etc/php7/fpm/php-fpm.conf
sudo cp /etc/php7/fpm/php-fpm.d/www.conf.default /etc/php7/fpm/php-fpm.d/www.conf

Služba se ve výchozím nastavení nespustí. Spusťte php-fpm pomocí tohoto příkazu:

sudo systemctl start php-fpm

Zkontrolujte jeho stav pomocí tohoto příkazu:

~> 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 Mon 2021-12-20 08:56:16 UTC; 21s ago
   Main PID: 24608 (php-fpm)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 4587)
     CGroup: /system.slice/php-fpm.service
             ├─24608 php-fpm: master process (/etc/php7/fpm/php-fpm.conf)
             ├─24609 php-fpm: pool www
             └─24610 php-fpm: pool www

Dec 20 08:56:16 ip-10-2-40-44 systemd[1]: Starting The PHP FastCGI Process Manager...
Dec 20 08:56:16 ip-10-2-40-44 systemd[1]: Started The PHP FastCGI Process Manager.

Chcete-li povolit php-fpm při spouštění, použijte tento příkaz:

sudo systemctl enable php-fpm

5. Vytvoření jednoduchého webu a konfigurace virtuálního hostitele

Nginx vám umožňuje obsluhovat více webů pomocí virtuálních hostitelů. Koncept virtuálních hostitelů umožňuje více než jeden web na jednom systému nebo webovém serveru. Servery se rozlišují podle názvu hostitele. Návštěvníci webu jsou směrováni podle názvu hostitele nebo adresy IP na správný virtuální hostitel. Virtuální hosting umožňuje společnostem sdílejícím jeden server, z nichž každý má své vlastní názvy domén.

V tomto příkladu použijeme doménu site1.citizix.com pro virtuálního hostitele, ale můžeme volně používat doménu dle vašeho výběru. Upozorňujeme, že DNS pro doménu, která má být použita, by již měla být nakonfigurována tak, aby ukazovala na IP adresu serveru. Potvrďte to pomocí:

dig -t A site1.citizix.com

Vytvoření adresáře a přidání ukázkového obsahu

Výchozí stránka nginx je nakonfigurována jako výchozí virtuální hostitel poskytující obsah z /var/www/html . Doporučeným postupem je vytvořit adresář vašeho webu v /var/www adresáře, protože je nejlepším postupem obsluhovat odtud.

Vytvořte adresář pro naše stránky pomocí následujícího příkazu:

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

Pojďme vytvořit jednoduchý index.php stránku, která má sloužit z našeho webu. Aby to fungovalo, budete potřebovat nainstalovaný vim, pokud nepoužijete tento příkaz:

sudo zypper install -y vim

Upravte soubor:

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

Přidejte obsah do souboru:

<?php phpinfo(); ?>

Vytvoření virtuálního hostitele (bloky serveru)

Bloky serveru Nginx lze použít k zapouzdření podrobností o konfiguraci a hostování více než jedné domény na jednom serveru. Chystáme se vytvořit virtuálního hostitele pro naše stránky (site1.citizix.com).

Konfigurace virtuálních hostitelů Nginx jsou uloženy v adresáři /etc/nginx/conf.d/ . Pojďme vytvořit konfiguraci pro náš web:

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

Přidejte následující obsah

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

Restartujme službu nginx a php-fpm, aby se konfigurace uplatnila

sudo systemctl restart php-fpm
sudo systemctl restart nginx

6. Testování konfigurace

Chcete-li otestovat konfiguraci, otevřete prohlížeč a načtěte doménu, kterou jste nastavili. V mém případě je to http://site1.citizix.com. Měli byste vidět informační stránku php.

Pokud jste ještě nenakonfigurovali nastavení DNS nebo jednoduše nechcete, aby byl web ještě spuštěn, můžete upravit soubor hostitelů svého počítače. Chcete-li to provést, použijte následující příkaz v CLI místního počítače

sudo vim /etc/hosts

Poté přidejte IP adresu vašeho skutečného serveru následovanou názvem domény, kterou konfigurujete, například:

# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com

Nyní byste měli být schopni uložit soubor a přistupovat k němu z webového prohlížeče.

Závěr

Virtuální hostitelé Nginx nebo server bloky jsou skvělým způsobem, jak přidat další webové stránky na stejný původní server. Počet konfiguračních možností pro daný web je téměř nekonečný, když začnete upravovat konfigurační soubor virtuálního hostitele tak, aby vyhovoval vašim specifickým potřebám vašeho webu.

V této příručce jsme se naučili, jak nastavit virtuálního hostitele pro poskytování obsahu php v OpenSUSE Leap 15.3.


OpenSuse
  1. Jak nainstalovat PostgreSQL a phpPgAdmin na OpenSUSE Leap 42.1

  2. Jak nainstalovat Seafile s Nginx na openSUSE Leap 42.1

  3. Jak nainstalovat Nginx s PHP-FPM a MySQL na openSUSE 12.1

  1. Jak nainstalovat a používat Podman v OpenSUSE Leap 15.3

  2. Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Debian 11

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

  1. Jak nainstalovat a nastavit PHP a Apache (zásobník LAMP) na OpenSUSE Leap 15.3

  2. Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Rocky Linux/Alma Linux 8

  3. Jak nainstalovat a nastavit Nginx jako proxy OpenSUSE Leap 15.3