Перейти к содержимому

Как установить сайт на vds debian

  • автор:

Статья Настройка защищённого VPS (VDS) на Debian, часть первая: установка Apache, PHP, MySQL

Настройка VPS (VDS) для тех, кто никогда этим не занимался — довольно непростая вещь. Для тех, кто знает, что вся установка осуществляется несколькими командами, это может показаться достаточно простой задачей. Тем не менее, эта простота иногда бывает обманчива. «Голый» Apache уязвим к DoS, «голый» SSH уязвим к брутфорсингу и т. д. Панели управления, phpMyAdmin уязвимы к сниффингу трафика, обычный FTP просто категорически не рекомендован.

На VPS хостингах предусмотрена «пакетная» установка (предустановка) сервера и компонентов — там устанавливаются такие же «голые» программы. Можно заказать услугу специалиста по настройке (примерно 700 рублей в час, покупать нужно минимум час, в стандартную цену входит те же самые Apache, PHP, MySQL и т. п. вещи, для всего другого нужно договариваться отдельно и отдельная цена…

Обеспечение безопасности сервера — это целая наука и профессия. Нельзя в инструкциях описать все необходимые действия и правила настройки. Тем не менее, для предотвращения «детских» атак, вполне возможно и самому настроить сервер правильно.

В данной серии инструкций в качестве операционной системы выбран Debian. Аналогичная серия готовится и для CentOS.

Приступим к настройке VPS

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

Перед началом установки какого-либо программного обеспечения, убедитесь что в вашей свеже установленной системе Debian назначено корректное имя хоста, которое должно соответствовать FQDN (полностью определённым доменным именам) (например, debian.mydomain.com). Для смены имени хоста наберите следующую команду:

Шаг 1: Установка Apache

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

Для установки Apache на вашу систему наберите следующую команду:

После того, как пакеты Apache установлены, наберите в вашем браузере http://<IP-адрес-вашего-сервера>/

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

28550

Шаг 2: Установка MySQL

Для любого маломальски сложно веб-приложения или сервиса нужна база данных. Чаще всего для этого используется MySQL. Последнее время, некоторые предпочитают MariaDB. При установке MariaDB все ваши сайты, которые работают на MySQL, будут работать точно также. Все команды и запросы к базе данных имеют один и тот же синтаксис. Установите любую (но только одну!) из этих систем управления базами данных.

Для установки MySQL

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

28551

28552

Следующим шагом бы обезопасим сервер MySQL (MariaDB) отключив некоторые функции, такие как удалим анонимных пользователей, заблокируем удалённых вход рута, удалим тестовую базу данных. Всё это можно сделать запуском одного сркипта. Ответьте "Y" на все вопросы, кроме первого, когда спрашивают о смене пароля рута, он у нас уже есть.

28553

Чтобы проверить аккаунт рута сервера MySQL (MariaDB) наберите следующую команду. Проверьте, можете ли вы войти с вашим паролем рута.

Для выхода используйте exit.

Шаг 3: Установка PHP

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

Перед установкой PHP проверьте, какие библиотеки и модули доступны:

Шаг 4: Настройка PHP

Перед тестированием конфигурации PHP вам нужно настроить временную зону для PHP, поскольку в дефолтном файле php.ini не установлена временная зона для функции даты, используемой во многих веб-приложениях. Для настройки временной зоаны timezone, отредактируйте /etc/php5/apache2/php.ini и задайте значение date.timezone в соответствии с физической временной зоной вашего сервера.

Теперь откроем адрес http://<IP-адрес-вашего-сервера>/info.php для проверки настройки PHP.

Например, я открываю так

28554

28555

Шаг 5: Установка phpMyAdmin

phpMyAdmin — это инструмент для управления базами данных MySQL/MariaDB через веб интерфейс.

Для установки phpMyAdmin на вашем сервере Linux наберите следующую команду:

Во время установки у вас спросят про настройку phpMyAdmin. Когда попросят выбрать веб сервер, выберете apache2, а когда попросят настроить базы данных через dbconfig-common, ответьте нет, поскольку мы уже настроили MySQL/MariaDB ранее.

28556

После установки пакета phpMyAdmin, перейдите в браузере http://<IP-адрес-вашего-сервера>/phpmyadmin.

Это основное программное обеспечение для сервера. Сервер уже полностью рабочий, после перезагрузки все необходимые службы будут запускаться сами, теперь вы можете разместить ваш сайт и любые системы управления сайтами (CMS) WordPress, Drupal, Joomla, Opencart, Prestashop.

Настройка своей VDS на Debian (8) под сайт


Если вы впервые приобрели себе VDS (англ. virtual dedicated server), т.е. виртуальную машину под сайт, но не знаете как настроить её под сайт? Тогда это статья для вас.
В ней мы рассмотрим:
1) Немного увеличим кругозор (терминология)
2) Подключимся по SFTP и SSH к нашей машине
3) Легкая настройка нашей машины

Увеличиваем кругозор:

Если вы считаете, что вам эта информация ненужна, то смело пропускайте. Это всего лишь никому не нужные термины
Для начала разберем что такое VDS. Как сказано ранее с английского это virtual dedicated server, что значит виртуальный выделенный сервер. По сути мы получили компьютер, только с операционной системой с которой ранее вы могли не сталкиваться. Мы будем работать с Debian 8. Управление такой машиной происходит по SFTP и :
FTP — Протокол соединения для передачи файлов. Т.е. будем через этот протокол заливать файлы (можно конечно чисто SFTP использовать для этого, но зачем усложнять и так сложную жизнь ?)
SFTP — По сути тот же самый FTP только более круче Если есть интерес прошу вас в гугл или яндекс
SSH — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой(из вики) более понятным языком скажу, что это консоль при помощи которой будем работать с машиной.

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

Для работы мы будем использовать FileZilla и PuTTY.
FileZilla — программа для работы с FTP (SFTP) протоколами, т.е. будем заливать/редактировать/удалять файлы через неё.
Скачиваем с официального сайта FilleZilla. Сверху в шапке сайта есть кнопка скачать, кликаем по ней и устанавливаем себе на компьютер (думаю как это сделать объяснять не требуется)
Далее идем на сайта PuTTY и кликаем по первой ссылке:
Далее выбираем нужную для вас версию. Лично я всегда использую PuTTY.exe для моей системы (x64)
Теперь нам нужно записать (ну или запомнить) данные от вашей виртуальной машины. Обычно данные от машины приходят при покупке на сайте продавца, а также может находиться где-то в самом сайте продавца примерно в настройках купленной вами машины. Ищите сами где именно это находиться, т.к. я не умею угадывать.
В данных от машины примерно указаны следующие поля:
IP: цифровое значение с точками (1.1.1.1 где вместо 1 может быть любое число)
User: root (пользователь — root по сути это супер пользователь, другими словами администратор всей системы)
Password: . (пароль)
Некоторые продавцы еще дополнительно указывают порт 22 (порт для SFTP и SSH соединений)

Немного поговорим об Android

Время творить

Отлично, когда у нас всё готово для работы начнем с того, что скачаем автоустановщик (install.sh), если не хотите всё делать в ручную:
install.rar
В архиве находиться один файл install.sh, перетащите (распакуйте) его в удобное место, чтобы потом залить его на диск машины
Теперь давайте зайдем в FilleZilla и добавим нашу машину в Менеджер сайтов дабы не вводить данные каждый раз при подключение. Жмем в левом верхнем углу (под кнопкой файл) на Менеджер сайтов
После чего создаем новый сайт
В правом окне настроим:
Протокол: SFTP — SSH .
Хост: IP из данных от машины
Порт: 22
Тип входа: Нормальный
Пользователь: root (по данным от машины, обычно это root)
Пароль: Пароль который дал вам продавец или же вы вводили при покупке
После заполнения всех полей жмем кнопку Соединиться
Может вылезти такое окошко. Просто жмем ОК
Отлично мы находимся в каталоге root (в этом каталоге мы находимся и в SSH соединение при подключение)
Давайте подготовим install.sh под вас. Откройте его любым текстовым редактором и найдите строчки 70, 71
Замените T58rYKfJXKjaKxLnZFCU на желаемый пароль для phpMyAdmin
Сохраняем файл и теперь перетаскиваем сохраненный файл в FilleZilla
Теперь зайдем в PuTTY в поле HOST NAME вставляем IP вашей машины
В saved sessions назавем наши машину допустим VDS и нажмем кнопку Save
Теперь при последующих подключениях не нужно вводить IP а просто в окне где Default Settings выбираем VDS и жмем кнопку LOAD после чего в поле Host появиться Ip машины
Далее жмем кнопку OPEN
Вылезет своеобразная консоль с текстом login ass и вводим root (или вашего пользователя от машины)
После появиться примерно такое: [email protected]’s password: в этом поле при вводе не показывается текст, проще всего скопировать пароль и вставить его правой кнопкой мыши и жмем enter
Появился [email protected]название машины

# означает что мы подключились
Теперь нужно запустить автоустановщик
Он обязан находиться в root директории т.к. сейчас с консоли мы находимся в ней

Вводим sh install.sh и у нас появиться окно установки, вводим на клавиатуре 1 и жмем Enter

Далее попросят ввести IP от машины. Вводим, жмем Enter и ждем окончания установки
По итогу установки мы увидим такой текст:
Отлично перейдем на ваш сайт. Выделяем в тексте ссылку на ваш сайт и жмем правую кнопку мыши
В браузере переходим по ссылке и видим такую прекрасную вещь
Если перейти дальше на /phpmyadmin то попадет сюда
Если ввести пользователя root (ну или кто у вас там) и пароль который поставили в install.sh, то попадем в нарнию отличную штуку для создания баз данных, но почитайте где-нибудь, если не знаете что это и с чем это кушают

Важная информация:
Чтобы работать с сайтом вам нужно перейти в SFTP (FilleZilla) в директорию /var/www/html
И только туда заливать файлы сайта
Также можно настроить чтобы это всё было в другой папке, но это уже ищите в интернете

Желаю вам удачи с вашими проектам
P.S. Сюда можно заливать скрипты ботов

  • アレクセイ サモシュキン
  • 17.09.2019
  • 5 483
  • 3
  • 9

alt=»Блог Михаила Григорьева» />

28 Авг 2018 23:08:04 | 13 комментариев

Настройка сервера на базе Debin 9 для Web-хостинга сайтов (nginx + php-fpm7 + pure-ftpd + phpmyadmin)

В Интернете десятки, а может даже и сотни статей о настройке Linux серверов для хостинга Web-сайтов, что же такого нового в этой статье?

Все просто — эта статья наиболее актуальна на текущий момент, все что в ней описано было сделано на реальном сервере который вводился в эксплуатацию для хостинга небольшого Интернет-магазина (суточная посещаемость — примерно 2000 уникальных посетителей).

Итак приступим к настройке.

Исходные данные:
VPS сервер, арендованный в apt-get update apt-get upgrade

Устанавливаем правильную часовую зону (Asia/Yekaterinburg):

Устанавливаем вспомогательные пакеты (все они понадобятся нам в дальнейшем):

Добавим настройки среды для пользователя root (опционально, Вы можете это не делать):

Указанные выше настройки среды делают следующее (Многие из них описаны в моей статье про ведение истории команд):
1. Включают подсветку синтаксиса в vim;
2. Включают возможность копировать текст открытый в vim с помощью выделения его мышкой в терминале Putty.
3. При вызове vi будет запускаться редактор vim;
4. Устанавливают настройки хранения и вывода истории команд в консоле;
5. Изменяют командную строку терминала;

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

Настраиваем sudo для нашего пользователя:

Хочу обратить Ваше внимание на формат добавляемой строки в файл /etc/sudoers, обычно многие администраторы добавляют такую строку:

Это неправильно и нарушает безопасность сервера, никогда так не делайте!
Обязательно указывайте вместо первого ALL имя сервера, а вместо второго ALL логин пользователя с правами которого Вы запустите команду из sudo.
Так же не следует указывать NOPASSWD, т.к. таким образом для выполнения sudo не будет запрошен пароль пользователя, а значит — это потенциальная возможность для злоумышленника получить полные привилегии на сервер без знания вашего пароля.
И вместо последнего ALL всегда указывайте какую конкретно команду Вы разрешаете выполнить пользователю с повышеными привилегиями, не нужно давать пользователю право на все команды, дайте только на те, которые действительно нужны.

Итак, наша правильная строка выглядит так:

$(hostname) будет заменено на имя сервера и в файл /etc/sudoers добавиться строка:

то есть, мы дали пользователю mgrigorev право выполнить команду su с правами пользователя root и только с нашего сервера myserver.ru и обязательно с запросом пароля пользователя mgrigorev.

Проверяем коректность настроек sudo:

Теперь заходим на наш сервер через Putty под пользователем mgrigorev и добавляем свой публичный ssh-ключ:

Разлогиневаемся и пробуем зайти по ssh-ключу, если после подключения к серверу у Вас не был запрошен пароль и в окне Putty при подключении было написано:

то Вы авторизовались по ssh-ключу.

Пробуем перейти в привилигерованный режим выполнив команду:

Обратите вниание на знак ‘-‘ после su, он не просто так написан, указав ‘-‘ при получении доступа под root мы установим все переменные среды именно пользователя root.
Если мы не укажем знак ‘-‘ , то некоторые переменные среды унаследуются от нашего пользователя mgrigorev, что в последствии может сыграть злую шутку.

Будет запрошен пароль пользователя mgrigorev, вводим его и мы должны увидеть приглашение вида:

Если все получилось, то отключаем возможность входа на сервер под пользователем root:

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

2. Установка БД MariaDB 10.3

Я не буду останавливаться на установке и первоначальной настройки MariaDB 10.3, т.к. у меня в блоге есть отдельная полная статья на эту тему, на данном сервере я все делал как в статье.

3. Установка и базовая настройка Nginx

Скачиваем и добавляем ключ Nginx Inc. на нашу систему:

Если нужно установить Nginx из ветки Stable, то выполняем:

Если нужно установить Nginx из ветки Mainline, то выполняем:

Обновляем список пакетов:

Устанавливаем Nginx и OpenSSL (опционально):

Проверим открытые порты:

Теперь займемся базовой настройкой Nginx.

Создадим директорию для хранения SSL сертификатов и DH-ключей, а также создаем файл с параметрами для DHE-шифров:

2048 бит выбраны не случайно, это разумный компромисс между безопасностью, оптимальной нагрузкой на CPU и скоростью работы. Если Вы думаете, что 2048 бит недостаточно, то Вы ошибаетесь, авторы атаки Logjam говорят, что простое число размеров 2048 бит и более не взламываемое при текущем уровне развития техники.

Создадим директории для хранения настроек Web-сайтов:

Я приведу базовый эталонный файл настроек который использую я на 99% серверов, рекомендую использовать его с дополнительными Вашими правками под конкретные нужды. В файле присутствуют комментарии для многих параметров.

Скачать уже готовый файл для Nginx версии 1.13.x (1.15.x) и выше Вы можете командой:

После того, как мы сохранили наш новый файл настроек nginx.conf проверим конфигурацию Nginx:

Если ошибок нет, то выполняем (это заставит Nginx перечитать конфигурацию):

Меняем системные лимиты на кол.открытых файлов.

