GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat Nginx s PHP + MySQL (LEMP) na Debian 9

Tento tutoriál vám ukáže instalaci webového serveru Nginx na Debian 9 (Stretch). Nginx (vyslovováno jako „engine x“) je bezplatný, open-source, vysoce výkonný HTTP server. Nginx je známý svou stabilitou, bohatou sadou funkcí, jednoduchou konfigurací a nízkou spotřebou zdrojů. Tento tutoriál ukazuje instalaci Nginx s podporou PHP (prostřednictvím PHP-FPM) a MySQL a MariaDB. Toto nastavení je často označováno jako LEMP =L inux + nginx (vyslovováno „e ngine x") + M ySQL + P HP).

Předběžná poznámka

V tomto tutoriálu používám název hostitele server1.example.com s IP adresou 192.168.1.100. Tato nastavení se pro vás mohou lišit, takže je musíte v případě potřeby nahradit. Měli byste mít server Debian 9, jako základní systém pro tento tutoriál použiji minimální server Debian.

Aktualizujte systém Debian

Než začneme s nastavením Nginx, doporučujeme aktualizovat seznamy balíčků a nainstalovat všechny čekající aktualizace. Spuštěním následujících příkazů nainstalujte všechny čekající aktualizace.

apt-get update
apt-get upgrade -y

K úpravě konfiguračních souborů později použiji nano editor. Nano lze nainstalovat pomocí tohoto příkazu:

apt-get -y install nano

Instalovat Nginx

Nginx je k dispozici jako balíček pro Debian 9, který můžeme nainstalovat pomocí tohoto příkazu:

apt-get -y install nginx

Nyní spusťte webový server Nginx:

systemctl start nginx.service

Zadejte do prohlížeče IP adresu nebo název hostitele svého webového serveru (např. http://192.168.1.100) a zobrazí se vám následující stránka:

Výchozí kořen dokumentu nginx na Debian Linuxu je /var/www/html.

Instalovat MySQL nebo MariaDB

V tomto kroku vám ukážu, jak nainstalovat MySQL nebo MariaDB. Můžete si vybrat, který databázový systém preferujete. Jen se ujistěte, že nainstalujete pouze jeden databázový stroj a ne MySQL a MariaDB společně.

Instalovat MySQL

Balíčky MySQL pro Debian 9 lze získat přímo od společnosti Oracle. Oracle poskytuje balíček úložiště MySQL, který integruje úložiště Oracle MySQL do Debianu, takže můžeme nainstalovat a aktualizovat MySQL pomocí apt. Získejte balíček úložiště MySQL apt zde pro případ, že stažení wget níže selže kvůli změnám v adrese URL ke stažení.

cd /tmp
wget https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb
dpkg -i mysql-apt-config_0.8.9-1_all.deb

Zvolte konfiguraci 'OK' v seznamu, poté zaostřete na tlačítko OK v zápatí a stiskněte enter. Tím se vybere aktuální stabilní verze, což je MySQL 5.7.

Nyní aktualizujeme seznam balíčků a nainstalujeme balíček serveru MySQL a klienta.

apt-get update
apt-get -y install mysql-community-client mysql-community-server

Instalační program MySQL vás požádá o nastavení hesla pro uživatele root MySQL. Vyberte si dlouhé a bezpečné heslo, protože toto heslo umožňuje plný administrativní přístup k databázi MySQL.

Znovu zadejte požadované heslo.

Instalovat MariaDB

Abychom mohli nainstalovat MariaDB, spustíme:

apt-get -y install mariadb-server mariadb-client

Na rozdíl od instalačního programu MySQL instalační program MariaDB během instalace nenastaví heslo uživatele root. Chcete-li zabezpečit instalaci MariaDB, odeberte anonymního uživatele a deaktivujte testovací databázi, spusťte tento příkaz:

mysql_secure_installation

Odpovězte na otázky následovně:

Change the root password? [Y/n] <-- y
New password: <-- Enter a new MySQL root password
Re-enter new password: <-- Repeat the MySQL root password
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Remove test database and access to it? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

Instalace PHP

Můžeme zajistit, aby PHP fungovalo v nginx pomocí PHP-FPM (PHP FastCGI Process Manager). Toto je alternativní implementace PHP FastCGI s některými dalšími funkcemi užitečnými pro weby jakékoli velikosti, zejména pro rušnější weby. Nainstalujte PHP 7 následovně:

apt-get -y install php7.0-fpm

PHP-FPM je proces démona (se souborem systemd unit php7.0-fpm.service), který spouští server FastCGI na soketu /var/run/php/php7.0-fpm.sock.

Konfigurace Nginx

Konfigurace Nginx je v /etc/nginx/nginx.conf, který nyní otevíráme:

nano /etc/nginx/nginx.conf

Konfigurace je snadno pochopitelná (více o ní můžete získat zde: https://www.nginx.com/resources/wiki/start/topics/examples/full/ a zde:https://www.nginx.com/ zdroje/wiki/)

Nejprve nastavte keepalive_timeout na rozumnou hodnotu, například 2 sekundy:

[...]
keepalive_timeout 2;
[...]

Virtuální hostitelé jsou definováni v kontejnerech serveru {}. Výchozí vhost je definován v souboru /etc/nginx/sites-available/default – upravme jej následovně:

nano /etc/nginx/sites-available/default
[...]
server {
listen 80 default_server;
listen [::]:80 default_server;

# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;

root /var/www/html;

# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

server_name _;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;

# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
} [...]

název_serveru _; dělá z tohoto výchozího catchall vhost (samozřejmě zde můžete také zadat název hostitele jako www.example.com).

Do řádku indexu jsem přidal index.php. root /var/www/html; znamená, že kořen dokumentu je adresář /var/www/html.

Důležitou součástí pro PHP je umístění ~ \.php$ {} stanza. Chcete-li jej povolit, odkomentujte jej, jak je uvedeno výše. Obsahuje dva řádky fastcgi_pass, odkomentujte pouze ten pro soubor php-7.0-fpm.sock.

Nyní uložte soubor a znovu načtěte Nginx:

systemctl reload nginx.service

Dále otevřete /etc/php/7.0/fpm/php.ini...

nano /etc/php/7.0/fpm/php.ini

... a nastavte cgi.fix_pathinfo=0:

[...]
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=0
[...]

... pak možná budete chtít zvýšit limit POST a limit nahrávání souborů:

post_max_size = 25M
upload_max_filesize = 20M

Pokud plánujete nahrávat velké soubory pomocí PHP, měli byste zvýšit hodnoty dokonce na 500 milionů nebo více. M zde znamená megabajty.

Nakonec možná budete chtít nastavit časové pásmo na místní časové pásmo. V mém případě je časové pásmo:

date.timezone = 'Europe/Berlin'

Seznam podporovaných časových pásem naleznete zde.

Chcete-li použít změny, znovu načtěte PHP-FPM:

systemctl reload php7.0-fpm.service

Nyní vytvořte následující soubor PHP v kořenovém adresáři dokumentu /var/www/html/:

nano /var/www/html/info.php
<?php
phpinfo();

Nyní tento soubor nazýváme v prohlížeči (např. http://192.168.1.100/info.php):

Jak vidíte, PHP 7 funguje a funguje přes FPM/FastCGI, jak je znázorněno na řádku Server API. Pokud se posunete dále dolů, uvidíte všechny moduly, které jsou již v PHP povoleny. MySQL zde není uveden, což znamená, že v PHP zatím nemáme podporu MariaDB / MySQL.

Získání podpory MySQL / MariaDB v PHP

Abychom získali podporu MySQL v PHP, můžeme nainstalovat balíček php7.0-mysqlnd. Je dobré nainstalovat některé další moduly PHP, stejně jako je můžete potřebovat pro své aplikace. Dostupné moduly PHP můžete vyhledat takto:

apt-cache search php7.0

Vyberte ty, které potřebujete, a nainstalujte je takto:

apt-get -y install php7.0-mysqlnd php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl

Nyní znovu načtěte PHP-FPM:

systemctl reload php7.0-fpm.service

Nyní znovu načtěte http://192.168.1.100/info.php ve svém prohlížeči a znovu přejděte dolů do sekce moduly. Nyní byste tam měli najít spoustu nových modulů, včetně modulu MySQLi a MySQLnd:

Nastavení PHP-FPM pomocí připojení TCP (volitelné)

Ve výchozím nastavení PHP-FPM naslouchá na soketu /var/run/php/php7.0-fpm.sock a to je doporučený a nejrychlejší způsob připojení PHP k Nginx. Mohou však existovat nastavení, kde chcete nechat Nginx připojit se k PHP přes síť. Je možné, aby PHP-FPM používal TCP spojení. Chcete-li to provést, otevřete /etc/php/7.0/fpm/pool.d/www.conf...

nano /etc/php/7.0/fpm/pool.d/www.conf

... a řádek pro poslech nastavte následovně:

[...]
;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000
[...]

Díky tomu bude PHP-FPM naslouchat na portu 9000 na IP 127.0.0.1 (localhost). Ujistěte se, že používáte port, který se ve vašem systému nepoužívá.

Poté znovu načtěte PHP-FPM:

systemctl reload php7.0-fpm.service

Dále projděte konfiguraci Nginx a všechny své vhosty a změňte řádek fastcgi_pass unix:/var/run/php7.0-fpm.sock; na fastcgi_pass 127.0.0.1:9000;, např. takhle:

nano /etc/nginx/sites-available/default
[...]
location ~ \.php$ {
include snippets/fastcgi-php.conf;

# With php-fpm (or other unix sockets):
# fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# With php-cgi (or other tcp sockets):
fastcgi_pass 127.0.0.1:9000;
} [...]

Nakonec znovu načtěte Nginx:

systemctl reload nginx.service

Povolení SSL a HTTP/2 v Nginx

Většina webových stránek dnes používá SSL (TLS) k zajištění bezpečného přístupu. V této kapitole vám ukážu, jak vytvořit certifikát SSL a jak aktivovat SSL v Nginx. Můžete buď použít self-signed SSL certifikát, nebo požádat o oficiálně podepsaný SSL certifikát od Let's encrypt. Let#s encrypt SSL certifikáty jsou k dispozici zdarma, ale musíte mít platný název domény, který již odkazuje na váš server v DNS. Pokud ještě nemáte název domény nebo když je váš server v místní síti a není přístupný zvenčí, použijte certifikát SSL s vlastním podpisem. Postupujte podle kroků pro certifikát SSL s vlastním podpisem nebo podle níže uvedeného certifikátu Let's encrypt, ale ne obojí.

Vytvoření certifikátu SSL s vlastním podpisem

Vytvořte soubor klíče SSL pomocí příkazu OpenSSL:

openssl genrsa -out /etc/ssl/private/nginx.key 4096

Potom vytvořte certifikát SSL s vlastním podpisem:

openssl req -new -x509 -key /etc/ssl/private/nginx.key -out /etc/ssl/certs/nginx.pem -days 3650

Příkaz se zeptá na podrobnosti, jako je země, stát, město, název společnosti a název domény.

Aktivujte certifikát SSL s vlastním podpisem v Nginx. Chcete-li to provést, znovu upravte soubor nginx.conf:

nano /etc/nginx/sites-available/default

a serverová část bude vypadat takto:

server {
listen 80 default_server;
listen [::]:80 default_server;

# SSL configuration

listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;

ssl on;
ssl_certificate_key /etc/ssl/private/nginx.key;
ssl_certificate /etc/ssl/certs/nginx.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;

# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;

root /var/www/html;

# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

server_name _;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;

# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}

Chcete-li použít změny, restartujte Nginx.

systemctl restart nginx.service

Nyní otevřete https URL vašeho serveru v prohlížeči, např. https://192.169.1.100/. Zobrazí se bezpečnostní varování, které budete muset přijmout, abyste mohli pokračovat. Poté uvidíte úvodní stránku Nginx, varovná ikona v adresním řádku prohlížeče označuje, že používáme certifikát SSL s vlastním podpisem.

Použijte bezplatný certifikát Let's Encrypt SSL

V této kapitole popíši, jak zabezpečit server Nginx pomocí bezplatného certifikátu Let's encrypt SSL. Předpokladem je, že vlastníte název domény, který ukazuje na IP serveru, na který v tuto chvíli instalujete Nginx.

Nainstalujte Certbot, klienta Let's encrypt, který se používá k získání bezplatného certifikátu SSL.

apt-get -y install certbot python-certbot-nginx

Upravte konfigurační soubor webu /etc/nginx/sites-available/default a nastavte název domény (názvů) v řádku server_name:

nano /etc/nginx/sites-available/default

Řádek by měl po úpravě vypadat takto:

server_name example.com;

Nahraďte example.com svým vlastním názvem domény. Pokud máte více názvů domén nebo subdomén, přidejte je oddělené mezerou.

server_name example.com www.example.com otherdomain.tld;

Nyní požadujeme certifikát SSL od let's encrypt pomocí pluginu nginx od Certbot.

certbot --nginx -d example.com

Více domén lze přidat opakováním volby -d. Příklad:

certbot certonly --webroot -d example.com -d www.example.com

Certbot vás požádá o e-mailovou adresu, na kterou budou zasílána oznámení o obnovení. Zde zadejte platnou e-mailovou adresu:

Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected]

Přijměte licenční podmínky zadáním „A“.

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

Zde je další dialog, který požaduje certifikát SSL. Přidal jsem své odpovědi červeně.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for example.com
http-01 challenge for www.example.com
Select the webroot for example.com:
-------------------------------------------------------------------------------
1: Enter a new webroot
-------------------------------------------------------------------------------
Press 1 [enter] to confirm the selection (press 'c' to cancel): 1
Input the webroot for example.com: (Enter 'c' to cancel):/var/www/html
Select the webroot for www.example.com:
-------------------------------------------------------------------------------
1: Enter a new webroot
2: /var/www/html
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
expire on 2018-04-23. To obtain a new or tweaked version of this
certificate in the future, simply run certbot again. To
non-interactively renew *all* of your certificates, run "certbot
renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

Existuje alternativní metoda pomocí možnosti '--nginx' v Certbotu, ale zdá se, že tato metoda momentálně nefunguje kvůli problému TLS-SNI-01 v Let's encrypt. Metoda webroot, jak je ukázáno výše, však funguje dobře.

Nově vygenerovaný certifikát SSL je v podsložce složky /etc/letsencrypt/live/. Přesná cesta je uvedena ve výstupu Certbot.

Nyní přidáme tento certifikát SSL do našeho souboru webu Nginx. Upravte výchozí soubor Nginx:

nano /etc/nginx/sites-available/default

a změňte sekci SSL takto:

[...]
server {
listen 80 default_server;
listen [::]:80 default_server;

# SSL configuration

listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;

ssl on;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;

# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;

root /var/www/html;

# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

server_name _;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;

# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
} [...]

Nahraďte „example.com“ v cestě certifikátu SSL svým vlastním názvem domény. Chcete-li použít změny, restartujte Nginx.

systemctl restart nginx.service

Obrázek virtuálního počítače

Tento tutoriál je k dispozici jako virtuální stroj připravený k použití ve formátu OVA / OVF pro předplatitele Howtoforge. Formát VM je kompatibilní s VMWare a Virtualboxem a pravděpodobně s některými dalšími nástroji, které dokážou tento formát importovat. Odkaz ke stažení najdete v pravém menu nahoře. Kliknutím na název souboru zahájíte stahování.

Přihlašovací údaje virtuálního počítače jsou:

Přihlášení SSH

Uživatelské jméno:správce
Heslo:howtoforge

Spusťte 'su', abyste se stali uživatelem root, heslo root je také 'howtoforge'.

Obraz virtuálního stroje používá jako databázový server MySQL.

Přihlášení k MySQL

Uživatelské jméno:root
Heslo:howtoforge

Po prvním spuštění změňte hesla.

VM je nakonfigurován pro statickou IP 192.168.1.100, IP lze změnit v souboru /etc/network/interfaces.

  • nginx:https://nginx.net/
  • PHP:http://www.php.net/
  • MySQL: https://www.mysql.com/
  • MariaDB: https://mariadb.org/
  • Debian:https://www.debian.org/

Debian
  1. Jak nainstalovat Phorum s Nginx na Debian 9

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

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

  1. Jak nainstalovat Nginx s PHP a MySQL (LEMP Stack) na Ubuntu 18.04

  2. Jak nainstalovat Magento s Nginx na Debian 10

  3. Jak nainstalovat WonderCMS s Nginx na Debian 11

  1. Jak nainstalovat WonderCMS s Nginx na Debian 9

  2. Jak nainstalovat Fork CMS s NGINX na Debian 9

  3. Jak nainstalovat InvoicePlane s Nginx na Debian 9