Linux - instalace a nastavení Nginx, PHP a MySQL (LEMP)

Co nejvíce stručné řešení pro vývojáře a linux administrátory

Na superuser.cz nenaleznete žádný zbytečný obsah, vždy se jde přímo k věci, denně se zde objevují nové problémy a jejich řešení...

Začít používat

Linux - instalace a nastavení Nginx,…

03.10.2019 napsal SYSTEM (update 08.11.2019)

Vyřešeno Linux - how to install and config Nginx, PHP a MySQL (LEMP)
Modelová situace: Máme Linux Ubuntu server a chceme na něm nainstalovat a zproznit webserver LEMP = Linux, Nginx, MySQL a PHP.
Nejlépe hodnocení uživatelé
Hanz

Počet UP: 4857

React: 211

Rusty

Počet UP: 2250

React: 94

OL3G

Počet UP: 1569

React: 59

SYSTEM

Počet UP: 403

React: 23

Strosmajer

Počet UP: 460

React: 22

Oxytocin

Počet UP: 276

React: 15

Hyacint

Počet UP: 17

React: 10

RE: Linux - instalace a nastavení…

09.10.2019 odpověděl SYSTEM

Zkontrolováno

Postup instalace webserveru Nginx, PHP a MySQL na Linux může být následující:

#instalace nginx
apt install nginx

#instalace MySQL serveru MariaDB
apt install mariadb-server
#průvodce nastavením MySQL
mysql_secure_installation

#instalace PHP 7
apt install php-fpm php-mysql

#nginx - založení virtual hostu
vim /etc/nginx/sites-available/superuser.cz

server {
listen 80;
root /var/www/superuser.cz;
index index.php index.html;
server_name superuser.cz;

location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}

location ~ /\.ht {
deny all;
}
}


#povolit virtual host
ln -s /etc/nginx/sites-available/superuser.cz /etc/nginx/sites-enabled/

#smazat default konfig
rm /etc/nginx/sites-enabled/default

#nginx reload
systemctl reload nginx

A to je celé...

---------------------------------------------

Nginx - nastavení phpMyAdmin


#instalace phpMyAdmin
apt install phpmyadmin

#nginx virtualhost phpMyAdmin na portu 81
vim /etc/nginx/sites-available/81_phpmyadmin

server {
listen 81;
root /usr/share/phpmyadmin;
index index.php index.html;

location / {
try_files $uri $uri/ =404;
client_max_body_size 100M;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}

location ~ /\.ht {
deny all;
}
}

#povolit virtual host
ln -s /etc/nginx/sites-available/81_phpmyadmin /etc/nginx/sites-enabled/

#nastavení vyjímky pro port 81 ve firewalld
firewall-cmd --zone=public --permanent --add-port=81/tcp
firewall-cmd --reload

#reload nginx
systemctl reload nginx

---------------------------------------------
DODATEK:


#MariaDB doinstalace pluginu na kontrolu složitosti hesel
apt install mariadb-plugin-cracklib-password-check
mysql -u root
...
INSTALL SONAME 'cracklib_password_check';

#nastavení vyjímky pro port 80 a 443 ve firewallu UFW
ufw allow 80 && ufw allow 443

#test configu
nginx -t

#zahrnout konfiguraci sites-available do nginx.conf (např. na CentOS)
vim /etc/nginx/nginx.conf
- na konec bloku http doplnit
include /etc/nginx/sites-enabled/*.conf;
Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace