GNU/Linux >> Znalost Linux >  >> OpenSuse

Jak nainstalovat Nginx, PHP a MySQL (LEMP Stack) na OpenSUSE Leap 42.1

LEMP nebo Linux, Engine-x, MySQL a PHP je sbírka softwaru nainstalovaného v operačním systému Linux, který umožňuje zprovoznit a spustit webové aplikace založené na PHP na rychlém webovém serveru Nginx. Zásobník LEMP poskytuje rychlý a spolehlivý základ pro hostování webových aplikací. LEMP je kolekce softwaru s otevřeným zdrojovým kódem, který má kompletní sadu dokumentace, takže se můžete snadno dozvědět více o různých aplikacích a způsobu, jakým do sebe zapadají.

V tomto tutoriálu vám ukážu, jak nainstalovat Nginx, MariaDB a PHP-FPM na openSUSE leap 42.1. Poté nakonfiguruji firewall OpenSUSE pomocí SuSEfirewall2, aby umožnil přístup k webovému serveru Nginx a ukážu vám, jak můžete přidat novou konfiguraci virtuálního hostitele na webový server Nginx.

Nakonec nainstalujeme phpMyAdmin jako snadno použitelný nástroj pro správu databáze a zabezpečíme jej změnou webového adresáře a povolením HTTP autentizace pro adresář phpMyAdmin.

Předpoklad

  • OpenSUSE Leap 42.1.
  • Oprávnění uživatele root.
  • Porozumění příkazu Zypper.

Krok 1 – Instalace a konfigurace SuSEfirewall2

SuSEfirewall2 je skript, který generuje pravidla iptables na základě konfiguračního souboru "/etc/sysconfig/SuSEfirewall2". Nainstalujeme a nakonfigurujeme jej, abychom zabránili síťovým útokům na port serveru.

Nainstalujte SuSEfirewall2 pomocí Zypper:

zypper v SuSEfirewall2

Po dokončení instalace musíme otevřít některé porty pro webové aplikace a SSH. Otevřeme port 22 pro službu ssh a port 80 a 443 pro http a https. Přejděte do adresáře "/etc/sysconfig/" a upravte soubor "SuSEfirewall2":

cd /etc/sysconfig/
vim SuSEfirewall2

Do řádku 253 přidejte čísla portů služeb oddělená mezerou:

FW_SERVICES_EXT_TCP="22 80 443"

Uložte soubor a ukončete.

Restartujte SuSEfirewall2 a službu SSH a poté otestujte konfiguraci portu připojením telnetu k serveru.

Restartujte službu SuSEfirewall2 a SSH:

/sbin/rcSuSEfirewall2 restart
systemctl restart sshd

Testování ssh spojení s telnetem na portu 22:

telnet 192.168.1.101 22

Krok 2 – Instalace a konfigurace Nginx

Nginx nebo engine x je vysoce výkonný HTTP a proxy server s nízkou spotřebou paměti. Používají ho velké weby jako Netflix, Pinterest, CloudFlare, Github atd. Nginx má snadno naučitelnou konfigurační syntaxi a může fungovat také jako vyvažovač zatížení s kontrolami stavu a reverzní proxy s funkcemi ukládání do mezipaměti.

V tomto kroku nainstalujeme nginx a přidáme jej, aby se spustil při spouštění. Nainstalujte jej pomocí příkazu "zypper in":

zypper v nginx

Spusťte nginx a povolte jeho spuštění při spouštění:

systemctl spustit nginx
systemctl povolit nginx

Nginx je nyní spuštěn, ale pokud se k němu pokusíte přistupovat prostřednictvím webového prohlížeče, dostanete zakázanou chybu 403. K této chybě dochází, protože v kořenové složce webu není žádný standardní indexový dokument. Chcete-li tento problém vyřešit, vytvořte nový index html v kořenovém webovém adresáři "/srv/www/htdocs". Přejděte do adresáře a vytvořte soubor index.html:

cd /srv/www/htdocs/
echo "

Toto je Nginx OpenSUSE Leap 42.1

"> index.html

Otevřete webový prohlížeč a zadejte IP svého serveru a zobrazí se stránka indexu:

http://192.168.1.101/

Krok 3 – Instalace a konfigurace MariaDB

MariaDB je open source RDBMS (Relational Database management System) rozvětvený z MySQL pod licencí GNU GPL. V tomto tutoriálu nainstalujeme MariaDB a nakonfigurujeme heslo uživatele root pro prostředí MariaDB.

Nainstalujte MariaDB pomocí příkazu zypper:

zypper v mariadb mariadb-client

Spusťte MariaDB/MySQL a přidejte ji ke spouštění pomocí příkazu systemctl níže:

systemctl spustit mysql
systemctl povolit mysql

Dále nakonfigurujte heslo správce pro MariaDBb/MySQL pomocí příkazu mysqladmin. Další možností, kterou můžete pro tento účel použít, je „mysql_secure_installation“. V tomto kroku použiji mysqladmin:

/usr/bin/mysqladmin -u root heslo 'aqwe123'

Poznámka:

"aqwe123" je nové heslo pro MariaDB/MySQL.

Poté se přihlaste do prostředí mysql pomocí uživatelského root a hesla aqwe123:

mysql -u root -p
ZADEJTE HESLO 'aqwe123'

Nyní je MariaDB/MySQL nainstalována a nakonfigurována s naším novým heslem.

Krok 4 – Instalace a konfigurace PHP-FPM

PHP-FPM nebo FastCGI Process Manager je alternativou ke staršímu PHP FastCGI s dalšími funkcemi a vylepšeními rychlosti. PHP-FPM se dobře hodí pro malé i velké weby založené na programovacím jazyce PHP.

V tomto kroku nainstalujeme php5-fpm s některými dalšími rozšířeními požadovanými phpMyAdminem. Nainstalujte php5-fom a rozšíření pomocí zypper:

zypper v php5 php5-mysql php5-fpm php5-gd php5-mbstring

Po dokončení instalace přejděte do adresáře php5-fpm a zkopírujte konfigurační soubor:

cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf

Upravte konfiguraci pomocí příkazu vim:

vim php-fpm.conf

Odkomentujte řádek 32, abyste povolili protokol php-fpm, výchozí předpona je /var a pokud máte nějaký problém s php5-fpm, můžete zkontrolovat soubor protokolu "/var/log/php-fpm.log".

error_log =log/php-fpm.log

V řádku 148 nakonfigurujeme vlastníka procesu nginx na uživatele Nginx. Změňte uživatele a skupinu procesu na nginx:

user =nginx
skupina =nginx

Řádek 159:nakonfigurujte php-fpm tak, aby běžel pod souborem soketu, nikoli pod portem. Změňte tento řádek takto:

listen =/var/run/php-fpm.sock

A na řádku 170 změňte oprávnění pro unixový soket na uživatele a skupinu nginx s režimem 0660.

listen.owner =nginx
listen.group =nginx
listen.mode =0660

Uložte soubor a ukončete editor.

Dále přejděte do adresáře PHP cli a upravte soubor php.ini pomocí vim:

cd /etc/php5/cli/
vim php.ini

Z bezpečnostních důvodů změňte hodnotu cgi.fix_pathinfo na nulu. řádek 178:

cgi.fix_pathinfo=0

uložit a ukončit.

Zkopírujte php.ini do adresáře conf.d:

cp php.ini /etc/php5/conf.d/

Konfigurace PHP-FPM je v této fázi hotová, ale ještě musíme nakonfigurovat Nginx. Musíme nastavit Nginx tak, aby fungoval s php-fpm.

Přejděte do konfiguračního adresáře nginx a vytvořte zálohu konfiguračního souboru pomocí příkazu cp:

cd /etc/nginx/
cp nginx.conf nginx.conf.backup

Upravte nginx.conf pomocí vim:

vim nginx.conf

Přidejte index.php na řádek 48:

index index.php index.html index.htm;

Přidejte novou sekci konfigurace php na řádek 68, toto je konfigurace pro zpracování požadavků na soubory .php.

       umístění ~ \.php$ {
                kořenový adresář /srv/www/htdocs;
                try_files $uri =404;
      st :/var/run/php-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }

Uložte soubor a ukončete.

Dále otestujte syntaxi konfiguračního souboru nginx, abyste se ujistili, že neexistují žádné chyby. Poté spusťte démona php-fpm a restartujte Nginx:

nginx -t
systemctl start php-fpm
systemctl restart nginx

Abychom se ujistili, že php-fpm a nginx fungují správně, přidáme nový testovací soubor php. Přejděte do adresáře DocumentRoot a vytvořte soubor phpinfo s názvem info.php:

cd /srv/www/htdocs/
echo ""> info.php

Otevřete webový prohlížeč a zadejte IP adresu serveru:

http://192.168.1.101/info.php

Nginx a php-fpm nyní fungují.

Krok 5 – Konfigurace virtuálního hostitele Nginx

V tomto kroku vám ukážu, jak přidat konfiguraci virtuálního hostitele pro web. Nakonfigurujeme novou doménu „www.example.com“ a adresář webroot v „/srv/www/example/“. Nahraďte prosím example a example.com svým vlastním názvem domény.

GNginx adresář nginx a vytvořte nový adresář pro konfiguraci virtuálního hostitele.

cd /etc/nginx/
mkdir vhosts.d/
cd vhosts.d/

Dále vytvořte nový soubor example.conf s názvem domény "example.com" virtualhost.

vim example.conf

vložte konfiguraci virtuálního hostitele níže:

server {
    server_name example.com;
    return 301 $scheme://www.example.com$request_uri;
}

server {
    poslouchat 80;

    root /srv/www/example;
    index index.php index.html index.htm;

    umístění / {
        try_files $uri $uri/ =404;
    }

          umístění ~ \.php$ {
                try_files $uri =404;
              fastcgi_params;
                fastcgi_pass unix:/var/run/php-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi / > 


Uložte soubor a ukončete.

Nyní vytvořte adresář pro web "example.com" v adresáři /srv/www/ a vytvořte nový indexový soubor.

mkdir -p /srv/www/example/
cd /srv/www/example/
echo "

Toto je web www.example.com.

"> index .html
echo ""> info.php

Nyní otevřete webový prohlížeč a navštivte doménu:

example.com

Budete přesměrováni na doménu www a nyní získáte přístup k souboru php:

http://www.example.com/info.php

Krok 6 – Instalace a konfigurace phpMyAdmin

PhpMyAdmin je aplikace založená na PHP pro správu databází MySQL nebo MariaDB z webového prohlížeče. V tomto kroku nakonfiguruji phpMyAdmin tak, aby běžel pod php-fpm, a poté zajistím PHPMyAdmin omezením přístupu na přihlašovací stránku phpMyAdmin.

Nainstalujte phpMyAdmin pomocí příkazu zypper:

zypper v phpMyAdmin

Příkaz nainstaluje všechny balíčky potřebné pro phpMyAdmin, včetně apache2-utils, který je vyžadován pro vytvoření souboru s hesly.

Nyní máme v systému nainstalovaný phpMyAdmin. Dále vytvoříme nový soubor htpasswd pomocí příkazu htpasswd.

vytvořte soubor s hesly htpasswd:

htpasswd -c /etc/nginx/htpasswd megumi
ZADEJTE HESLO pro uživatele megumi

Dále musíme nakonfigurovat Nginx tak, aby používal základní ověřování HTTP pro adresář phpmyadmin. Omezíme přístup k přihlašovací stránce phpMyAdmin pomocí auth_basic a do phpMyAdmin se mohou přihlásit pouze uživatelé, kteří jsou v souboru "htpasswd".

Přejděte do konfiguračního adresáře Nginx a upravte soubor nginx.conf:

cd /etc/nginx/
vim nginx.conf

Definujte kořenový webový adresář uvnitř sekce serveru přidáním nového řádku pod řádek 40 (název_serveru):

        název_serveru  localhost;
        root /srv/www/htdocs; #newline config

Poté přidejte konfiguraci phpMyAdmin pro nginx na řádek 60:

    umístění ~ ^/phpMyAdmin/.*\.php$ {
        auth_basic "Omezený přístup";
        auth_basic_user_file  /etc/nginx/htpasswd;
          rychlý/c php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include >  fastcgi_params; ><

Uložte soubor a ukončete editor.

Otestujte konfiguraci nginx a restartujte nginx:

nginx -t
systemctl restart nginx

Dále otevřete webový prohlížeč a navštivte phpMyAdmin URL, budete požádáni o uživatelské jméno a heslo pro přihlašovací stránku.

http://192.168.1.101/phpMyAdmin/

Poté se přihlaste svým uživatelským jménem a heslem MySQL.

phpMyAdmin byl úspěšně nainstalován a přihlásit se může pouze uživatel v htpasswd.


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

  2. Jak nainstalovat Mysql Server 8 na OpenSUSE Leap 15.3

  3. Jak nainstalovat LEMP Stack Nginx, MySQL, PHP na Ubuntu 22.04

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

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

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

  1. Jak nainstalovat LEMP Stack (Nginx, MySQL, PHP v7) na CentOS 7

  2. Jak nainstalovat Nginx s PHP a MySQL (LEMP Stack) na CentOS 7

  3. Jak nainstalovat LEMP Stack Nginx, MySQL, PHP na Debian 11