LEMP | nginx + php + mysql + phpmyadmin | ubuntu / debian


#1

Witam was użytkownicy https://forum.lvlup.pro ja Krzysztof zaprezentuję wam instalacje nginx + php. Oraz Mysql oraz PHPMyAdmin.


Zapraszam do ocenki i obejrzenie poradnika :wink:


Wymagania

OS: Ubunu 14.04, 16.04, 18.04; Debian 8/9
Ram: Tu nie ma specjalnych wymagań :slight_smile:


UWAGA!! Jeżeli używacie innego konta niż root przed każdą komendą dodajemy sudo :slight_smile:

Rozpisane będzie pod video.

Na potrzeby poradnika reinstalowałem serwer na Ubuntu 16, ale tak samo się instaluje na każdym z wymienionych OS’ów

Tutaj macie video :slight_smile: :

asciicast


Wersja Tekstowa


Krok 1 - Instalacja Pakietów NGINX + PHP + MYSQL + PHPMYADMIN

apt install mysql-server mysql-client nginx-full php php-fpm phpmyadmin

W Debian 9 instaluje się wtedy apache2 razem z php i usuwamy go

apt purge apache2 apache2-*

Podczas instalacji phpmyadmin nie wybieramy zadnego serwera www z wyświetlonych tylko wciskamy OK.

Krok 2 - Konfiguracja mysql i nginx+php-fpm

nano /etc/nginx/sites-available/default

Usówamy wszystko z tego pliku i wklejamy:

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

    root /var/www/html;

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

    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;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

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

}

A aby mieć ssl na np. osobnej domenie wklejamy:

server {
listen 443 ssl http2 spdy;

ssl on;
ssl_certificate /home/certyfikat.pem;
ssl_certificate_key /home/private_key.key;

root /var/www/domena.pl/public_html;

index index.php index.html;

server_name domena.pl;

location / {

	try_files $uri $uri/ =404;
}

location ~ \.php$ {
	include snippets/fastcgi-php.conf;

	fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}

location ~ /\.ht {
	deny all;
}

}

I wpisujemy w konsoli

mkdir /var/www/domena.pl && mkdir /var/ww/domena.pl/public_html/

I PHP z nginx gotowe :slight_smile:

Aby sprawdzić na ipvps’a to

nano /var/www/html/info.php

I wklejamy

<?php phpinfo() ?>

Wchodzimy na ipvps/info.php i działa php

Krok 2.1 - MYSQL

Wpisujemy w konsoli

mysql_secure_installation

Wciskamy ENTER
Wpisujemy : y
Wyskoczy prośba o nowe hasło dla roota mysql :slight_smile: Podajemy swoje wybrane
I powtarzamy je, po czym wpisujemy same : y

Teraz wgrywamy phpmyadmin do nginx’a:

sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin

wchodzimy na ipvps/phpmyadmin i działa :slight_smile:

Krok 2.3 - Naprawa błędu mysql

Jeżeli na debianie 9 lub najnowszym ubuntu macie problem
#1698 - Access denied for user ‘root’@‘localhost’
z zalogowaniem to zróbcie to:

mysql -uroot
CREATE USER 'nazwa_uzykownika'@'localhost' IDENTIFIED BY 'hasło';
GRANT ALL PRIVILEGES ON *.* TO 'nazwa_uzykownika'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

I logujemy się danymi utworzonym w tym kroku


#2

Mamy już jeden taki poradnik.


#3

LAMP to nie LEMP (Apache, to nie nginx) :blush:

Ogólnie tak -> poradnik używa PHP 7.0, kiedy już jest PHP 7.2 i ma się całkiem dobrze.
Mam również zastrzeżenia co do instalacji PMA przy pomocy apt. Tam zazwyczaj znajduje się BARDZO STARA WERSJA, co przekłada się na bezpieczeństwo.

Polecam stronkę np. https://www.ortograf.pl/, przed wrzuceniem sprawdź poprawność.
Nikomu nie szkodzi wchodzenie na tą stronę, przyznam się, że sam czasem korzystam.

Ogólnie poradnik taki sobie, podejrzewam, że napisany od tak i to na szybko.
:-1: :+1: (oceniam to na pośredni)


#4

@DBanaszewski, dzięki za podpowiedź z tym LEMP, a słówko jedno pomylone to nie problem :slight_smile: