Настройка типичного серера на 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/*.conf; }

Перезапускаем сервис:

sudo service nginx restart

2. Устанавливаем Php

apt-get install php-cli php-common php-mysql php-gd php-fpm php-cgi php-fpm php-pear php-mcrypt

В файле «/etc/nginx» меняем пользователя на «www-data».

Редактируем конфиг:

sudo nano /etc/php/7.0/fpm/php.ini

Приводим строку к виду:

cgi.fix_pathinfo=0

Снова конфигурируем:

sudo nano /etc/php/7.0/fpm/pool.d/www.conf

Комментируем строку, добавляем свою:

#listen = /run/php/php7.0-fpm.sock listen = 127.0.0.1:9000

3. Время Mysql

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

sudo apt install mysql-server

После установки рекомендуется выполнить команду и пройти настройку с помощью мастера:

sudo mysql_secure_installation

4. Устанавливаем PhpMyAdmin

sudo apt install phpmyadmin php-mbstring php-gettext

Теперь рассказываем Nginx, где искать PhpMyAdmin. Лучше располагать его по какому-нибудь не типичному адресу, например, вот так:

sudo ln -s /usr/share/phpmyadmin /usr/share/nginx/html/secret-phpmyadmin-dir

Напоследок перезагружаем сервисы:

sudo service nginx restart sudo service php7.0-fpm restart

Теперь PhpMyAdmin будет доступен из браузера по адресу «http://server_domain_or_IP/secret-phpmyadmin-dir».