Instalace nginx + mariadb + php 7.0 na centos server ( LEMP )

Uživatelský avatar
Supík
Administrátor
Příspěvky: 231
Registrován: pát 10. črc 2015 12:47:18

Instalace nginx + mariadb + php 7.0 na centos server ( LEMP )

Příspěvek od Supík » čtv 23. čer 2016 9:55:07

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

Kód: Vybrat vše

sudo yum install nginx
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

Pokud není přítomen tak ho nainstalujeme:

yum install 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.

Kód: Vybrat vše

sudo mysql_secure_installation
 
4. Instalace PHP 7.0
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 PHP 7.0:

Kód: Vybrat vše

cd ~
curl 'https://setup.ius.io/' -o setup-ius.sh
sudo bash setup-ius.sh

sudo yum remove php-fpm php-cli php-common
sudo yum install php70u-fpm-nginx php70u-cli php70u-mysqlnd

Doinstalujte doplňky co se můžou hodit:

Kód: Vybrat vše

yum -y install php70w-gd php70w-ldap php70w-odbc php70w-pear php70w-xml php70w-xmlrpc php70w-mbstring php70w-soap curl curl-devel mhash php70w-mcrypt lynx wget unzip php70u-xml php70u-mbstring php70u-json

 

Ve vašem oblíbeném editoru (mc,vi,vim,nano) si zeditujte soubor /etc/php.ini:

Kód: Vybrat vše

sudo vi /etc/php.ini
Najděte hodnotu: cgi.fix_pathinf
o odkomentujte ji a zeditujte na:

Kód: Vybrat vše

cgi.fix_pathinfo = 0
soubor uložte a otevřete:

Kód: Vybrat vše

sudo vi /etc/php-fpm.d/www.conf
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 služby:

Kód: Vybrat vše

systemctl restart php-fpm nginx mariadb
 
Pokud se objeví nějaká chyba, tak je možné že vás blokuje selinux, takže si to ověřte to je on pomocí:

Kód: Vybrat vše

setenforce 0
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]



zjistěné chyby co ještě zdokumentuju:
chyba: session_start(): open(/var/lib/php/session/sess ...failed: No such file or directory (2)


abc

Re: Instalace nginx + mariadb + php 7.0 na centos server ( LEMP )

Příspěvek od abc » úte 05. úno 2019 10:16:38

Tento návod je absolutně zbytečný. Jednotlivé příkazy jsou namíchané v jednom řádku, bez jakéhokoliv oddělení. Po rozluštění příkazů má snaha nakonec skončila u zprovoznění PHP, kde příkaz pro změnu listen nefunguje!

Uživatelský avatar
Supík
Administrátor
Příspěvky: 231
Registrován: pát 10. črc 2015 12:47:18

Re: Instalace nginx + mariadb + php 7.0 na centos server ( LEMP )

Příspěvek od Supík » čtv 21. úno 2019 0:26:44

Se moc omlouvám. ono se po nějakém upgradu fora zrušilo řádkování v těch oknech s kodem. Zkusím to vyřešit ..

Uživatelský avatar
Supík
Administrátor
Příspěvky: 231
Registrován: pát 10. črc 2015 12:47:18

Re: Instalace nginx + mariadb + php 7.0 na centos server ( LEMP )

Příspěvek od Supík » čtv 21. úno 2019 1:24:37

tak snad opraveno :)

Odpovědět

Sociální sítě

       

Zpět na “Nginx”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů