Установка Nginx, mySql, php в Ubuntu 16

Автор Itworkroom

Установка Nginx, mySql, php в Ubuntu 16

В статье показан процесс установки веб сервера Nginx. Для установки всех пакетов будет использоваться «родной» репозиторий ubuntu. Для начала необходимо обновить источники пакетов и применить их в системе, сделаем это командами:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nginx

После завершения процессов установки, сервер Nginx установлен.
Проверить его работу, можно открыв браузер и перейдя на IP адрес того сервера на котором его устанавливали Nginx: http://server_IP, Вы должны увидеть страницу приветствия веб сервера: WELCOME to nginx!

Узнать ваш ip адрес можно командой: ipconfig

Так как изначально в системе был установлен веб сервер apache, необходимо его выключить, а nginx включить:

sudo service apache2 stop
sudo service nginx start

Далее необходимо установить систему управления базой данных, в роли субд у нас будет Mysql, устанавливаем командой:

sudo apt-get install mysql-server

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

Создаем первичную структуру для хранения данных для самой MySQL:

sudo mysql_install_db

Запускаем сценарий установки параметров безопасности:

sudo mysql_secure_installation

Далее необходимо установить необходимое связующее звено — php интерпретатор, который будет отрабатывать динамические запросы. Поскольку веб сервер Nginx не имеет встроенной обработки PHP, нам необходимо установить — менеджер процессов FastCGI (php5-fpm). Благодаря менеджеру процессов «php5-fpm», веб сервер nginx сможет обрабатывать PHP запросы.

Устанавливаем php5-fpm командой:

sudo apt-get install php5-fpm php5-mysql

Делаем необходимую настройку php5-fpm:

sudo nano /etc/php5/fpm/php.ini
 ищем строку: ;cgi.fix_pathinfo = 1 меняем её на cgi.fix_pathinfo = 0

Далее связываем nginx и php, для того чтоб веб сервер мог отрабатывать динамический контент, для этого создадим виртуальные блоки:

sudo nano /etc/nginx/sites-available/default
server {
 listen 80 default_server;
 listen [::]:80 default_server ipv6only=on;

root /usr/share/nginx/html;
 index index.html index.htm;

server_name localhost;

location / {
 try_files $uri $uri/ =404;
 }
 }

Необходимо внести index.php как начальное значение директивы index, для того чтобы индексные файлы PHP вызывались при запросе каталога.
В конфигурационном файле, необходимо указать директиву — server_name, это доменное имя или публичный IP сервера.
Также раскомментируем в конфигурационном файле некоторые строки, которые определяют процедуры обработки ошибок.
Также нужно добавить директиву try_files, чтобы убедиться, что Nginx не передает не понятные нам запросы на обработчик PHP.

В приведенном ниже блоке кода изменения выделены жирным курсивом:

server {
 listen 80 default_server;
 listen [::]:80 default_server ipv6only=on;

root /usr/share/nginx/html;
 index index.php index.html index.htm;

domain_or_server_IP;

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_split_path_info ^(.+.php)(/.+)$;
  fastcgi_pass unix:/var/run/php5-fpm.sock;
  fastcgi_index index.php;
  include fastcgi_params;
  }
 }

Перезагрузите установленный веб сервер Nginx, для того чтобы изменения вступили в силу:

sudo service nginx restart

Готово.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *