Настройка типичного серера на Ububntu, Nginx, Mysql, php7.0-fpm, PhpMyadmin

Итак, у нас есть сервер на базе Ubuntu 16, есть задача быстро развернуть на нём рабочую платформу для хостинга сайтов. Для этого хочется использовать Nginx в связке с php7.0-fpm. Для баз данных — стандартный Mysql и привычный многим PhpMyAdmin.

Для начала установим собственный пароль для пользователя root. Используем команду:

sudo passwd

1. Устанавливаем и конфигурируем Nginx

Установку Nginx из официального репозитория можно провести, как было описано в прошлой статье по ссылке.

Либо альтернативным способом.

Добавляем репозиторий:

echo "deb https://nginx.org/packages/mainline/ubuntu/ `lsb_release -cs` nginx» >> /etc/apt/sources.list echo "deb-src https://nginx.org/packages/mainline/ubuntu/ `lsb_release -cs` nginx» >> /etc/apt/sources.list curl https://nginx.org/keys/nginx_signing.key | apt-key add —

Устанавливаем:

sudo apt update sudo apt install nginx

Залезаем в конфиг:

sudo nano /etc/nginx/conf.d/default.conf

Приводим его к следующему виду:

server { listen 80;

root /var/www; index index.php index.html index.htm; server_name example.com www.example.com;

location / { try_files $uri $uri/ /index.html; }

error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/www; }

location ~ .php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

Редактируем второй:

sudo nano /etc/nginx/nginx.conf

До вида:

user www-data; worker_processes 2;

error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid;

events { worker_connections 1024; }

http { include /etc/nginx/mime.types; default_type application/octet-stream;

log_format main '$remote_addr — $remote_user [$time_local] "$request» ' '$status $body_bytes_sent "$http_referer» ' '"$http_user_agent» "$http_x_forwarded_for»';

access_log /var/log/nginx/access.log main;

sendfile on; #tcp_nopush on;

keepalive_timeout 65;

#gzip on;

include /etc/nginx/conf.d .inct-lazy { display: block; width: 100%; margin: 35px auto; position: relative; box-sizing: border-box; overflow: hidden; min-height: 250px; transition: opacity 0.4s ease; } @media (max-width: 768px) { .inct-lazy { min-height: 200px; margin: 20px auto; } } .inct-lazy[data-ad-type="popup"], div[id^="NRent-"][id$="-5"] { min-height: 0 !important; margin: 0 !important; height: 0; } .inct-lazy.inct-placeholder { background: #fcfcfc; border: 1px solid #f0f0f0; } .inct-lazy.inct-loaded { min-height: 0; background: transparent; border: none; } .inct-lazy.inct-error { display: flex; flex-direction: column; justify-content: center; align-items: center; background-color: #fffbf2; border: 1px dashed #d4c4a8; border-radius: 8px; padding: 15px; cursor: pointer; min-height: 150px; } .inct-lazy.inct-error::before { content: "Droidnews в Telegram"; font-weight: 700; color: #333; margin-bottom: 5px; } .inct-lazy.inct-error::after { content: "Новости без рекламы и цензуры"; font-size: 13px; color: #666; }