Установка Nginx, mySql, php в Ubuntu 16
Установка 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
Готово.
0