Nginx + php + mysql на astra linux

Nginx + PHP + MySQL на Astra Linux

Данную инструкцию можно использовать для любой операционной системы Linux на основе Debian.

Подготовка сервера

Заходим в систему под суперпользователем:

Настраиваем сеть. В Astra Linux это делается также как и в Ubuntu:

# vi /etc/network/interfaces
auto eth0iface lo inet eth0     address 192.168.0.15     netmask 255.255.255.0     gateway 192.168.0.1     dns-nameservers 192.168.0.1 192.168.0.2

* В данном примере мы настроили сетевой интерфейс eth0 (задали IP-адрес 192.168.0.15 маску 255.255.255.0 и шлюз по умолчанию 192.168.0.1)

Для применения настроек необходимо перезапустить сетевую службу:

# service networking restart

В Astra Linux по умолчанию не настроены репозитории для установки пакетов, поэтому необходимо это сделать:

# vi /etc/apt/sources.list
deb ftp://ftp.astra-linux.com/astra/current/orel/repository orel main contrib non-free

* Эта строчка подключает официальный репозиторий Astra Linux.

Теперь нужно обновить список пакетов и обновить систему:

# apt-get update && apt-get upgrade && apt-get dist-upgrade

Установим sshd для возможности удаленного управления нашим сервером:

# apt-get install openssh-server

Для синхронизации времени установим пакет ntpdate, синхронизируем время и настроим автоматическое задание:

# apt-get install ntpdate# ntpdate ru.pool.ntp.org# mkdir -p /var/cron/tabs && echo '0 0 * * * /usr/sbin/ntpdate ru.pool.ntp.org' >> /var/cron/tabs/crontab && crontab /var/cron/tabs/crontab && crontab -l

Установка и настройка Nginx, PHP, MySQL

Устанавливаем пакет mysql-server:

# apt-get install mysql-server

* Во время установки будет предложено ввести новый пароль для mysql-записи root

Запускаем демнон:

В официальных репозиториях Astra Linux нет Nginx, поэтому подключим официальный от nginx inc.:

# vi /etc/apt/sources.list
deb http://nginx.org/packages/debian/ wheezy nginx

* wheezy соответствует 7-й версии Debian. У вас может быть другая версия. Будьте внимательны.

Для успешного получения списка пакетов от нового репозитория, добавляем в систему PGP-ключ:

# wget http://nginx.org/keys/nginx_signing.key# apt-key add nginx_signing.key

Теперь можем обновлять список пакетов и устанавливать веб-сервер nginx:

# apt-get update# apt-get install nginx

Демон запускается автоматически. Попробуйте открыть браузер и ввести IP-адрес сервера. Вы должны увидеть приветствие от Nginx.

Устанавливаем php и php-интерпретатор:

# apt-get install php5 php5-fpm

В Astra Linux по умолчанию nginx работает от учетной записи nginx, а php-fpm — от www-data. В результате этого при попытке использовать веб-сервер с php-скриптами мы получим ошибку. Для решения этой проблемы необходимо поменять пользователя, от которого будет работать либо nginx, либо php-fpm. В данном примере, nginx:

# vi /etc/nginx/nginx.conf

* самая первая строчка — меняем nginx на www-data.

Настраиваем виртуальный домен для нового сайта:

# vi /etc/nginx/conf.d/site.local.conf
server {     listen       80;     server_name  site.local;     set $root_path /var/www/site.local;     gzip  on;     client_max_body_size 128M;     gzip_min_length 1000;     gzip_vary on;     gzip_proxied    expired no-cache no-store private auth;     gzip_types      application/x-javascript text/plain application/xml text/css;     location / {          allow 192.168.0.0/16;          deny all;          root $root_path;          index index.php;     }     location ~ .php$ {          fastcgi_pass unix:/var/run/php5-fpm.sock;          fastcgi_index index.php;          fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;          include fastcgi_params;          fastcgi_param DOCUMENT_ROOT $root_path;     }     location ~* ^.+.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|exe|tar|bmp|js)$ {                root   $root_path;                expires modified +1w;     }}

* site.local необходимо заменить на домен вашего веб-приложения или сайта. ** /var/www/site.local — директория, в которую мы поместим файлы сайта. *** allow 192.168.0.0/16 — подсеть, для которой мы разрешаем доступ к сайту. Если ограничивать не требуется, удалите строчку и следующую за ней deny all.

**** Остальные параметры я рекомендую изучить самостоятельно.

Создаем директорию для сайта, которую мы указали в конфигурационном файле:

# mkdir /var/www/site.local

Создаем в нем файл index.php с функцией phpinfo:

# echo '' > /var/www/site.local/index.php

Перезапускаем наши демоны:

# service php5-fpm restart && service nginx restart

Проверьте работоспособность сервера, введя в адресной строке браузера IP-адрес сервера (в данном примере, 192.168.0.15). Сервер должен вернуть много параметров в различных таблицах.

Также в данных таблицах вы должны увидеть «MySQL Suppert — Enabled». Это говорит о том, что сервер готов к работе с базой MySQL.

Была ли полезна вам эта инструкция?

Да            Нет

Источник: https://www.dmosk.ru/instruktions.php?object=ustanovka-nginx—php—mysql-na-astra-linux

Как установить nginx, MySQL, PHP (LEMP) в Ubuntu

В этом посте мы разберем процесс установки сервера на основе Nginx на Ubuntu 14.04

[toc]

Данное руководство наиболее полно отражает процесс настройки LEMP сервера на базе хостинга от DigitalOcean, счастливым клиентом которого я недавно стал и вам советую.

Вводная

LEMP — аббревиатура, обозначающая комплекс программ для развертывания полного серверного окружения. Название формируется из входящих компонентов:

  • Linux — операционная система Linux;
  • Nginx(читается EnginX) — веб-сервер;
  • MariaDB / MySQL — СУБД;
  • PHP — язык программирования, используемый для создания веб-приложений (помимо PHP могут подразумеваться другие языки, такие как Perl и Python).

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

Итак, предполагается что в качестве Linux-дистрибутива у нас установлен Ubuntu 14.04, приступаем к работе:

Откроем консоль в Ubuntu и установим Nginx, предварительно обновив источники пакетов:

sudo apt-get update sudo apt-get install nginx

Теперь сервер Nginx установлен.
Проверить его работу, можно открыв браузер и перейдя на IP адрес того компьютера на котором устанавливали Nginx: http://server_domain_name_or_IP

Если это ваш локальный компьютер то достаточно набрать http://localhost

Вы должны увидеть стартовую страницу Nginx:

Страница приветствия Nginx

Старт и остановка сервера осуществляется командами:

sudo service nginx start sudo service nginx stop

Так как у меня первоначально стоял Apache2, пришлось сначала остановить его и затем запустить Nginx:

sudo service apache2 stop sudo service nginx start

Шаг второй — устанавливаем базу данных MySQL

Теперь, когда у нас есть веб-сервер, нам необходимо установить MySQL — базу данных, где будет храниться информация для нашего сайта.

Сделать это достаточно просто, открываем консоль и вбиваем:

sudo apt-get install mysql-server

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

Все, MySQL установлен, но еще не настроен до конца.
Во-первых, необходимо создать первичную структуру для хранения данных самой MySQL. Мы можем это сделать командой:

sudo mysql_install_db

Далее нам необходимо запустить сценарий безопасности, который изменит некоторые настройки идущие по умолчанию:

sudo mysql_secure_installation

Вам нужно будет ввести пароль администратора MySQL, который Вы выбрали во время установки.

Далее, вам будет предложено изменить его. Если в этом нет необходимости, введите «N» и нажмите «ENTER». После этого вам будет предложено удалить некоторых тестовых пользователей и базы данных. Вы должны просто нажимать «ENTER» при появлении вопросов, чтобы удалить опасные настройки по умолчанию.

После того, как сценарий завершиться, MySQL готов к использованию.

Шаг третий — установка PHP

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

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

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

sudo apt-get install php5-fpm php5-mysql

Повышаем безопасность PHP-FPM

Для повышения безопасности работы с PHP нам надо произвести донастройку.
Отроем на редактирование файл:

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

после чего, найдем строчку содержащую «cgi.fix_pathinfo», которая по-умолчанию выглядит так:

;cgi.fix_pathinfo = 1

раскомментируем ее и изменим значение, должно получиться так:

cgi.fix_pathinfo = 0

Сохраните измененный файл.
Это призвано устранить опасность неправильно трактования (и возникающей уязвимости) запросов вида «/image.gif/foo.php»

Шаг четвертый — настройка работы NGINX с PHP

Теперь у нас есть все составляющие сервера. Нам необходимо лишь связать NGINX и PHP для того чтоб он мог отрабатывать динамический контент.
Сделаем настройку так называемых серверных блоков(то же самое что виртуальные хосты у Apache)

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; server_name server_domain_name_or_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 для нашей Ubuntu 14.04.

Теперь перезагрузите его, чтобы все наши изменения вступили в силу:

sudo service nginx restartБольше интересных материалов на Блоге очередного вебмастера

Источник: https://newwebmaster.ru/blog/nginx-mysql-php-lemp-ubuntu/

Как установить Linux, Nginx, MySQL, PHP (LEMP) в Ubuntu 16.04

Стек LEMP представляет собой набор программного обеспечения, который используется для отображения динамических веб-страниц и веб-приложений. Этот акроним обозначает операционную систему Linux и веб-сервер Nginx. Данные при этом хранятся в базе данных MySQL, а динамическое отображение страниц выполняется средствами PHP.

В этой статье мы продемонстрируем процесс установки стека LEMP на сервер с Ubuntu 16.04. Операционная система Ubuntu удовлетворяет первому требованию LEMP — это операционная система на базе Linux. Далее мы опишем процесс установки остальных компонентов стека LEMP.

Перед установкой

Перед тем, как начать следовать описанным в этой статье шагам, убедитесь, что у вас есть обычный не-рутовый (non-root) пользователь с привилегиями sudo. Узнать, как настроить такого пользователя на вашем сервере, можно из статьи о первичной настройке сервера на Ubuntu 16.04.

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

Шаг 1 — Установка веб-сервера Nginx

Для отображения веб-страниц вашего сайта мы будем использовать Nginx — современный и эффективный веб-сервер.

Всё программное обеспечение, которое мы будем использовать, будет установлено из стандартных репозиториев Ubuntu. Это означает, что мы можем использовать пакетный менеджер apt для установки.

Читайте также:  Настройка веб-серверов. обслуживание веб-серверов. организация сервера для размещения сайтов

Поскольку мы собираемся использовать apt в первый раз в ходе этой сессии, начнём с обновления локального списка пакетов. Далее установим сервер:

  • sudo apt-get update
  • sudo apt-get install nginx

В Ubuntu 16.04 Nginx настроен для запуска сразу после установки.

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

Рекомендуется настраивать ufw таким образом, чтобы разрешать только тот трафик, который вы хотите разрешить в явном виде. Поскольку мы ещё не настроили SSL для нашего сервера, в этой статье мы разрешим трафик только для порта 80.

Сделать это можно следующей командой:

  • sudo ufw allow 'Nginx HTTP'

Вы можете проверить изменения введя команду:

В результате должен отобразиться вывод следующего вида:

Вывод

Status: active To Action From
— —— —-
OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)

Теперь, когда мы разрешили трафик на порту 80, вы можете проверить, можно ли осуществить доступ к вашему серверу используя доменное имя или публичный IP адрес сервера в веб-браузере.

Если у вас нет доменного имени, присвоенного серверу, и вы не знаете публичного IP адреса сервера, вы можете найти этот IP адрес следующей командой:

  • ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's//.*$//'

В результате будет выведено несколько IP адресов. Попробуйте вставить каждый из них в браузер.

Другим способом определить свой IP адрес будет проверка, как ваш сервер виден из Интернета:

Наберите полученный IP адрес в вашем веб-браузере. Вы должны увидеть страницу Nginx по умолчанию.

http://доменное_имя_или_IP_адрес

Если вы видите подобную страницу в своём браузере, вы успешно установили Nginx.

Шаг 2 — Установка MySQL для хранения данных сайта

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

Вы можете легко установить MySQL следующей командой:

  • sudo apt-get install mysql-server

В процессе установки вам будет предложено ввести рутовый пароль (пароль администратора) для MySQL.

После завершения установки нам потребуется выполнить некоторые дополнительные команды, чтобы наше окружение MySQL было настроено безопасным образом. Введите следующую команду:

  • sudo mysql_secure_installation

Скрипт запросит пароль, который вы только что задали для root пользователя в MySQL. Далее вам будет предложено сконфигурировать плагин валидации паролей (VALIDATE PASSWORD PLUGIN).

Внимание: решение включать плагин валидации паролей или нет носит субъективный характер. При включении все пароли, которые не удовлетворяют определённым критериям безопасности, будут отвергаться MySQL с сообщением об ошибке.

Это может вызывать проблемы, если вы используете «слабые» пароли совместно с программным обеспечением, которое конфигурирует профили пользователей MySQL, например, пакеты Ubuntu для phpMyAdmin.

Вы можете оставить валидацию паролей отключенной, но в этом случае вам следует всегда использовать «сильные» уникальные пароли для пользователей базы данных.

Введите y для включения плагина или что-нибудь другое для продолжения без его включения:

Источник: https://www.digitalocean.com/community/tutorials/linux-nginx-mysql-php-lemp-ubuntu-16-04-ru

Установка веб-сервера (Apache, PHP, MySQL, phpMyAdmin) на Linux Mint

Если вы веб-мастер, или программист на PHP, или вам просто нужно запустить веб-сайт на вашем компьютере, то вы можете это сделать с помощью веб-сервера. На Linux веб-сервер (Apache), а также сопутствующие компоненты (PHP, MySQL, phpMyAdmin) устанавливаются буквально в несколько команд.

В этой инструкции будет показано, как установить веб-сервер для сайтов на Linux Mint.

Установка Apache, PHP, MySQL, phpMyAdmin на Linux Mint

Большинство операций мы будет делать в командной строке – терминале Linux.

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

sudo apt-get update sudo apt-get install apache2 mysql-server php libapache2-mod-php php-mysql php-xml php-gd php-imap php-gettext phpmyadmin

В процессе установки появится окно, в котором вы можете установить пароль для MySQL:

Рекомендуется сразу установить пароль, это нужно для безопасности, также в своих стандартных настройках phpMyAdmin не даст войти без пароля.

Если для локального веб-сервера вы не хотите указывать пароль, то оставьте поле пустым, переключитесь клавишей TAB на OK и нажмите ENTER.

В этом окне оставьте всё без изменений, переключитесь клавишей TAB на OK и нажмите ENTER.

На вопрос «Настроить базу данных для phpmyadmin с помощью dbconfig-common?» клавишей TAB выберите «Нет» и нажмите ENTER:

Вот и всё! Веб-сервер (связка Apache, PHP, MySQL, phpMyAdmin) установлен и готов к работе. Откройте в браузере ссылку

Вы увидите стандартную страницу Apache:

Чтобы веб-сервер запускался вместе с каждым включением компьютера, выполните команду:

sudo systemctl enable apache2

Настройка phpMyAdmin

Нам нужно сделать небольшую настройку для phpMyAdmin. Введите команду

sudo gedit /etc/apache2/apache2.conf

Она откроет текстовый файл. Пролистните этот файл до самого конца и в самый низ добавьте строку:

Include /etc/phpmyadmin/apache.conf

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

sudo systemctl restart apache2

Теперь phpMyAdmin доступен по ссылке

По умолчанию phpMyAdmin не позволяет входить без пароля. Если вы не установили пароль для СУБД MySQL, то у вас на выбор две опции:

  • установить пароль
  • внести изменения в настройку phpMyAdmin, чтобы он разрешал вход без пароля

Рекомендуется задать пароль для базы данных. Для изменения пароля можно воспользоваться скриптом:

sudo mysql_secure_installation

Если вы хотите разрешить входить в phpMyAdmin без пароля, то откройте файл

sudo gedit /etc/phpmyadmin/config.inc.php

Найдите вторую (их там две) строку

// $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

и раскомментируйте её (уберите два слеша из начала строки), чтобы получилось:

$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

Скорее всего, при подключении вас ждёт сюрприз в виде ошибки «#1698 — Access denied for user 'root'@'localhost'». Пошаговые действия для её решения в этой инструкции.

Где в веб-сервере Apache находятся сайты?

По умолчанию корневой папкой для веб-документов является /var/www/html. В /var/www вы можете делать ваши собственные виртуальные хосты.

Папка /var/www/html и все файлы внутри неё принадлежат пользователю рут.

Чтобы вы могли изменять, добавлять, удалять файлы в этой папке, вам нужно использовать sudo. Например, следующей командой вы откроете файловый менеджер для управления содержимым папки.

sudo nemo /var/www/html

Все другие программы, которые вносят изменения в /var/www/html, также должны быть запущенными с sudo

На локальном сервере для упрощения использования вы можете сделать себя владельцем этой папки:

sudo chown -R $USER:$USER /var/www/html

Теперь вам и запущенным от вашего имени программам не нужны привилегии суперпользователя для работы с содержимым этой директории:

nemo /var/www/html

Индексные файлы Apache

Если пользователь запрашивает у веб-сервера не файл, и директорию, то сервер ищет в ней файлы index.html, index.php, index.htm и т.п.

Если эти файлы есть в этой директории, то показывается их содержимое. Эти файлы называются индексными.

Если в директории сразу два или более таких файлов, то показывается один из них в соответствии с установленным приоритетом.

Посмотреть, какие файлы для вашего сервера являются индексными и в каком порядке выстроен их приоритет вы можете в файле

sudo gedit /etc/apache2/mods-enabled/dir.conf

Там вы увидите что-то вроде:

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

Обычно пользователи хотят переместить индексный файл PHP (index.php) в первую позицию после DirectoryIndex, чтобы получилось примерно так:

DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

После внесения изменений, сохраните и закройте файл, перезапустите веб-сервер.

Заключение

В этой инструкции было показано, как установить веб-сервер Apache на свой компьютер с Linux Mint. По своей функциональность этот сервер не отличается от возможностей хостингов. Вы можете на нём тестировать свои сайты, использовать при изучении PHP, установить WordPress и т.д. Более того, этот сервер можно сделать доступным для локальной или даже глобальной сети.

Источник: https://ZaLinux.ru/?p=1142

Установка LEMP стека (Linux, Nginx, MySQL, PHP) на Ubuntu 16.04

В статье рассмотрен процесс настройки LEMP-стека на VPS под управлением операционной системы Ubuntu 16.04.

Что такое LЕMP

LEMP — это аналог популярного стека LAMP, используемого для разработки и развертывания веб-приложений. Традиционно LAMP состоит из Linux, Apache, MySQL и PHP. Благодаря своей модульной природе компоненты легко могут быть заменены. В LEMP Apache заменяется легким, но мощным Nginx, который может обеспечить более предсказуемую производительность при высоких нагрузках.

Apache vs Nginx

Apache:

  • Разрабатывается с 1995 года, к нынешнему моменту имеет много пользователей, существует большое количество модулей (в основном с открытым исходным кодом), написанных для расширения его функциональности;
  • Процессы или поточно-ориентированный подход замедляют работу веб-сервера при большой нагрузке, необходимо создавать новые процессы и потреблять больше ОЗУ, а также создавать новые потоки, которые должны конкурировать за ресурсы ЦП и ОЗУ;
  • Должен быть установлен предел для обеспечения того, чтобы ресурсы не перегружались, когда предел достигнут, дополнительные соединения будут отклонены.

Nginx:

  • Веб-сервер с открытым исходным кодом, написанный для решения проблем производительности и масштабируемости, связанных с Apache;
  • Механизм nginx, управляемый событиями, асинхронный и неблокирующий, не создает новые процессы для каждого веб-запроса;

Установка Nginx

Чтобы поставить Nginx для LEMP вам необходимо подключиться к VPS с ОС Ubuntu и исполнить следующие команды:

sudo apt-get update
sudo apt-get install nginx

Чтобы проверить установку сервера nginx, перейдите в любом браузере по следующей ссылке, указав IP-адрес вашего VDS:

http:///
Например: http://5.101.77.24/

Примечание: если у вас не получается подключиться, проверьте настройки FireWall, веб-сервер Nginx по умолчанию работает на порту 80, чтобы добавить правило выполните следующую пару команд:

iptables -A INPUT -p tcp —dport 80 -j ACCEPT
iptables-save 

Как узнать IP-адрес сервера

Адрес сервера можно найти на вкладке «Состояние» страницы «Серверы» в панели управления.

Установка MySQL(MariaDB) на Ubuntu

MySQL — это система управления базами данных (СУБД), которая используется для организации и получения контента.

Сегодня в LEMP стеке MySQL заменяется на популярный аналог — MariaDB. MariaDB имеет те же возможности, что и MySQL, и при этом является полностью бесплатной.

Примечание: если вы предпочитаете использовать базу данных MySQL в Ubuntu или ваш проект работает именно с ней, вам нужно будет добавить необходимые репозитории и установить БД с помощью инструкции.

Читайте также:  Usb не опознано

Установите пакеты из главного репозитория Ubuntu с помощью менеджера пакетов:

После успешной установки выполните настройки безопасности и удалите некоторые значения по умолчанию. Приведите в действие скрипт:

Здесь MariaDB попросит вас задать пароль супер-пользователя БД. Затем система попросит ответить на несколько вопросов (они служебные и на каждый из них без лишних проблем можно ответить Yes).

После этого конфигурирование базы данных завершено, и можно переходить к следующему шагу настройки LEMP стека — установке PHP.

Установка PHP на Ubuntu

Для установки компонента обработки программного кода PHP установите пакеты из главного репозитория с помощью менеджера пакетов:

В процессе установки потребуется 1 или 2 раза ответить ‘Yes’ на вопросы системы.

Модули PHP

Для повышения функциональности LEMP вы можете дополнительно поставить некоторые модули php. Посмотреть список доступных библиотек можно с помощью команды:

После этого система выдаст список, начало которого выглядит похожим образом:

Если вы решите установить какой-либо из модулей, то это можно сделать с помощью специальной команды:

Например:

Настройка Nginx для работы с PHP и MySQL

Для настройки связи между PHP и MySQL в LEMP стеке для nginx необходимо установить дополнительные модули и внести изменения в конфигурационный файл:

С помощью текстового редактора, например vi, откройте файл конфигурации на редактирование:

Раскомментируйте (уберите символ “;” в начале строки) следующую переменную и присвойте ей значение 0:

Сохраните изменения и выйдите из текстового редактора.
Перезапустите модуль:

Настройка Nginx

С помощью текстового редактора, например vi, откройте файл конфигурации веб-сервера nginx:

Добавьте значение index.php к параметру index в начало, чтобы в первую очередь искались файлы с расширением php:

В качестве значения параметра server_name укажите доменное имя или ip-адрес сервера:

server_name домен_или_IP_адрес;
Например: server_name 125.221.12.11

Раскомментируйте следующие строки, которые отвечают за обработку PHP-запросов в nginx:

В итоге, содержимое должно выглядеть следующим образом:

Чтобы изменения стали актуальны, нужно заново запустить веб-сервер nginx:

service nginx restart

Запуск

Чтобы удостовериться в том, что LEMP поставлен без ошибок, можно создать test-page на VPS.

Создаем файл с нужным расширением:

Внесите в него следующую строку и сохраните:

Затем сохранить и выйти.

Затем перейдите в браузере по следующей ссылке, указав IP-адрес вашего сервера: http:///info.php
Например: http://5.101.77.24/info.php

Ожидаемый результат:

  

Источник: https://1cloud.ru/help/linux/ustanovka-lemp-steka-linux-nginx-mysql-php

Как установить LEMP (Linux, Nginx, MySQL & PHP-FPM) на Debian 8

В этой статье мы расскажем вам об установке LEMP (Linux, Nginx, MySQL и PHP-FPM) на Debian 8.
Стек LEMP является синонимом сервера LEMP или веб – сервера LEMP. Он включает Linux, Nginx, MySQL (MariaDB) и PHP.

Обновите систему

Убедитесь, что ваш сервер полностью в актуальном состоянии с помощью:

apt-get update && apt-get upgrade

Установите NGINX

Чтобы установить Nginx на своем сервере Debian 8, вам нужно выполнить следующую команду:

apt-get install nginx

После завершения установки, вы можете начать с Nginx:

systemctl start nginx

Включите Nginx для запуска при загрузке:

systemctl enable nginx

Возможные проблемы:

Если во время установки Nginx вы столкнулись с ошибками, вроде этих:

dpkg: error processing package nginx (—configure):
dependency problems — leaving unconfigured
Processing triggers for systemd (215-17+deb8u1) …
Errors were encountered while processing:
nginx-full
nginx
E: Sub-process /usr/bin/dpkg returned an error code (1)

то, вы можете исправить, открыв файл конфигурации Nginx по умолчанию и закомментировать линию listen [::]:80 default_server;. Введите следующую команду:

vim /etc/nginx/sites-available/default

Найдите линию  listen [::]:80 default_server; и закомментируйте ее, добавив знак # перед линией. Перезапустите Nginx, чтобы изменения вступили в силу и запустите команду установки менеджера пакетов Nginx:

systemctl restart nginx apt-get install nginx

Убедитесь в том, что Nginx работает, открыв веб-браузер и посетив ваш IP-адрес сервера (http://server_ip). Вы должны получить страницу приветствия Nginx, как показано ниже:

Установка MYSQL

Теперь давайте установим MySQL. Наберите следующее:

apt-get install mysql-server

Во время установки вам будет предложено ввести пароль для корневого пользователя MySQL. Не вводите простой пароль, который можно взломать. Он должен содержать не менее 8 символов, смешанного с верхним и нижним регистром.

Теперь, когда MySQL установлен, мы рекомендуем Вам сделать безопасную настройку MySQL командой:

mysql_secure_installation

Введите свой пароль корня и ответ с ‘n’, когда вас просят изменить корневой пароль MySQL. Ниже вся процедура, которой вы можете следовать:

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation. You already have a root password set, so you can safely answer 'n'. Change the root password? [Y/n] n
… skipping. By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment. Remove anonymous users? [Y/n] y
… Success! Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y
… Success! By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment. Remove test database and access to it? [Y/n] y
— Dropping test database…
ERROR 1008 (HY000) at line 1: Can't drop database 'test'; database doesn't exist
… Failed! Not critical, keep moving…
— Removing privileges on test database…
… Success! Reloading the privilege tables will ensure that all changes made so far
will take effect immediately. Reload privilege tables now? [Y/n] y
… Success! Cleaning up… All done! If you've completed all of the above steps, your MySQL
installation should now be secure. Thanks for using MySQL!

Включите MySQL для запуска при загрузке:

systemctl enable mysql

Установка PHP-FPM

Установите PHP-FPM, выполнив следующую команду:

apt-get install php5-fpm php5-mysql

Следующий шаг, который нужно сделать, это изменить файл конфигурации Nginx. Переместите файл по умолчанию и создайте новый файл Nginx. Следующая команда сделает именно это:

mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.old vim /etc/nginx/sites-available/default

Теперь, что у вас открыт новый файл по умолчанию, вставьте следующее содержание:

server { listen 80; server_name your_website_name.ru; root /var/www/html; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/html; } location ~ .php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
}

