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.phpNyní 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 phpMyAdminPří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 megumiDá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.confDefinujte 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 configPoté 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 nginxDá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.
Jak nainstalovat a nakonfigurovat OpenVPN na OpenSUSE Leap 42.1 Jak nainstalovat PostgreSQL a phpPgAdmin na OpenSUSE Leap 42.1OpenSuse