Т.к. мы указали в nginx.conf параметр worker_rlimit_nofile = 10000, то будем исходить из него.

Традиционно во всех статьях в Интернет все меняют лимиты через редактирование файла /etc/security/limits.conf, но это неправильно, т.к. для Debian 8 и Debian 9 этот файл не работает.

В Debian 8 и Debian 9 используется система инициализации systemd и поэтому лимиты на максимальное количество открытых файлов нужно настроить для systemd, для этого выполняем:

Теперь проверим лимиты, для этого смотрим строку «Max open files» в выводе:

Все отлично! Nginx работает, лимит открытых файлов мы поменяли.

4. Установка и базовая настройка PHP 7.0 и PHP-FPM

Установим все необходимые пакеты:

Отредактируем некоторые настройки PHP (cli):

Отредактируем некоторые настройки PHP (fpm):

Мы установили следующие базовые настройки для php (cli):

И установили базовые настройки для php (fpm), которые будут применяться для всех php-fpm пулов по умолчанию:

Вы можете дописать необходимые Вам настройки.

5. Создание и настройка площадки для сайта

Далее следовало бы написать огромную кучу команд для создания отдельного пользователя и группы для работы отдельного пула php-fpm от имени этого пользователя, создания php-fpm пула с минимумом настроек, создания иерархии каталогов для размещения сайта, выставления правильных прав на эти каталоги, настройка файла конфигурации нашего сайта для Nginx, создания файла для ротации логов Nginx и т.д.
Но для автоматизации всей этой рутины я написал 2 простых скрипта на bash, они открыты и размещены у меня на github.com

Скачиваем мои скрипты и распаковываем:

Теперь создадим все необходимое для хостинга сайта mysite.ru (у Вас будет другой домен):

Результат работы скрипта:

Что делает этот скрипт ?

Он выполняет вот такие команды на основе введенных данных и файла настройки /etc/nginx/settings.conf:

Как видите, скрипт делает довольно много работы, а главное делает он ее с предварительной проверкой многих параметров системы. А после выполнения практический каждой команды он проверяет результат ее выполнения и если что-то пойдет не так, то выполнение будет остановлено.
Именно из-за необходимости выполнения большого числа рутиных команд я и написал скрипт автоматизации nginx-create-vhost.sh

Скрипт ./nginx-create-vhost.sh создает следующую иерархию каталогов для размещения web-сайта:

Все файлы конфигурации Nginx будут создаваться в каталоге /etc/nginx/sites-available
Все активные сайты активируются путем создания симлинка в каталоге /etc/nginx/sites-enabled на соответствующий файл в /etc/nginx/sites-available
Все файлы настроек пулов php-fpm для Debian 9 будут создаваться в каталоге /etc/php/7.0/fpm/pool.d, для Debian 8 или Oracle Linux каталоги будут другие.
Все файлы правил ротации логов будут создаваться в каталоге /etc/logrotate.d

Ниже представлен типовой файл настроек Nginx (/etc/nginx/sites-available/mysite.ru.vhost)
Файлы называются по имени сайта с добавлением расширения vhost.
Вы можете изменить шаблон файла template/nginx_virtual_host.template на основе которого создается конфигурация vhost.

Это минимально необходимый файл конфигурации Nginx, для того, чтобы заработали php-скрипты на сайте.
Вы можете его изменять и добавлять нужные Вам директивы.

Например если у Вас сайт на WordPress, то файл может принять такой вид (привожу только часть блоков location):

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

Ниже представлен типовой файл настроек пула php-fpm (/etc/php/7.0/fpm/pool.d/web1.conf)
Файлы пула называются по логину создаваемого пользователя от имени которого данный пул будет работать.
Вы можете изменить файл шаблона template/php_fpm.conf.template на основе которого создаются настройки пула php-fpm.

Вы можете добавлять в этот файл уникальные для каждого сайта настройки php, например увеличим лимит памяти (memory_limit) для сайта, для этого добавим в файл /etc/php/7.0/fpm/pool.d/web1.conf настройку

Проверим корректность настроек и перезапустим php-fpm (для Debian 9):

Так же в комплекте со скриптом создания типовой хостинговой площадки (nginx-create-vhost.sh) идет скрипт ее удаления — nginx-remove-vhost.sh
Скрипту удаления площадки (nginx-remove-vhost.sh) нужно указать чуть больше настроек (нужно указать имя сайта, логин пользователя и имя группы), например:

Посмотрим какому пользователю и группе принадлежит сайт:

Удалим каталог сайта, все настройки php-fpm, nginx, logrotate, а так же пользователя и группу с правами которой работал php-fpm:

ВНИМАНИЕ! Скрипт nginx-remove-vhost.sh удаляет все настройки созданные скриптом nginx-create-vhost.sh включая каталог с сайтом, логами и т.п., он не спросит подтверждения, он удалит тот каталог в /var/www что Вы укажите в опции -d и удалит пользователя и группу указанные в опциях -u и -g

6. Расширенная настройка Nginx

Почему я выделил эти настройки в отдельный пункт и что сюда входит ?

Сохраняем это в файл /etc/nginx/conf.d/fallback.conf, правим под себя IP адрес вашего сервера.
Чтобы Nginx подключил конфигурацию из файла /etc/nginx/conf.d/fallback.conf нужно чтобы каталог /etc/nginx/conf.d был определен в директиве include в файле /etc/nginx/nginx.conf, примерно так:

Данный fallback.conf определяет default_server как для соединений по 80 порту (HTTP), так и для соединений по порту 443 (HTTPS). Для обработки HTTPS соединений нам нужно создать минимальный самоподписной сертификат, он будет нужен лишь для того, чтобы браузер на этапе установки TLS-соединения (Handshake) попытался все таки его установить, хоть и с выводом ошибки, что сертификат самоподписной, ну а далее уже на этапе HTTP соединение будет закрыто самим Nginx. Если кому-то интересно почитать как работает TLS, то я рекомендую mkdir /etc/nginx/ssl openssl genrsa -out /etc/nginx/ssl/default_server.key 2048 openssl req -new -key /etc/nginx/ssl/default_server.key -sha256 -out /etc/nginx/ssl/default_server.csr -subj "/C=CA/ST=None/L=NB/O=None/CN=194.XX.XX.XX" openssl x509 -req -sha256 -days 3650 -in /etc/nginx/ssl/default_server.csr -signkey /etc/nginx/ssl/default_server.key -out /etc/nginx/ssl/default_server.crt

После этого проверяем конфигурацию Nginx и перезагружаем ее:

Теперь пробуем открыть сервер по IP адресу:
http://194.XX.XX.XX
https://194.XX.XX.XX
http://mysite3.ru
https://mysite3.ru
* Сайты mysite3.ru я взял для примера, у Вас конечно же будут свои сайты.
В браузере соединение по HTTP будет закрыто сразу, а по HTTPS к примеру Google Chrome скажет вначале, что у нас самоподписной сертификат (NET::ERR_CERT_AUTHORITY_INVALID), далее если принять сертификат и перейти на сайт, то соединение по HTTPS так же будет закрыто.

Можно попробовать с другого сервера установить соединение с помощью curl, например так:

Мы видим, что соединение сразу же закрывается — этого мы и хотели добиться.
Вместо кода 444 Вы можете написать в fallback.conf код 403 и тогда соединение будет открываться и возвращаться HTTP код 403, но лучше не доводить соединение до стадии открытия.

7. Установка и настройка phpMyAdmin

Для Web-разработчиков phpMyAdmin необходим как собственно и сам PHP, поэтому давайте установим и настроим его.

Во-первых давайте определимся по какому URL мы и web-разработчики будут заходить в phpMyAdmin.
Обычно для phpMyAdmin выделают отдельный поддомен, например phpmyadmin.mysite.ru, но у нас же на сервере будет куча сайтов и делать для каждого такого вида поддомен просто неудобно.
Давайте сделаем URL такого вида http://mysite.ru/phpmyadmin и при входе на него наш web-сервер будет делать 301 редирект на какой-то постоянный сервисный домен http://phpmyadmin.myorg.ru
Пусть сайт phpmyadmin.myorg.ru так же будет на этом сервер, для простоты настройки.

Воспользуемся моим скриптом nginx-create-vhost.sh для создания этой сервисной площадки:

Я опущу вывод процесса создания площадки, она успешно создастся, наш рабочий каталог для php-скриптов phpMyAdmin будет /var/www/phpmyadmin.myorg.ru/web

Теперь скачаем последнюю версию phpMyAdmin и развернем ее в каталоге /var/www/phpmyadmin.myorg.ru/web:

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

Далее настроим конфигурацию phpMyAdmin, для этого перейдите в браузер по адресу http://phpmyadmin.myorg.ru/setup/ и создайте файл конфигурации config.inc.php для вашей БД, в самом простом виде он выглядит так:

Параметр $cfg[‘blowfish_secret’] генерируется автоматически и очень важен для защиты.

После создания файла конфигурации Вы можете зайти на http://phpmyadmin.myorg.ru/ и авторизоваться введя данные пользователя MySQL.

Так же я настоятельно рекомендую настроить HTTPS для нашего поддомена phpmyadmin.myorg.ru, но эту тему я оставляю на Вашей совести. Про правильную настройку HTTPS на Nginx я расскажу в отдельной статье.

8. Установка и настройка Pure-FTPd

Теперь установим и настроим ftp-сервер Pure-FTPd.

В качестве базы хранения пользователей мы будем использовать локальную базу Pure-FTPd.
Для начала отключим авторизацию по системный учетным записям через подсистему PAM, для этого остановим Pure-FTPd и выполним ряд команд:

Настроим некоторые полезные опции Pure-FTPd:
1. Запретим анонимный вход;
2. Включим поддержку chroot, это значит, что пользователь будет ограничен своим домашним каталогом и не сможет перейти выше уровнем;
3. Включим расширенное ведение логов;
4. Оставим поддержку только IPv4;
5. Увеличим максимальное число клиентов до 100;
6. Разрешим отображение в директориях файлов начинающихся с точки;
7. Определим список пассивных портов;
8. Зададим кодировку по умолчанию;
9. Увеличим лимиты на количество отображаемых в директориях файлов и глубину вложенности;

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

Посмотрим список открытых портов:

Отлично, Pure-FTPd работает.

Теперь можно добавить виртуального пользователя (логин mysite):

В опции -u мы указали UID нашего виртуального пользователя, он должен соответствовать UID реального пользователя имеющего право на чтение и запись в домашний каталог.
В опции -g мы указывается GID нашего виртуального пользователя, он должен так же должен соответствовать GID реальной группы.
В опции -d мы указали домашний каталог нашего виртуального пользователя, он должен соответствовать корневому каталогу нашей площадки для сайта mysite.ru в которой располагаются каталог web, log, private и tmp.

При первом запуске данная команда создает базу пользователей, а после любых операций с пользователями — обновляет (не забывайте ее запускать каждый раз):

Чтобы избежать использования команды ‘pure-pw mkdb’ после каждого изменения данных я рекомендую использовать опцию ‘-m’ в командах модификации. Ниже Вы увидите ее в примерах.

Просмотрим список пользователей:

Для просмотра подробной информации о пользователе mysite выполним:

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

Для смены пароля пользователя mysite выполните:

Для смены домашней директории пользователя mysite выполните:

Для удаления пользователя mysite выполните:

Pure-FTPd пишет логи в файл /var/log/messages, поэтому для просмотра логов нужно отфильтровать их по слову pure-ftpd, например так:

Расширенный лог пишется в файл /var/log/pure-ftpd/transfer.log, в нем можно посмотреть кто, когда и какие операции выполнял после прохождения аутентификации. Сами попытки аутентификации (удачные и не удачные) нужно смотреть в файле /var/log/messages

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

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

Как установить сайт на VDS сервер

Поделиться Твинтнуть Поделиться Запинить Отправить Многие веб-мастера интересуются, как установить сайт на сервер VDS. В статье мы постараемся максимально подробно рассмотреть все важные вопросы, касающиеся данной задачи. Подготовка VDS сервера Чтобы выполнить установку сайта на VDS, нужно в первую очередь развернуть на веб-хостинге LAMP. Это специальный набор программного обеспечения, в состав которого входят: Linux, Apache, […]

10 Авг 2022 03:18 Контент Менеджер

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

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

Чтобы выполнить установку сайта на VDS, нужно в первую очередь развернуть на веб-хостинге LAMP. Это специальный набор программного обеспечения, в состав которого входят: Linux, Apache, MySQL и PHP. Они обеспечивают правильное функционирование веб-ресурсов и сервисов.

Что нужно для установки:

заходим в панель управления веб-сервером;

выбираем создание нового сервера в списке возможностей;

указываем его название;

выбираем нужную ОС, например, установить сайт на VDS на Debian;

определяем подходящую конфигурацию;

устанавливаем защиту от хакеров;

оплачиваем услуги виртуального хостинга;

ждем завершения процесса.

Когда установка закончится, в вашем распоряжении будет VDS с начальной конфигурацией, которая полностью подходит для размещения на ней веб-ресурса.

Ручная установка

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

Для этого потребуется настроить подключение к серверу по SFTP. Удобнее всего загружать данные с помощью программного решения FileZilla. Для успешного подключения нужно будет указать ряд важных данных, а именно:

IP вашего веб-сервер;

порт (стандарт 22).

На следующем шаге необходимо работать с БД. Для этого необходимо запустить подключение через SSH. Проще всего выполнить эту задачу с помощью консоли в ПУ.

Сначала нужно выполнить команду:

Далее требуется указать имя БД, логин и пароль. Лучше всего указывать информацию, присутствующую в файле конфигурации.

CREATE DATABASE `имя_БД` // Создайте базу данных
CREATE USER ‘логин’@’localhost’ IDENTIFIED BY ‘пароль’ // Задайте логин и пароль
GRANT ALL PRIVILEGES ON `имя_БД`.* TO ‘логин’@’localhost’ // Предоставьте привилегии пользователю
FLUSH PRIVILEGES // Перезагрузите привилегии

При наличии дампа:

загружаем его на сервер;

импортируем в новую БД по команде ниже.

импортируем в новую БД

Установка с помощью LAMP

Установка и настройка через консоль очень проста. Она подходит как для установки сайта на Windows VDS, так и для других ОС. Мы в качестве примера рассмотрим работу с Ubuntu.

Итак, сначала необходимо сделать себе профиль с правами non-root. Далее необходимо установить веб-сервер Apache. Сделать это можно через менеджер командой:

$ sudo apt update
$ sudo apt install apache2

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

Далее переходим к настройке файерволла. Нужно проверить наличие у брандмауэра по команде:

$ sudo ufw app list

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

Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

После этого нужно запустить проверку настроек Apache Full. Потребуется две команды:

$ sudo ufw app info «Apache Full»

$ sudo ufw allow in «Apache Full»

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

Теперь можно заняться установкой MySQL. Она необходима для организации доступа к БД. Используем команду:

$ sudo apt install mysql-server

Вы должны увидеть пакеты перед установкой с указанием размера. Остается подтвердить установку и настроить надежность для паролей. Лучше всего выбрать параметр «2» и использовать пароль, содержащий не только цифры, но также большие и маленькие буквы и спецсимволы.

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

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

https://alkogolizm.vyvod-iz-zapoya-v-stacionare-samara11.ru/