Сохраните и закройте файл.

Теперь, давайте создадим простой тест PHP страницы. Создайте информационную страницу PHP, так что вы можете проверить свою версию PHP, активные модули и т.д …

Создайте файл, назовем его info.php  в каталоге /var/www/html:

vim /var/www/html/info.php

Вставьте следующий код в файл:

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

systemctl restart nginx

Теперь откройте ваш веб-браузер и перейдите по адресу http://your_server_ip_address/info.php. Мы рады приветствовать Вас на веб-странице, аналогичной приведенной ниже:

Вот и все. Вы успешно установили стек LEMP на Debian 8.

Источник: https://andreyex.ru/operacionnaya-sistema-debian/kak-ustanovit-lemp-linux-nginx-mysql-php-fpm-na-debian-8/

Установка nginx + php fastcgi + mysql — веб-сервер на слабом VDS под ubuntu linux

Иногда так случается, что есть необходимость развернуть полноценный веб-сервер с блэкджеком и майэскуэлем при очень ограниченных ресурсах. Так случилось, что понадобилось мне уложиться в 256 МБ оперативной памяти на VDS. Итак, было выбрано следующее решение: nginx + fastcgi + mysql + proftpd.

Как настраивается последний я уже где-то писал, так что займёмся всем остальным. Итак, имеем VDS с рутовым доступом. Поехали. Для начала стоит установить полезные утилиты htop для отслеживания потребляемых ресурсов, mc для удобной навигации по файловой системе и psmisc, чтобы работал killall.

Первое и второе совсем необязательно для установки, а третье может уже быть установлено по умолчанию.

apt-get install htop mc psmisc

Установим собственно PHP с поддержкой mysql

apt-get install php5-cgi php5-mysql

Далее я создаю пользователя и директорию, чтобы работать там. Это, опять же, всё на ваш вкус. Тут я это пишу, чтобы самому не забыть.

mkdir /webs && groupadd webs && useradd -s /bin/bash -g webs -d /webs webs && chown -R webs /webs

Установим MySQL

apt-get install mysql-client mysql-server libmysqlclient15-dev

Установим сервер nginx

apt-get install nginx

Установим утилиту spawn-fcgi, необходимую для запуска PHP-скриптов.

apt-get install spawn-fcgi

Теперь создадим необходимые нам для работы файлы.

nano /usr/bin/php-fastcgi

и записываем в него следующее#!/bin/sh PHP_FCGI_CHILDREN=3 PHP_FCGI_MAX_REQUESTS=1000 exec /usr/bin/php5-cgiИ ещё один файл.

nano /etc/init.d/init-fastcgi

Следующего содержания#!/bin/bash PHP_SCRIPT=»/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u webs -g webs -f /usr/bin/php-fastcgi» RETVAL=0 case «$1» in start) $PHP_SCRIPT RETVAL=$? ;; stop) killall -9 php5-cgi RETVAL=$? ;; restart) killall -9 php5-cgi $PHP_SCRIPT RETVAL=$? ;; *) echo «Usage: sudo /etc/init.d/init-fastcgi {start|stop|restart}» exit 1 ;; esac

exit $RETVAL

Установим права доступа на файлы и сделаем их исполняемыми

chmod 755 /usr/bin/php-fastcgi
chmod 755 /etc/init.d/init-fastcgi

Стартуем наш процесс

/etc/init.d/init-fastcgi start

Примерный конфиг в nginxserver { listen 80; server_name example.com; error_log /webs/example.com/logs/error.log warn; access_log /webs/example.com/logs/access.log; root /webs/example.com/www; charset utf-8; location ~ .*(gif|jpg|jpeg|png|ico|css|swf|js|html|htm)$ { } location ~ .

php$ { include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /webs/example.com/www$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_pass 127.0.0.1:9000; break; } location / { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME /webs/example.

com/www$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; include /etc/nginx/fastcgi_params; }

}

Добавим PHP в автозагрузку

update-rc.d init-fastcgi defaults

Если вы не используете innodb, то стоит выключить его поддержку, добавив в файл /etc/mysql/my.cnf после строки

[mysqld]

следующую строку

skip-innodb

В моём случае это сократило количество потребляемой оперативной памяти примерно на 100МБ

Источник: https://veseloff.net/32.html

Установка Nginx Ubuntu 16.04

На данный момент самую большую популярность набрали два веб-сервера. Это Apache и Ngnix. У каждого из них есть свои плюсы и минусы.

Apache был разработан еще в 1995 году и при его разработке учитывались не все возможные потребности пользователей, он потребляет много памяти и ресурсов системы, зато он прост в настройке.

Читайте также:  Iperf: установка и настройка. как пользоваться iperf для теста скорости сети

