LEMP сервер на Ubuntu 20.04

27.08.2021 | 92 | Linux

Установка веб-сервера на Linux Nginx Mysql Php на Ubuntu 20.04

Установка MySQL

apt install mysql-server
mysql_secure_installation
На первый вопрос обязательно отвечаем "N", иначе будет проблема с паролями из-за проверки их сложности.

Установка PHP

apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt install php7.4-fpm php7.4-mysql php7.4-mbstring php7.4-xml php7.4-gd
Устанавливаем "open_short_tag = On" в /etc/php/7.4/fpm/php.ini
open_short_tag = On
Повторяем несколько раз с заменой версии если необходимо установить несколько версий паралельно.

Установка NGINX

apt install nginx
Создаем временный самоподписанный сертификат
sudo mkdir /etc/nginx/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/site.com.key -out /etc/nginx/ssl/site.com.crt

Создаем конфиг nano /etc/nginx/sites-available/site.com.conf

server {
    listen *:80;
    server_name site.com www.site.com;
    return 301 https://$server_name$request_uri;
}

server {
    server_name site.com www.site.com;
    listen *:443 ssl;

    ssl_certificate /etc/nginx/ssl/site.com/site.com.pem;
    ssl_certificate_key /etc/www/nginx/ssl/site.com/site.com.key;

    root /var/www/site.com/public;

    location ~ .php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        client_max_body_size 128M;
        fastcgi_ignore_client_abort off;
    }

    include snippets/phpmyadmin.conf;
}
Создаем ссылку:
ln -s /etc/nginx/sites-avalible/og-studio.ru.conf /etc/nginx/sites-enabled/

Установка PhpMyAdmin

apt install phpmyadmin
Создаем файл /etc/nginx/snippets/phpmyadmin.conf со следующим содержимым:
location /phpmyadmin {
    root /usr/share/;
    index index.php index.html index.htm;
    location ~ ^/phpmyadmin/(.+\.php)$ {
        try_files $uri =404;
        root /usr/share/;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_param  PHP_VALUE mbstring.func_overload=0;

        include /etc/nginx/fastcgi_params;
    }

    location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
        root /usr/share/;
    }
}
Создаем веб-каталог сайта и назначем владельца
mkdir -p /var/www/site.com/public
chown www-data:www-data /var/www -R
Меняем домашнюю директорию, shell и создаем пароль для www-data
usermod -d /var/www www-data
usermod --shell /bin/bash www-data
passwd www-data
Перезагружаем
shutdown -r 0
Для работы с сайтом подключаемся под пользователем www-data по протоколу sFTP

← Назад

Комментарии (0)