Co je vlastně to LEMP? Zkratka LNMP je odvozená od LAMP (Linux/Apache/Mysql/PHP) a v současné době lze považovat za zkratku: Linux + Nginx + MariaDb + PHP .. jenže se to blbě čte. A aby se to četlo lépe, tak moudré hlavy vymyslely akronym: LEMP
(
Linux operating system, s
ENginx web server
MariaDB/
MySQL database a
PHP.
Takže začneme! Co potřebujeme pro instalaci LEMPla:
+ čerstvě nainstalovaný Linux ( v mém případě CentOS7 v minimální konfiguraci)
+ připojení k internetu
1. příprava
na Centos provedeme aktualizaci:
yum update
Poznámka: pokud by něco nešlo, tak můžeme zkusit vypnout SElinux (příkaz: setenforce 0) a ověřit si že to je tímto. A samozřejmě to vyřešit a pak to zase zapnout pomocí: setenforce 1
2. instalace nginx
přidáme nginx yum repozitář a nainstalujeme nginx:
Kód: Vybrat vše
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
spustíme nginx a zajistíme aby se po startu serveru sám spouštěl:
Kód: Vybrat vše
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
nastavíme firewall:
Kód: Vybrat vše
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
Pokud firewalld neběží tak ho spustíme:
Kód: Vybrat vše
sudo systemctl start firewalld
sudo systemctl enable firewalld
Nyní otestujeme, že web server běží zadáním ip adresy serveru do prohlížeče.
Pokud je vše ok, tak uvidíte nápis:
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
For online documentation and support please refer to
nginx.org.
Commercial support is available at
nginx.com.
Thank you for using nginx.
3. Nainstalujeme MariaDB server
Kód: Vybrat vše
sudo yum install mariadb-server mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb
Nyní se spustí doinstalace a donastavení mariaDB serveru. Zvolíte si heslo pro roota a projdete si zbytek instalace. Stačí mačkat enter.
4. Instalace PHP
A protože v základu centosu je stále starý a snad již s ukončeným vývojem php 5.4.x , tak si nainstalujeme aspoň PHP 5.6:
Kód: Vybrat vše
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php56w-fpm php56w-opcache php56w-mysql
Pro PHP7 funguje:
Kód: Vybrat vše
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php70w php70w-opcache php70w-mysql
Doinstalujte doplňky co se můžou hodit (v případě PHP7 změňte text 56 na 70):
Kód: Vybrat vše
yum -y install php56w-gd php56w-ldap php56w-odbc php56w-pear php56w-xml php56w-xmlrpc php56w-mbstring ph56wp-snmp php56w-soap curl curl-devel mhash php56w-mcrypt lynx wget unzip
Ve vašem oblíbeném editoru (mc,vi,vim,nano) si zeditujte soubor /etc/php.ini:
Najděte hodnotu: cgi.fix_pathinf
o odkomentujte ji a zeditujte na:
soubor uložte a otevřete:
Najděte hodnotu "listen" a změňte ji na:
Kód: Vybrat vše
listen = /var/run/php-fpm/php-fpm.sock
Uložte soubor.
Spusťe php-fpm a nastavete aby se spouštěl při startu:
Kód: Vybrat vše
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
5. Nastavte Nginx aby používal php
Zeditujte soubor: /etc/php-fpm.d/
www.conf takto:
Kód: Vybrat vše
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Dále editujte soubor: /etc/nginx/conf.d/default.conf
a uložte do něj tuto konfiguraci (text změňte dle své volby):
Kód: Vybrat vše
server {
listen 80;
server_name jmeno_serveru_nebo_ip;
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
restartněte server.
Vytvořte si testovací php soubor (třeba info.php s <?php info();?> a otestujte, že je vše ok.
6. nastavení serveru pro běh více domén
A protože když už máme server, tak většinou chceme aby nám na něm běželo více domén, tak vytvoříme soubor: /etc/nginx/conf.d/virtual.conf
s obsahem:
Kód: Vybrat vše
server {
listen 80;
server_name www.domena1.cz;
rewrite ^/(.*) http://domena1.cz/$1 permanent;
}
server {
listen 80;
server_name domena1.cz;
access_log /var/www/vhosts/domena1_cz/log/access.log;
error_log /var/www/vhosts/domena1_cz/log/error.log;
location / {
root /var/www/vhosts/domena1_cz/domena1.cz/;
index index.html;
}
}
server {
listen 80;
server_name www.domena2.com;
rewrite ^/(.*) http://domena2.com/$1 permanent;
}
server {
listen 80;
server_name domena2.com;
access_log /var/www/vhosts/domena2_com/log/access.log;
error_log /var/www/vhosts/domena2_com/log/error.log;
location / {
root /var/www/vhosts/domena2_com/domena2.com/;
index index.html;
}
}
Pohled na tuto konfiguraci mluví za vše a proto není potřeba více popisovat[/code]
[/code]
Co je vlastně to LEMP? Zkratka LNMP je odvozená od LAMP (Linux/Apache/Mysql/PHP) a v současné době lze považovat za zkratku: Linux + Nginx + MariaDb + PHP .. jenže se to blbě čte. A aby se to četlo lépe, tak moudré hlavy vymyslely akronym: LEMP
([b]L[/b]inux operating system, s [b]E[/b]Nginx web server [b]M[/b]ariaDB/[b]M[/b]ySQL database a [b]P[/b]HP.
Takže začneme! Co potřebujeme pro instalaci LEMPla:
+ čerstvě nainstalovaný Linux ( v mém případě CentOS7 v minimální konfiguraci)
+ připojení k internetu
[b]1. příprava
[/b]
na Centos provedeme aktualizaci:
yum update
Poznámka: pokud by něco nešlo, tak můžeme zkusit vypnout SElinux (příkaz: setenforce 0) a ověřit si že to je tímto. A samozřejmě to vyřešit a pak to zase zapnout pomocí: setenforce 1
[b]2. instalace nginx[/b]
přidáme nginx yum repozitář a nainstalujeme nginx:
[code]sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm[/code]
[code]sudo yum install nginx[/code]
spustíme nginx a zajistíme aby se po startu serveru sám spouštěl:
[code]sudo systemctl start nginx.service
sudo systemctl enable nginx.service
[/code]
nastavíme firewall:
[code]firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload[/code]
Pokud firewalld neběží tak ho spustíme:
[code]
sudo systemctl start firewalld
sudo systemctl enable firewalld
[/code]
Nyní otestujeme, že web server běží zadáním ip adresy serveru do prohlížeče.
Pokud je vše ok, tak uvidíte nápis:
[hr]
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
For online documentation and support please refer to [url=http://nginx.org/]nginx.org[/url].
Commercial support is available at [url=http://nginx.com/]nginx.com[/url].
[i]Thank you for using nginx.
[/i]
[hr]
[b]3. Nainstalujeme MariaDB server[/b]
[code]sudo yum install mariadb-server mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb
[/code]
Nyní se spustí doinstalace a donastavení mariaDB serveru. Zvolíte si heslo pro roota a projdete si zbytek instalace. Stačí mačkat enter.
[code]sudo mysql_secure_installation
[/code]
[b]4. Instalace PHP[/b]
A protože v základu centosu je stále starý a snad již s ukončeným vývojem php 5.4.x , tak si nainstalujeme aspoň PHP 5.6:
[code]
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php56w-fpm php56w-opcache php56w-mysql
[/code]
Pro PHP7 funguje:
[code]
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php70w php70w-opcache php70w-mysql
[/code]
Doinstalujte doplňky co se můžou hodit (v případě PHP7 změňte text 56 na 70):
[code]
yum -y install php56w-gd php56w-ldap php56w-odbc php56w-pear php56w-xml php56w-xmlrpc php56w-mbstring ph56wp-snmp php56w-soap curl curl-devel mhash php56w-mcrypt lynx wget unzip
[/code]
Ve vašem oblíbeném editoru (mc,vi,vim,nano) si zeditujte soubor /etc/php.ini:
[code]sudo vi /etc/php.ini[/code]
Najděte hodnotu: cgi.fix_pathinf
o odkomentujte ji a zeditujte na:
[code]cgi.fix_pathinfo = 0
[/code]
soubor uložte a otevřete:
[code]sudo vi /etc/php-fpm.d/www.conf[/code]
Najděte hodnotu "listen" a změňte ji na:
[code]listen = /var/run/php-fpm/php-fpm.sock[/code]
Uložte soubor.
Spusťe php-fpm a nastavete aby se spouštěl při startu:
[code]
sudo systemctl start php-fpm
sudo systemctl enable php-fpm[/code]
5. Nastavte Nginx aby používal php
Zeditujte soubor: /etc/php-fpm.d/www.conf takto:
[code]
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
[/code]
Dále editujte soubor: /etc/nginx/conf.d/default.conf
a uložte do něj tuto konfiguraci (text změňte dle své volby):
[code]server {
listen 80;
server_name jmeno_serveru_nebo_ip;
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
[/code]
restartněte server.
[code]
systemctl restart nginx
[/code]
Vytvořte si testovací php soubor (třeba info.php s <?php info();?> a otestujte, že je vše ok.
[b]6. nastavení serveru pro běh více domén[/b]
A protože když už máme server, tak většinou chceme aby nám na něm běželo více domén, tak vytvoříme soubor: /etc/nginx/conf.d/virtual.conf
s obsahem:
[code]
server {
listen 80;
server_name www.domena1.cz;
rewrite ^/(.*) http://domena1.cz/$1 permanent;
}
server {
listen 80;
server_name domena1.cz;
access_log /var/www/vhosts/domena1_cz/log/access.log;
error_log /var/www/vhosts/domena1_cz/log/error.log;
location / {
root /var/www/vhosts/domena1_cz/domena1.cz/;
index index.html;
}
}
server {
listen 80;
server_name www.domena2.com;
rewrite ^/(.*) http://domena2.com/$1 permanent;
}
server {
listen 80;
server_name domena2.com;
access_log /var/www/vhosts/domena2_com/log/access.log;
error_log /var/www/vhosts/domena2_com/log/error.log;
location / {
root /var/www/vhosts/domena2_com/domena2.com/;
index index.html;
}
}
[/code]
Pohled na tuto konfiguraci mluví za vše a proto není potřeba více popisovat[/code]
[/code]