Nginx был разработан чуть позже в 2002 году уже учитывая ошибки Apache и ориентируясь на максимальную производительность.

Мы не будем подробно вникать в плюсы и минусы этих обоих веб-серверов. У каждого из них своя область применения.  В этой инструкции будет рассмотрена установка Nginx Ubuntu 16.04. Хотя я буду говорить об Ubuntu 16.04, все действия подойдут и для других дистрибутивов. Настройка Nginx везде одинакова, только команда установки отличается.

Установка компонентов

Первым делом нужно установить сам веб-сервер в систему. Программа есть в официальных репозиториях, но ее версия уже немного устарела, поэтому если хотите самую новую версию, нужно добавить PPA:

sudo apt-add-repository ppa:nginx/stable

Сейчас в официальных репозиториях доступна версия 1.10.0, а в стабильной PPA уже доступна 1.10.1. Если для вас версия не нужна можно обойтись и без PPA. Дальше обновите списки пакетов из репозиториев:

sudo apt update

И устанавливаем ngnix:

sudo apt install nginx

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

sudo systemctl enable nginx

Если вы уже сейчас откроете браузер, то увидите работающий nginx, но нам предстоит его еще настроить.

Настройка Nginx Ubuntu

Настройка Nginx Ubuntu намного сложнее чем Apache. Здесь мы не будем рассматривать все опции и возможности программы, а поговорим только об основном. Есть различные конфигурации, в которых Nginx используется в качестве прокси сервера, а основной сервер Apache, но нас это интересовать не будет. Нам нужна установка Nginx как самостоятельного веб-сервера.

Настройки Nginx сильно отличаются здесь есть только один основной файл конфигурации и файлы для виртуальных хостов. Настройка из каждой директории, как в Apache не поддерживается.

  • /etc/nginx/nginx.conf — главный файл конфигурации
  • /etc/nginx/sites-available/* — файлы конфигурации для виртуальных хостов, проще говоря для каждого сайта.
  • /etc/nginx/sites-enabled/* — файлы конфигурации активированных сайтов.

На самом деле файлы конфигурации для виртуальных хостов читаются только из директории sites-enabled, но здесь содержаться ссылки на sites-available. Такая система была придумана, чтобы дать возможность отключать на время те или иные сайты, не стирая их конфигурацию.

Все остальные файлы содержат только объявления переменных и стандартные настройки, которые изменять не нужно. Что же касается nginx.conf, то в него включаются все файлы из sites-enables, а поэтому они могут содержать все точно такие же инструкции.

А теперь давайте рассмотрим главный файл конфигурации:

sudo vi /etc/nginx/nginx.conf

Как видите файл разделен на секции. Общая структура такова:

глобальные опции events {} http{ server { location{} } server {} }

mail {}

  • глобальные опции отвечают за работу всей программы.
  • events — эта секция содержит настройки для работы с сетью.
  • http — содержит настройки веб-сервера. Должна содержать секцию servier для тонкой настройки каждого сайта.
  • server — в этой секции содержится настройка каждого размещенного на веб-сервере сайта.
  • location — секция location может находиться только внутри секции server и содержит настройки только для определенного запроса.
  • mail — содержит настройки почтового прокси.

Перед тем как перейти к опциям, нужно сказать еще пару слов о синтаксисе строки в конфигурационном файле. Он выглядит вот так:

параметр значение дополнительное_значение…;

Строка должна обязательно заканчиваться «;», а все открытые скобки { должны быть закрыты.

Теперь, когда вы немного изучили глобальную структуру, можно переходить к рассмотрению самих параметров. Глобальных опций не так уж много:

  • user — пользователь, от имени которого будет работать программа.
  • worker_processes — устанавливает сколько процессов нужно запускать для параллелизации работы программы, нужно запускать не больше процессов, чем у вас есть ядер. Можно установить параметр auto и тогда программа определит это число сама.
  • pid = файл pid программы.
  • worker_rlimit_nofile — указывает максимальное количество файлов, которые может открыть программа. Рассчитывается как worker_processes * worker_connections* 2.

С глобальными опциями закончили, их было не так много и они не такие интереснее. Куда интереснее в плане оптимизации опции с секции events:

  • worker_connections — количество соединений, которые программа может обрабатывать одновременно на одном процессе. Если умножить worker_process на этот параметр, то мы получим максимальное количество пользователей, которые могут подключиться к серверу одновременно. Рекомендуется устанавливать значение от 1024 до 4048.
  • multi_accept — разрешить принимать много подключений одновременно, установите параметр on или off.
  • use — способ работы с сетевым стеком. По умолчанию используется poll, но для Linux эффективнее использовать epoll.

Дальше переходим самой главной секции — http. Здесь опций намного больше:

  • sendfile — использовать метод отправки данных sendfile. Значение on.
  • tcp_nodelay, tcp_nopush — отправлять заголовки и начало файла одним пакетом. Значение on.
  • keepalive_timeout — таймаут ожидания, перед тем как keepalive соединение будет разорвано, по умолчанию 65, но можно уменьшить до 10 секунд.
  • keepalive_requests — максимальное количество keepalive соединений от одного клиента, рекомендовано 100.
  • reset_timedout_connection — разрывать соединения после таймаута. Значение on.
  • open_file_cache — кэшировать информацию об открытых файлах. Строчка настройки выглядит вот так: open_file_cache max=200000 inactive=20s; max — максимальное количество файлов в кэше, время кэширования.
  • open_file_cache_valid — указывает по истечении какого времени нужно удалить информацию из кэша. Например: open_file_cache_valid 30s;
  • open_file_cache_min_uses — кэшировать информацию о файлах, которые были открыты как минимум указанное количество раз.
  • open_file_cache_errors — кэшировать информацию об отсутствующих файлах, значение on.

Основные параметры рассмотрели. Эти настройки помогут вам получить большую производительность от nginx. Секцию server и location мы рассмотрим в настройке виртуальных хостов.

Настройка сжатия Gzip

Сжатие контента необходимо, чтобы уменьшить размер загружаемых браузером данных. Это ускоряет загрузку сайта, но добавляет дополнительную нагрузку на процессор сервера. Чтобы включить сжатие в секции http нужно добавить параметр:

gzip on

Эту директиву можно использовать также в секции server, тогда она будет работать только для указного виртуального домена. Дальше настраиваем параметры сжатия настраиваются с помощью следующих опций:

  • gzip_min_length — минимальная длина страницы в байтах, при которой нужно использовать сжатие, например, 1000 (1 кб)
  • gzip_proxied — нужно ли сжимать проксированые запросы, any говорит, что нужно сжимать все.
  • gzip_types — типы файлов, которые нужно сжимать, например: text/plain application/xml application/x-javascript text/javascript text/css text/json;
  • gzip_disable «msie6» — в IE 6 сжатие не поддерживается, поэтому отключаем.
  • gzip_comp_level — уровень сжатия, доступны варианты от 1 до 10. 1 — минимальное, 10 — максимальное сжатие.

Настройка виртуальных хостов

Как вы знаете, на сервере может размещаться несколько сайтов. Все запросы приходят на ip сервера, а nginx уже определяет на основе домена какой контент нужно выдать.

Для того чтобы nginx знал что к какому домену относится нужно настроить виртуальные хосты. Каждый хост принято размещать в отдельном файле.

Настройка хоста находится в секции server, но поскольку все файлы из sites-enabled импортируются в секцию http, то логика структуры конфигурационного файла не нарушается.

Рассмотрим пример настройки:

vi /etc/nginx/sites-enabled/losst.ru.conf

  • listen 80 — указывает, что нужно ожидать подключения на порту 80, может также содержать опцию default-server, которая означает, что этот домен будет открывается если домен не был задан в запросе.
  • root /var/www/html — директория, в которой находятся файлы сайта.
  • index index.html — страница, которая будет открываться по умолчанию.
  • server_name — доменное имя сайта.
  • access_log — файл для записи лога запросов к серверу, может использоваться как глобально в секции http, так и для определенного типа файлов в location.
  • error_log — лог ошибок веб-сервера, может принимать дополнительный параметр, указывающий подробность лога. warn — максимум, crit — только критические ошибки.

Это все основные настройки виртуального хоста, после них он уже будет работать. Но тут есть еще секция location, которая позволяет настроить поведение сервера для определенных директорий и файлов. Синтаксис location такой:

location адрес {}

В качестве адреса может использоваться как прямой запрос относительно корня сервера, так и регулярные выражения. Для использования регулярных выражений перед ним ставится символ «~». Примеры рассмотрим ниже, а пока рассмотрим возможные директивы:

  • allow — разрешить доступ к местоположению для пользователей, all — всех, также можно указать ip или подсеть.
  • deny — запретить доступ к местоположению, all — для всех.
  • try-files — пытается открыть файлы в определенном порядке, открывает первый обнаруженный файл. Например, такая конструкция: $uri $uri/index.html $uri.html =404; сначала пытается открыть $uri, затем index.html, если не найден $uri.html, и аж потом, если ни одного из предложных файлов не существует, выдает ошибку 404.
  • expires — задает время кэширования браузером отданного элемента, например, 1d — один день, 2h — два часа, 30s — 30 секунд.

Кроме этих главных директив, здесь могут использоваться и другие. Чтобы получить больше подробностей, смотрите официальную документацию. Рассмотрим пару примеров:

Не выполнять логирование для favicon:

location = /favicon.ico { log_not_found off; access_log off;

}

Запретить доступ к файлам, начинающимся с точки:

location ~ /. { deny all;

}

Кэшировать обычные файлы на 90 дней:

location ~* ^.+.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { access_log off; log_not_found off; expires 90d;

}

После того, как установка и настройка nginx будет завершена проверяем конфигурацию на ошибки:

nginx -t

Затем перезагружаем сервер:

sudo service nginx reload

sudo service nginx restart

Если изменялись незначительные параметры можно использовать reload, тогда будет просто обновлена конфигурация без перезагрузки, если же изменяли глобальные опции, нужно перезагрузить программу полностью с помощью restart.

Просмотр статистики

Просмотр статистики работы веб-сервера очень важен. Установка nginx, должна содержать настройку возможности получения статистики. Для того чтобы это сделать добавьте такие строки к вашему хосту в секцию server:

location /basic-staus { stats_stub; allow 127.0.0.1 deny all;

}

Статистика будет доступна только с локального ip:

wget localhost/basic-status -O —

Выводы

Установка Nginx Ubuntu 16.04 завершена и теперь вы немного представляете как его настроить. Конечно, есть еще много вещей, которые мы не упомянули в статье, например, настройка обработки динамического контента php или настройка nginx Ubuntu в качестве прокси-сервера для apache. Возможно, это будет рассмотрено в следующих статях.

(11

Источник: https://losst.ru/ustanovka-nginx-ubuntu-16-04

Ссылка на основную публикацию