Debian 8 lamp: Установка комплекта Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 20.04
Бесплатные панели управления хостингом для VPS/VDS ⚙️
3 октября 2019
5 887
Время чтения ≈ 11 минут
Размещение интернет-ресурса на базе виртуального сервера (VDS/VPS) не может обойтись без одного важного шага — выбора панели управления (ПУ) для хостинга. Этот инструмент позволяет с лёгкостью регулировать работу сервера и настраивать параметры всех приложений.
Хостинг — крайне востребованная услуга на современном рынке высоких технологий. Неудивительно, что разнообразие панелей управления может поставить в тупик даже опытного в администрировании веб-ресурсов пользователя. Особенно часто сложности возникают у тех, кто пытается сравнить бесплатные панели управления. Ведь у них зачастую отсутствует доступная техническая поддержка и развитые сетевые сообщества.
Подобрать лучшую бесплатную панель управления для VPS под требования конкретного ресурса поможет сравнительный обзор с кратким описанием возможностей каждого инструмента.
Функционал панелей управления
Наибольшее распространение получили панели управления, выполненные в виде интуитивно понятного графического веб-интерфейса. При помощи контрольной панели можно настроить сервер VDS/VPS, даже без основательных знаний и помощи системного администратора.
Что можно делать через панель управления VDS
- Размещать, переносить и управлять сайтами.
- Устанавливать операционные системы (ОС).
- Добавлять домены и поддомены.
- Делать резервные копии (бекапы).
- Управлять файлами и базами данных (БД).
- Управлять почтовыми аккаунтами (mail, FTP).
- Добавлять SSL-сертификаты.
И это далеко не полный список. Здесь перечислены те функции, которые чаще всех используются в администрировании VDS/VPS.
Лучшие бесплатные панели управления VDS
Несмотря на ценовую доступность платных ПУ, вроде ISPmanager, cPanel и Plesk, популярность бесплатных панелей управления хостингом продолжает оставаться высокой. Хотя бесплатные ПУ заметно проигрывают в функциональности, их часто выбирают те, кто только начинает изучать системное администрирование или хочет выбрать инструмент под свои специфические требования.
Рассмотрим наиболее распространённые панели с кратким раскрытие их технических возможностей.
Vesta
Это бесплатная панель управления хостингом на VPS с возможностью платной поддержки. Встроенный установщик приложений «в 1 клик» Softaculous позволяет развернуть свыше 400 приложений, включая популярные CMS.
Ядро ПУ создано на основе BASH — нативной командной оболочки для администрирования Linux серверов, позволяющей повысить эффективность работы на Ubuntu, Debian и других . Панель управления Vesta поставляется с брандмауэром iPTables или fail2ban.
✅ Поддерживаемые ОС: Ubuntu, Debian, RHEL, Centos/RedHat.
✅ Минимальные требования: 512 ОЗУ, 20 ГБ жесткий диск, 1 ГГц ЦП.
Возможности VestaCP
- Предустановленный модуль LNAMP stack (Nginx + Apache) позволяет ускоренно обрабатывать в кеше статический и динамический контент.
- Поддержка мультиязычности — 26 языков.
- Полный контроль над виртуальными серверами, включая статистику, журналы, аналитику и т. д.
- Поддержка интерфейса CLI.
- Решения для почтового сервера: SpamAssasin (защита от спама), ClamAV (антивирусное ядро), Dovecot (сервер IMAP/POP3), Exim + RoundCube.
- Базы данных: MySQL+ phpMyAdmin и PostgreSQL+ phpPgAdmin;
- Веб-менеджер файлов: для просмотра, копирования, редактирования всех файлов приложения.
- FTP-менеджер: VsFTPD, ProFTPD.
- Автоустановка бесплатого SSL-сертификата Lets Encrypt, который обновляется самостоятельно.
- В качестве веб-сервера поддерживает NGINX, Apache, PHP-FPM.
Brainy
Это мультиязычная панель управления хостингом корпоративного уровня. Предоставляет набор функций не уступающий и даже, в некоторых случаях, превосходящий возможности платных аналогов. Использование контрольной панели Brainycp предполагает автоматизацию всех процессов на стороне сервера.
Реализована расширенная поддержка PHP с типами подключения на выбор. С помощью контрольной панели возможно управление множественных хост-аккаунтов с лимитированием разнообразных параметров.
✅ Поддерживаемые ОС: CentOS 7 64bit.
✅ Минимальные требования: 512 МБ ОЗУ, 2 ГБ на жестком диске и процессор от 266 МГц.
Возможности BrainyCP
- Менеджер приложений.
- Управление бекапами — резервное копирование по расписанию.
- Фаловый менеджер ElFinder.
- Управление IPtables в графическом меню.
- Поддержка IPv6.
- BIND DNS-сервер: поддержка удаленных DNS-серверов и кластеризации.
- FTP: PureFTPD или ProFTPD на выбор.
- Автоустановка популярных CMS.
- Почтовый серевер: Exim + Dovecot + Clamav + DKIM + SpamAssasin + Roundcube.
- CSF файерволл.
Ajenty
Легкая ПУ, где Apache заменен более быстрым NGINX. Ajenty написана на языке Python с поддержкой движка фреймворка Gevent, что позволило реализовать модульную архитектуру.
Из преимуществ панели отмечают: простой интерфейс, быстрый доступ к VPS, простую установку и подробную документацию. Контрольная панель поставляется с несколькими предустановленными инструментами, такими как текстовый редактор, менеджер кода, терминал и файловый менеджер.
✅ Поддерживаемые ОС: Debian, Ubuntu, RHEL, CentOS и Gentoo. Также возможен перенос на другое ПО на Linux и BSD.
✅ Минимальные требования: 30 МБ ОЗУ и 75 МБ дискового пространства.
Возможности Ajenty
- Модульный интерфейс;
- Поддержка проектов на Python, Ruby on Rails, Node.js;
- Стандартная поддержка SSL;
- Управление бд;
- Файловый менеджер;
- Управление DNS;
- Встроенный брандмауэр;
- Конфигурация зеркал и кластеров;
- Управление доменами и электронной почтой;
- Поддержка нескольких серверов;
ISP Config
Одна из наиболее популярных бесплатных панелей управления для VPS. Инструмент с открытым исходным кодом основан на языке PHP. ISP Config позволяет осуществлять управление одновременно несколькими виртуальными и физическими серверами.
✅ Поддерживаемые ОС: Ubuntu, Debian, CentOS, Fedora, OpenSuSE.
✅ Минимальные требования: 30 МБ ОЗУ и 75 МБ дискового пространства.
Возможности ISPConfig
- Поддержка IPv4 и IPv6.
- Модуль биллинга ISPConfig 3.
- 4 уровня доступа – от администратора до гостевого по электронной почте.
- Сканер вредоносных программ ISPProtect.
- Инструменты для миграции.
- Индивидуальные настройки PHP для каждого сайта.
- Мультиязычность – поддержка более 20 языков.
- Ruby и Python (только Apache).
- WebDAV (только Apache) .
- Базы данных MySQL.
- Электронная почта: SMTP, POP3, IMAP, POP3S, IMAPS, DKIM Mail.
CWP (CentOS Web Panel)
Это многофункциональная бесплатная панель управления сервером, которую можно скачать и установить буквально в несколько кликов. Рекомендуется устанавливать на новый VPS, так как в панели нет возможности удаления.
CentOS Web Panel дополняется кеш-сервером Varnish, встроенным межсетевым экраном и установщиком приложений Softaculous Auto. Это позволяет развернуть полноценный стек LAMP с поддержкой кэширования «быстрого» контента прямо в оперативной памяти.
✅ Поддерживаемые ОС: Red Hat версий 6.х, CentOS, CloudLinux.
✅ Минимальные системные требования: 32х ОС от 512 Мб ОЗУ/10Гб HDD; 64х от 1024 Мб ОЗУ/10Гб HDD.
Возможности CentOS Web Panel
- Возможность переключать версии PHP «в 1 клик».
- Одинаково удобно управлять сервером и развёрнутым на основе VDS веб-хостингом.
- Встроенные расширения для CSF Firewall позволяют самим справляться с простыми DDoS-атакам.
- MySQL/MariaDB+phpMyAdmin.
- Настройка SPF/DKIM.
- Стандартные решения почтового сервера (Postfix/Dovecot/roundcube).
- CloudLinux+CageFS;
- Управление DNS: FreeDNS, редактор шаблонов зон и диспетчер зон.
- Встроенный мониторинг VPS в реальном времени;
- Встроенный блокиратор спама (AmaVIS, ClamAV, OpenDKIM, RBL, SpamAssassin).
Virtualmin (Webmin)
Надежная контрольная панель для VPS с открытым кодом, являющаяся модулем серверной ПУ Webmin, основаной на Perl. Virtualmin позволяет управлять одновременно несколькими веб-хостингами через один интерфейс. Он работает только при условии предварительной установки Webmin.
Веб панель управления сервером распространяется в двух вариантах: бесплатная (Virtualmin GPL) и коммерческая про-версия (Virtualmin Pro). Преимущества ПУ заключаются в простом интерфейсе и системе двойной аутентификации.
✅ Поддерживаемые ОС: Ubuntu, Debian и Centos/RedHat.
✅ Минимальные требования: 110 МБ ОЗУ и 512 МБ дискового пространства.
Возможности Virtualmin
- Контроль домена: гибкие учетные записи домена, управление почтовым доменом, БД.
- Электронная почта: RoundCube и Squirrelmail.
- Возможность автоматически обрабатывать зоны DNS, псевдонимы электронной почты и виртуальных хостов Apache.
- Безопасность: двухфакторная аутентификация, сертификация, мощная защита, ограничение доступа по IP-адресам.
- Резервное копирование и интеграция с облаком: корзина Amazon S3, шифрование бекапов, резервные VDS, восстановление резервных копий, бекап по расписанию.
- Базы данных: PHPMyAdmin и PHPPgAdmin, MySQL, PostgreSQL
- Модульная установка свыше 100 приложений: CMS, CRM, форумы, коммерция, отслеживание проблем, сообщество и т. д. В бесплатной версии доступно только 7 из них.
- Отдельно настраиваемый клиент электронной почты Usermin.
ZPanel
Бесплатная панель управления веб-сервером на основе языка PHP. Отличается простой инсталляцией и возможностью расширения функционала при помощи подключаемых модулей. ZPanel совместима с большинством дистрибутивов на ядре Unix/Linux, а также Windows и MacOSX.
✅ Поддерживаемые ОС: Ubuntu, CentOS, Free-BSD.
✅ Минимальные требования: 512 МБ ОЗУ и 1024 МБ дискового пространства.
Возможности ZPanel
- Веб-сервер Apache + PHP.
- Интеграция с MySQL, hMailServer (Windows), Posfix (Linux), Filezilla (Windows), ProFTPd (Linux).
- Сервисы для управления БД и FTP.
- Система управления DNS.
- Лимитирование услуг.
- Создание бекапов.
- Интеграция биллинговой системы.
- Поддержка cron.
- Защита каталогов.
- Мониторинг нагрузки на сервер.
Вывод
Администраторам необходимо тщательно подбирать контрольную панель для управления виртуальным сервером и веб-хостингом на его основе. Выбор оптимального варианта будет зависеть от потребностей конечного ресурса, поэтому важно изучить технические параметры ПУ, перед установкой.
Начать можно с бесплатной панели управления. В дальнейшем, когда из-за масштабирования проекта её функционал станет недостаточным, рекомендуется перейти на платный вариант с расширенными возможностями.
Любая панель управления хостингом будет работать со 100% эффективностью только на базе надёжного сервера. VPS от Eternalhost — мощная и безопасная платформа с возможностью гибкой настройки под параметры любого хостинга.
Оцените материал:
[Всего голосов: 3 Средний: 3.7/5]
Настройка Debian после установки
Debian не может похвастаться своей работоспособностью сразу же после установки. Это та операционная система, которую необходимо сначала настроить, и в этой статье будет рассказано, как это сделать.
Читайте также: Популярные дистрибутивы Linux
Настройка Debian
Из-за множества вариантов установки Debian (сетевая, базовая, с DVD-носителей) универсальное руководство составить не получится, поэтому некоторые этапы инструкции будут относиться к определенным версиям операционной системы.
Шаг 1: Обновление системы
Первое, что необходимо сделать после установки системы, это обновить ее. Но это более актуально для пользователей, которые устанавливали Debian с DVD-носителей. Если вы использовали сетевой метод, то все свежие обновления уже будут установлены в ОС.
- Откройте «Терминал», прописав его название в меню системы и нажав по соответствующему значку.
- Получите права суперпользователя, выполнив команду:
su
и введя пароль, указанный при установке системы.
Примечание: при вводе пароля он никак не отображается.
- Поочередно выполните две команды:
apt-get update
apt-get upgrade - Перезагрузите компьютер, чтобы закончить обновление системы. Для этого можно в «Терминале» выполнить следующую команду:
reboot
После того как компьютер снова запустится, система будет уже обновлена, поэтому можно переходить к следующему этапу настройки.
Читайте также: Обновляем Debian 8 до 9 версии
Шаг 2: Установка SUDO
sudo — утилита, созданная с целью наделения отдельных пользователей правами администратора. Как можно было заметить, при обновлении системы необходимо было входить в профиль root, что требует лишних временных затрат. Если использовать sudo, это действие можно пропустить.
Для того чтобы инсталлировать в систему утилиту sudo, необходимо, находясь в профиле root, выполнить команду:
apt-get install sudo
Утилита sudo установлена, но для ее использования нужно получить права. Проще это сделать, выполнив следующее:
adduser UserName sudo
Где вместо «UserName» надо ввести имя пользователя, которому присваиваются права.
В завершение перезагрузите систему, чтобы изменения вступили в силу.
Читайте также: Часто используемые команды в «Терминале» Linux
Шаг: 3: Настройка репозиториев
После установки Debian репозитории настроены только для получения программного обеспечения с открытым кодом, но этого недостаточно, чтобы установить в систему программы и драйвера последней версии.
Настроить репозитории для получения проприетарного ПО можно двумя способами: используя программу с графическим интерфейсом и выполняя команды в «Терминале».
Software & Updates
Чтобы провести настройку репозиториев с помощью программы с графическим интерфейсом, сделайте следующее:
- Запустите Software & Updates из меню системы.
- На вкладке «Debian Software» поставьте галочки рядом с теми пунктами, где в скобках указано «main», «contrib» и «non-free».
- Из выпадающего списка «Загрузить с» выберите сервер, который расположен ближе всего.
- Нажмите кнопку «Закрыть».
После этого программа предложит вам обновить всю имеющуюся информацию о репозиториях — нажмите кнопку «Обновить», после чего дождитесь окончания процесса и приступайте к выполнению следующего шага.
Терминал
Если по какой-то причине вы не смогли осуществить настройку с помощью программы Software & Updates, то эту же задачу можно выполнить в «Терминале». Вот что нужно делать:
- Откройте файл, в котором находится список всех репозиториев. Для этого в статье будет использоваться текстовый редактор GEdit, вы же можете ввести в соответствующем месте команды другой.
sudo gedit /etc/apt/sources.list
- В открывшемся редакторе добавьте ко всем строкам переменные «main», «contrib» и «non-free».
- Нажмите кнопку «Сохранить».
- Закройте редактор.
Читайте также: Популярные текстовые редакторы для Linux
По итогу ваш файл должен выглядеть примерно так:
Теперь, чтобы изменения вступили в силу, обновите список пакетов командой:
sudo apt-get update
Шаг 4: Добавление Backports
Продолжая тему репозиториев, рекомендуется добавить в список Backports. В нем содержатся самые свежие версии программного обеспечения. Этот пакет считается тестовым, но все ПО, которое в нем находится, стабильное. Не попало оно в официальные репозитории только по той причине, что было создано после релиза. Поэтому, если вы хотите обновить драйвера, ядро и другое ПО до последней версии, вам необходимо подключить репозиторий Backports.
Сделать это можно как с помощью Software & Updates, так и «Терминала». Рассмотрим оба способа подробнее.
Software & Updates
Для добавления репозитория Backports с помощью Software & Updates вам необходимо:
- Запустить программу.
- Перейти во вкладку «Other Software».
- Нажать кнопку «Add…».
- В строку APT ввести:
deb http://mirror.yandex.ru/debian stretch-backports main contrib non-free
(для Debian 9)или
deb http://mirror.yandex.ru/debian jessie-backports main contrib non-free
(для Debian 8) - Нажать кнопку «Добавить источник».
После проделанных действий закройте окно программы, дав разрешение на обновление данных.
Терминал
В «Терминале» для добавления репозитория Backports необходимо внести данные в файл «sources.list». Для этого:
- Откройте нужный файл:
sudo gedit /etc/apt/sources.list
- В нем установите курсор в конце последней строки и, нажав дважды клавишу Enter, сделайте отступ, после чего впишите следующие строки:
deb http://mirror.yandex.ru/debian stretch-backports main contrib non-free
(для Debian 9)
deb-src http://mirror.yandex.ru/debian stretch-backports main contrib non-freeили
deb http://mirror.yandex.ru/debian jessie-backports main contrib non-free
(для Debian 8)
deb-src http://mirror.yandex.ru/debian jessie-backports main contrib non-free - Нажмите кнопку «Сохранить».
- Закройте текстовый редактор.
Чтобы применить все внесенные параметры, обновите список пакетов:
sudo apt-get update
Теперь, для инсталляции в систему программного обеспечения из этого репозитория, используйте следующую команду:
sudo apt-get install -t stretch-backports [package name]
(для Debian 9)
или
sudo apt-get install -t jessie-backports [package name]
(для Debian 8)
Где вместо «[package name]» впишите наименование пакета, который хотите установить.
Шаг 5: Установка шрифтов
Немаловажным элементом системы являются и шрифты. В Debian их предустановлено очень мало, поэтому пользователям, которые часто работают в текстовых редакторах или с изображениями в программе GIMP, обязательно нужно пополнить список уже имеющихся шрифтов. Помимо прочего, программа Wine не сможет корректно работать без них.
Для установки шрифтов, использующихся в Windows, вам нужно выполнить следующую команду:
sudo apt-get install ttf-freefont ttf-mscorefonts-installer
Добавить можно также шрифты из набора noto:
sudo apt-get install fonts-noto
Вы можете устанавливать и другие шрифты, просто ища их в интернете и перемещая в папку «.fonts», что находится в корне системы. Если этой папки у вас нет, то создайте ее самостоятельно.
Шаг 6: Настройка сглаживания шрифтов
Установив Debian, пользователь может наблюдать плохое сглаживание системных шрифтов. Эта проблема решается довольно просто — нужно создать специальный конфигурационный файл. Вот как это делается:
- В «Терминале» перейдите в директорию «/etc/fonts/». Для этого выполните:
cd /etc/fonts/
- Создайте новый файл с именем «local.conf»:
sudo gedit local.conf
- В открывшийся редактор введите следующий текст:
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<match target="font">
<edit mode="assign" name="rgba">
<const>rgb</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit mode="assign" name="hintstyle">
<const>hintslight</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="lcdfilter">
<const>lcddefault</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="autohint">
<bool>false</bool>
</edit>
</match>
<dir>~/.fonts</dir>
</fontconfig> - Нажмите кнопку «Сохранить» и закройте редактор.
После этого во всей системе шрифты будут иметь нормальное сглаживание.
Шаг 7: Отключение звука системного динамика
Эту настройку необходимо проводить не всем пользователям, а только тем, кто слышит характерный звук из своего системного блока. Дело в том, что в некоторых сборках этот параметр не отключен. Чтобы исправить этот недочет, вам необходимо:
- Открыть конфигурационный файл «fbdev-blacklist.conf»:
sudo gedit /etc/modprobe.d/fbdev-blacklist.conf
- В самом конце прописать следующую строку:
blacklist pcspkr
- Сохранить изменения и закрыть редактор.
Только что мы занесли модуль «pcspkr», который отвечает за звук системного динамика, в черный список, соответственно, проблема устранена.
Шаг 8: Установка кодеков
В только установленной системе Debian отсутствуют мультимедийные кодеки, это связано с их проприетарностью. Из-за этого пользователь не сможет взаимодействовать со многими форматами аудио и видео. Чтобы исправить ситуацию, необходимо их установить. Для этого:
- Выполните команду:
sudo apt-get install libavcodec-extra57 ffmpeg
В процессе установки вам необходимо будет подтвердить действие, набрав на клавиатуре символ «Д» и нажав Enter.
- Теперь нужно установить дополнительные кодеки, но они находятся в другом репозитории, поэтому его нужно предварительно добавить в систему. Для этого выполните поочередно три команды:
su
(для Debian 9)
echo "# Debian Multimedia
deb ftp://ftp.deb-multimedia.org stretch main non-free" > '/etc/apt/sources.list.d/deb-multimedia.list'или
su
(для Debian 8)
echo "# Debian Multimedia
deb ftp://ftp.deb-multimedia.org jessie main non-free" > '/etc/apt/sources.list.d/deb-multimedia.list' - Обновите репозитории:
apt update
В выдаче можно заметить, что произошла ошибка — система не может получит доступ к GPG-ключу репозитория.
часть 5. hostname, файл hosts, ptr и вот это вот всё. « Debian.pro
Эта статья — часть Большого Мануала по настройке lamp-сервера на debian.
Предыдущая статья цикла — Настраиваем openssh-server.
Следующая статья цикла — Настраиваем locales и клавиатуру для ipmi/vnc-консолей
Сегодня мы поговорим про одну из самых важных вещей при настройке сервера. Был такой анекдот (дословно не помню):
— чего так сильно задумался?
— да hostname серверу выбираю.
— ну ты прям как имя ребенку выбираешь, час уже сидишь.
— ну ты чо. Ребенку можно имя сменить потом, а вот hostname у сервера хрен сменишь.
И действительно — оооочень много геморроя в моей жизни (а особенно в районе почты) было связано с тем, что предыдущие админы/владельцы сервера/рандомные фрилансеры не понимали важности fqdn. Для чего оно вообще нужно? Сервер при обращении к другим серверам будет «представляться» и называть своё «имя». Это имя должно быть корректным (и у нас должны быть документы, бгыгы, чтобы полиция не арестовала). Шутки шутками, но hostname очень важен во «взаимоотношениях» почтовых серверов — если вы пропустите эту статью, то письма с сервера будут улетать в спам почти на всех почтарях.
Много софта тоже завязан на fqdn и будет работать не совсем корректно, если ваш сервер отвечает херню в ответ на команду hostname -f.
Что такое fqdn в принципе? Это доменное имя (да, обычное доменное имя, вроде www.debian.pro). Можно почитать википедию. Я вам лучше покажу на пальцах на примере корректно настроенного сервера, так будет понятнее.
Возьмём для примера корректно настроенный сервер.
Заходим на него по ssh и проверяем hostname:
root@server:~# hostname -f
messer.qs.biz
В ответ на эту команду мы должны получить именно fqdn сервера, а не короткое имя (не messer, например).
Далее узнаем «дефолтный» IP сервера (если у вас всего один IP на сервере — то можете просто скопировать его из письма).
Вообще нужно иметь в виду, что все исходящие коннекты с сервера (если вы не настраивали маршрутизацию локально) будут проходить с одного IP-адреса, вопреки всяческой мифологии.
Собственно, быстрее всего узнать исходящий IP сервера примерно так:
root@server:~# curl ifconfig.me
46.4.251.93
Или так:
root@server:~# curl ip.vlad.pro
46.4.251.93
Запоминаем — с этого адреса (если вы не предпринимали ничего для того, что было по другому) сервер будет открывать все исходящие коннекты — например, обращаться к другим сайтам курлом из php-кода (даже в том случае, если ваш сайт «смотрит» А-записью во второй-третий-десятый IP сервера).
Теперь проверим, что у этого IP есть PTR-запись:
root@server:~# host 46.4.251.93
93.251.4.46.in-addr.arpa domain name pointer messer.qs.biz.
И напоследок проверим, что мы не совсем сошли с ума и прописали прямую запись для нашего хоста в правильный IP:
root@server:~# host messer.qs.biz.
messer.qs.biz has address 46.4.251.93
Вообще всё это было присказка. Теперь начинается сама 5-я часть мануала.
Нам нужно сделать, чтобы в итоге все команды выше отдавали в ответ правильные данные.
Первым делом выберите fqdn для сервера. Обычно fqdn — это домен третьего уровня, на котором «не будет сайта». Проще говоря, www.qs.biz — хреновый fqdn в перспективе (потому что www.qs.biz домен когда-нибудь захочет переехать на другой сервер), а вот messer.qs.biz — неплохое имя, вряд ли я когда-нибудь решу поднять там сайт.
Так же не очень хорошая идея делать fqdn второго уровня по той же причине (хотя если вам не лень регистрировать домен второго уровня только ради этого и вы точно не собираетесь на него вешать сайт — то милости просим).
Когда выбрали fqdn, прописываем прямую А-запись (и AAAA-запись, если есть ipv6) на IP сервера. Здесь я не возьмусь описывать, как именно прописать — регистраторов миллион, панелей управления DNS ещё больше. Если ваш домен делегирован на NS-ы регистратора, то можете подглядеть в инструкции Яндекс.ПДД — http://help.yandex.ru/pdd/add-domain/hoster-settings.xml , там для некоторых регистраторов есть инструкция с картинками.
Через пару часов после того, как вы прописали прямую запись (или сколько у вас там TTL), можно прописывать PTR-запись (или по-другому — обратную запись). Как это сделать, опять же, нужно уточнить в саппорте своего хостера. Могу только отметить, что у PTR-записи на конце должна быть точка, если будете прописывать сами в веб-морде.
Ну и после всего этого остаётся настроить hostname сервера. Для этого нужно поправить 2 файла.
/etc/hostname:
messer.qs.biz
То есть пишем fqdn без точки на конце.
В файл /etc/hosts нужно добавить такую строку:
46.4.251.93 messer.qs.biz messer
Обратите внимание на порядок столбцов в строке — сначала ip, потом fqdn целиком, потом короткое имя хоста (до первой точки).
И в конце нужно запустить команду:
root@server:~# /etc/init.d/hostname start
Для убунты 14.04 и дебиана 8-го (и новее):
root@server:~# service hostname start
На этом всё. Остаётся только дождаться, когда PTR и A записи созданные ранее разъедутся по всем резолверам (обычно — TTL*2) и можно начинать использовать сервер.
Пишем свой unit для SystemD « Debian.pro
В некоторых следующих статьях помимо прочего придется запускать некоторые сервисы без «изкоробочного» init-скрипта или юнита. В 2018 году мне уже пришлось смириться с победой systemd и показывать в тех статьях init-скрипты я уже не буду. Но и рассказывать в каждой статье всю последовательность действий мне будет лень. Поэтому здесь я расскажу, что делать с unit-ом помимо создания, собственно, текстового файла.
Правда, сначала я немного погружусь в воспоминания и включу ворчалку. Мне очень нравился upstart после SysV. Писать простенький конфиг в 7 строк вместо развесистых init-скриптов — лафа. Хотя иногда и требуется бОльшая гибкость, чем в upstart, или unit-ах, но это редкость. Systemd был бы очень клёвой штукой, хорошим продолжением после upstart, если очкарик не тащил бы в него всё подряд. Основные проблемы systemd связаны не с тем, как он запускает сервисы, а с тем, что внутри systemd вконопачены хреновенький dns, ntp и куча чего-то там ещё. На этом холивар предлагаю закончить — писать unit-ы проще, чем init.d (хоть они и не настолько гибкие).
Какой unit мы напишем?
- Мы запустим программу /usr/bin/holycrap
- Она будет выполняться в бесконечном цикле — умерла, запустилась заново (в том и смысл unit-ов основной), пока не скажешь stop. Ну то есть проще говоря, у нас из коробки есть простенький watchdog
- программу запустим от отдельного пользователя и группы
- передадим переменную окружения прямо из unit-а
Очень важно понимать, что наша программа должна работать именно в foreground (проще говоря — не отдавать консоль обратно сразу после запуска), дабы не мучаться с ExecStartPre, ExecReload и прочими. Если же программа будет сразу уходить в background, то unit из данного примера будет бесконечно перезапускать её.
Поехали. Создаём файл /etc/systemd/system/holycrap.service
# открываем секцию Unit
[Unit]
# Описание Unit-а (видно в service status). Ну вдруг забудем, что это)
Description=Some usefull text
# Наш сервис будет запускаться после того, как поднимется сеть:
After=network.target
# открываем секцию [Service] — здесь будет описано всё про нашу программу.
[Service]
# указываем, что наш сервис — обычная программа, работающая в foreground
Type=simple
# указываем путь до исполняемого файла:
ExecStart=/usr/bin/holycrap
# указываем WorkingDirectory. По сути, эта настройка эмулирует команду «cd /home/holycrap» перед запуском самого бинаря (нужно для некоторого софта, например nodejs).
WorkingDirectory=/home/holycrap
# указываем параметры для watchdog:
# указываем, что бинарь нужно запустить снова, если он умрет
Restart=on-failure
# указываем, что перед повторным запуском нужно подождать 10 секунд.
RestartSec=10s
# указываем пользователя и группу, от имени которых будет запускаться процесс:
User=holycrap
Group=holycrap
# задаём Umask для процесса и его потомков.
# полезно, если хочется, чтобы все файлы данным процессом создавались с chmod 777 (тогда укажите umask 000), или chmod 700 (тогда umask 077). Не забудьте, что umask — инвертированный chmod.
UMask=077
# ну и передадим переменную окружения PORT=9000, местами бывает удобно:
Environment=PORT=9000
# указываем, что наш сервис нужно запускать в multi-user runlevel (оно тут строго говоря для того, чтобы не запускалось в single mode — так-то нам куда важнее network.target, указанный выше
[Install]
WantedBy=multi-user.target
То же самое, но «удобное для копипасты». Только учтите, что здесь почти нет обязательных параметров (в самых простых случаях я оставляю только Description=, After=, ExecStart= и WantedBy=
[Unit]
Description=Some usefull text
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/holycrap
WorkingDirectory=/home/holycrap
Restart=on-failure
RestartSec=10s
User=holycrap
Group=holycrap
UMask=077
Environment=PORT=9000
[Install]
WantedBy=multi-user.target
В названии файла /etc/systemd/system/holycrap.service важны 2 вещи. Во-первых, файлы без расширения .service будут игнорироваться. Во-вторых, holycrap в данном случае будет названием нашего сервиса (именно его мы будем передавать командам service или systemctl).
Файл мы создали, теперь нужно «применить» его. Учтите, что эту команду нужно выполнять после любого изменения .service-файла, иначе systemd будет использовать старый unit (ну вообще он чё-то там может поругаться, что unit изменился и вообще ничего не делать).
root@server:~# systemctl daemon-reload
Теперь мы можем управлять нашим сервисом (ну и он уже в «автозагрузке», если что):
root@server:~# service holycrap start|stop|restart
Неплохо было бы посмотреть, что наш бинарь понаписал в STDOUT/STDERR (ведь с первого раза по традиции ничего не заработает). Вообще логи с моей точки зрения — больное место systemd. Не потому что плохо работают, а потому что всю эту логику придумал больной на голову человек.
В systemd 236 появились, конечно, параметры StandardOutput=file:/path/to/file и StandardError= (видимо, больной человек голову вылечил и прислушался к пользователям), но проблема тут ещё и в том, что ни в debian 8, ни в debian 9 эти параметры работать не будут (версия старая). Поэтому придется понять логику этого психа.
Посмотреть что-то как-то из STDOUT и STDERR бинаря после запуска сервиса можно так:
root@server:~# service holycrap status
Только вот это будет именно «что-то» и «как-то». Даже длинную строку поскроллить вправо не получится. Зато запомнить легко, ну а там — вдруг повезет.
Предполагается, что каждый пользователь должен уметь в journalctl. Кстати, эта пежня считает себя слишком гордой, чтобы использовать системный pager (less например), поэтому вы будете охуевать, пытаясь посмотреть большой лог, если не сделаете хотя бы | grep (ну или сразу |less).
Посмотрим все логи для нашего unit-а (там, кстати, пишут не только std{err,out}, но и сообщения от самого systemd, если он не смог распарсить .service-файл, например:
root@server:~# journalctl -u holycrap
Если логов слишком дохуя, попробуем посмотреть только с момента загрузки системы (тоже именно для нашего сервиса) — опция -b:
root@server:~# journalctl -b -u holycrap
Проблемы начинаются, когда хочется посмотреть лог для текущего старта (не, ну можно tail -20 и глазами) — вот тут и всплывает инопланетная логика очкарика и его последователей. Так, блять, нельзя О_о. Ну или оно настолько неочевидно в мане и гугле, что за год я так и не смог найти.
Если мы знаем pid процесса, то в целом можно посмотреть лог по пиду. Если он один, мать его… Ах да, смотрите на чудесную инопланетную логику в действии. Чтобы посмотреть логи по пиду, нужно использовать journalctl вот с таким параметром (9999 — сам pid):
root@server:~# journalctl _PID=9999
Я всё же привык к опциям, которые начинаются с дефиса или двух… Может быть с буквы (если это позиционный параметр). Но чтобы с _ ?
Можно посмотреть лог за последние несколько минут (это, кстати, удобно, если не обращать внимания на нашу текущую цель). Если вы помните, когда перезапускали сервис — поможет.
root@server:~# journalctl -b -u holycrap —since=»25 min ago»
Можно запустить journalctl в режиме «tail -f» (опять же — для сервиса holycrap) и порестартить сервис в соседней консоли:
root@server:~# journalctl -f -u holycrap
Весело, пздц =) Но сервисы под systemd работают и ладно — я уже как-то привык, если ЁНХ происходит, делать stop сервису и запускать программу руками.
Ну а чтобы разобраться в происходящем, перечислю ваших лучших друзей — man systemd.exec, man systemd.unit, man systemd.service и journalctl —help
А, ну и да, ещё из области инопланетной логики. Не проверяйте exit code у service/systemctl НИКОГДА. Если service выполнился успешно (дескать, вы не попытались запустить сервис с очепяткой), то exit будет нулём, даже если сама программа внутри не запустилась (нет бинаря, или бинарь сделал exit 1).
Команда | Описание |
---|---|
Системная информация | |
arch | отобразить архитектуру компьютера |
uname -m | |
uname -r | отобразить используемую версию ядра |
dmidecode -q | показать аппаратные системные компоненты — (SMBIOS / DMI) |
hdparm -i /dev/hda | вывести характеристики жесткого диска |
hdparm -tT /dev/sda | протестировать производительность чтения данных с жесткого диска |
cat /proc/cpuinfo | отобразить информацию о процессоре |
cat /proc/interrupts | показать прерывания |
cat /proc/meminfo | проверить использование памяти |
cat /proc/swaps | показать файл(ы) подкачки |
cat /proc/version | вывести версию ядра |
cat /proc/net/dev | показать сетевые интерфейсы и статистику по ним |
cat /proc/mounts | отобразить смонтированные файловые системы |
lspci -tv | показать в виде дерева PCI устройства |
lsusb -tv | показать в виде дерева USB устройства |
date | вывести системную дату |
cal 2007 | вывести таблицу-календарь 2007-го года |
date 041217002007.00 | установить системные дату и время ММДДЧЧммГГГГ.СС (МесяцДеньЧасМинутыГод.Секунды) |
clock -w | сохранить системное время в BIOS |
Остановка системы | |
shutdown -h now | Остановить систему |
init 0 | |
telinit 0 | |
shutdown -h hours:minutes & | запланировать остановку системы на указанное время |
shutdown -c | отменить запланированную по расписанию остановку системы |
shutdown -r now | перегрузить систему |
reboot | |
logout | выйти из системы |
Файлы и директории | |
cd /home | перейти в директорию ‘/home’ |
cd .. | перейти в директорию уровнем выше |
cd ../.. | перейти в директорию двумя уровнями выше |
cd | перейти в домашнюю директорию |
cd ~user | перейти в домашнюю директорию пользователя user |
cd — | перейти в директорию, в которой находились до перехода в текущую директорию |
pwd | показать текущюю директорию |
ls | отобразить содержимое текущей директории |
ls -F | отобразить содержимое текущей директории с добавлением к именам символов, храктеризующих тип |
ls -l | показать детализированое представление файлов и директорий в текущей директории |
ls -a | показать скрытые файлы и директории в текущей директории |
ls *[0-9]* | показать файлы и директории содержащие в имени цифры |
tree | показать дерево файлов и директорий, начиная от корня (/) |
lstree | |
mkdir dir1 | создать директорию с именем ‘dir1’ |
mkdir dir1 dir2 | создать две директории одновременно |
mkdir -p /tmp/dir1/dir2 | создать дерево директорий |
rm -f file1 | удалить файл с именем ‘file1’ |
rmdir dir1 | удалить директорию с именем ‘dir1’ |
rm -rf dir1 | удалить директорию с именем ‘dir1’ и рекурсивно всё её содержимое |
rm -rf dir1 dir2 | удалить две директории и рекурсивно их содержимое |
mv dir1 new_dir | переименовать или переместить файл или директорию |
cp file1 file2 | сопировать файл file1 в файл file2 |
cp dir/* . | копировать все файлы директории dir в текущую директорию |
cp -a /tmp/dir1 . | копировать директорию dir1 со всем содержимым в текущую директорию |
cp -a dir1 dir2 | копировать директорию dir1 в директорию dir2 |
ln -s file1 lnk1 | создать символическую ссылку на файл или директорию |
ln file1 lnk1 | создать «жёсткую» (физическую) ссылку на файл или директорию |
touch -t 0712250000 fileditest | модифицировать дату и время создания файла, при его отсутствии, создать файл с указанными датой и временем (YYMMDDhhmm) |
Поиск файлов | |
find / -name file1 | найти файлы и директории с именем file1. Поиск начать с корня (/) |
find / -user user1 | найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/) |
find /home/user1 -name «*.bin» | Найти все файлы и директории, имена которых оканчиваются на ‘. bin’. Поиск начать с ‘/ home/user1’ |
find /usr/bin -type f -atime +100 | найти все файлы в ‘/usr/bin’, время последнего обращения к которым более 100 дней |
find /usr/bin -type f -mtime -10 | найти все файлы в ‘/usr/bin’, созданные или изменённые в течении последних 10 дней |
find / -name *.rpm -exec chmod 755 ‘{}’ ; | найти все фалы и директории, имена которых оканчиваются на ‘.rpm’, и изменить права доступа к ним |
find / -xdev -name «*.rpm» | найти все фалы и директории, имена которых оканчиваются на ‘.rpm’, игнорируя съёмные носители, такие как cdrom, floppy и т.п. |
locate «*.ps» | найти все файлы, сожержащие в имени ‘.ps’. Предварительно рекомендуется выполнить команду ‘updatedb’ |
whereis halt | показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу ‘halt’ |
which halt | отображает полный путь к файлу ‘halt’ |
Монтирование файловых систем | |
mount /dev/hda2 /mnt/hda2 | монтирует раздел ‘hda2’ в точку монтирования ‘/mnt/hda2’. Убедитесь в наличии директории-точки монтирования ‘/mnt/hda2’ |
umount /dev/hda2 | размонтирует раздел ‘hda2’. Перед выполнением, покиньте ‘/mnt/hda2’ |
fuser -km /mnt/hda2 | принудительное размонтирование раздела. Применяется в случае, когда раздел занят каким-либо пользователем |
umount -n /mnt/hda2 | выполнить размонитрование без занесения информации в /etc/mtab. Полезно когда файл имеет атрибуты «только чтение» или недостаточно места на диске |
mount /dev/fd0 /mnt/floppy | монтировать флоппи-диск |
mount /dev/cdrom /mnt/cdrom | монтировать CD или DVD |
mount /dev/hdc /mnt/cdrecorder | монтировать CD-R/CD-RW или DVD-R/DVD-RW(+-) |
mount -o loop file.iso /mnt/cdrom | смонтировать ISO-образ |
mount -t vfat /dev/hda5 /mnt/hda5 | монтировать файловую систему Windows FAT32 |
mount -t smbfs -o username=user,password=pass/ / winclient/ share / mnt/ share | монтировать сетевую файловую систему Windows (SMB/CIFS) |
mount -o bind /home/index.php?dn=userprg /var/ftp/user | «монтирует» директорию в директорию (binding). Доступна с версии ядра 2.4.0. Полезна, например, для предоставления содержимого пользовательской директории через ftp при работе ftp-сервера в «песочнице» (chroot), когда симлинки сделать невозможно. |
Дисковое пространство | |
df -h | отображает информацию о смонтированных разделах с отображением общего, доступного и используемого пространства (Прим.переводчика. ключ -h работает не во всех *nix системах) |
ls -lSr | more | выдаёт список файлов и директорий рекурсивно с сортировкой по возрастанию размера и позволяет осуществлять постраничный просмотр |
du -sh dir1 | подсчитывает и выводит размер, занимаемый директорией ‘dir1’(Прим.переводчика. ключ -h работает не во всех *nix системах) |
du -sk * | sort -rn | отображает размер и имена файлов и директорий, с соритровкой по размеру |
rpm -q -a - - qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n | показывает размер используемого дискового пространства, занимаемое файлами rpm-пакета, с сортировкой по размеру (fedora, redhat и т.п.) |
dpkg-query -W -f=’${Installed-Size;10}t${Package}n’ | sort -k1,1n | показывает размер используемого дискового пространства, занимаемое файлами deb-пакета, с сортировкой по размеру (ubuntu, debian т.п.) |
Пользователи и группы | |
groupadd group_name | создать новую группу с именем group_name |
groupdel group_name | удалить группу group_name |
groupmod -n new_group_name old_group_name | переименовать группу old_group_name в new_group_name |
useradd -c «Nome Cognome» -g admin -d /home/user1 -s /bin/bash user1 | создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell’а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognome |
useradd user1 | создать пользователя user1 |
userdel -r user1 | удалить пользователя user1 и его домашний каталог |
usermod -c «User FTP» -g system -d /ftp/user1 -s /bin/nologin user1 | изменить атрибуты пользователя |
passwd | сменить пароль |
passwd user1 | сменить пароль пользователя user1 (только root) |
chage -E 2005-12-31 user1 | установить дату окончания действия учётной записи пользователя user1 |
pwck | проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow |
grpck | проверяет корректность системных файлов учётных записей. Проверяется файл/etc/group |
newgrp [-] group_name | изменяет первичную группу текущего пользователя. Если указать «-«, ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd |
Выставление/изменение полномочий на файлы | |
ls -lh | просмотр полномочий на файлы и директории в текущей директории |
ls /tmp | pr -T5 -W$COLUMNS | вывести содержимое директории /tmp и разделить вывод на пять колонок |
chmod ugo+rwx directory1 | добавить полномочия на директорию directory1 ugo(User Group Other)+rwx(Read Write eXecute) — всем полные права. Аналогичное можно сделать таким образом «chmod 777 directory1» |
chmod go-rwx directory1 | отобрать у группы и всех остальных все полномочия на директорию directory1. |
chown user1 file1 | назначить владельцем файла file1 пользователя user1 |
chown -R user1 directory1 | назначить рекурсивно владельцем директории directory1 пользователя user1 |
chgrp group1 file1 | сменить группу-владельца файла file1 на group1 |
chown user1:group1 file1 | сменить владельца и группу владельца файла file1 |
find / -perm -u+s | найти, начиная от корня, все файлы с выставленным SUID |
chmod u+s /bin/binary_file | назначить SUID-бит файлу /bin/binary_file. Это даёт возможность любому пользователю запускать на выполнение файл с полномочиями владельца файла. |
chmod u-s /bin/binary_file | снять SUID-бит с файла /bin/binary_file. |
chmod g+s /home/public | назначить SGID-бит директории /home/public. |
chmod g-s /home/public | снять SGID-бит с директории /home/public. |
chmod o+t /home/public | назначить STIKY-бит директории /home/public. Позволяет удалять файлы только владельцам |
chmod o-t /home/public | снять STIKY-бит с директории /home/public |
Специальные атрибуты файлов | |
chattr +a file1 | позволить открывать файл на запись только в режиме добавления |
chattr +c file1 | позволяет ядру автоматически сжимать/разжимать содержимое файла. |
chattr +d file1 | указавет утилите dump игнорировать данный файл во время выполнения backup’а |
chattr +i file1 | делает файл недоступным для любых изменений: редактирование, удаление, перемещение, создание линков на него. |
chattr +s file1 | позволяет сделать удаление файла безопасным, т.е. выставленный атрибут s говорит о том, что при удалении файла, место, занимаемое файлом на диске заполняется нулями, что предотвращяет возможность восстановления данных. |
chattr +S file1 | указывает, что, при сохранении изменений, будет произведена синхронизация, как при выполнении команды sync |
chattr +u file1 | данный атрибут указывает, что при удалении файла содержимое его будет сохранено и при необходимости пользователь сможет его восстановить |
lsattr | показать атрибуты файлов |
Архивирование и сжатие файлов | |
bunzip2 file1.bz2 | разжимает файл ‘file1.gz’ |
gunzip file1.gz | |
gzip file1 | сжимает файл ‘file1’ |
bzip2 file1 | |
gzip -9 file1 | сжать файл file1 с максимальным сжатием |
rar a file1.rar test_file | создать rar-архив ‘file1.rar’ и включить в него файл test_file |
rar a file1.rar file1 file2 dir1 | создать rar-архив ‘file1.rar’ и включить в него file1, file2 и dir1 |
unrar x file1.rar | распаковать rar-архив |
tar -cvf archive.tar file1 | создать tar-архив archive.tar, содержащий файл file1 |
tar -cvf archive.tar file1 file2 dir1 | создать tar-архив archive.tar, содержащий файл file1, file2 и dir1 |
tar -tf archive.tar | показать содержимое архива |
tar -xvf archive.tar | распаковать архив |
tar -xvf archive.tar -C /tmp | распаковать архив в /tmp |
tar -cvfj archive.tar.bz2 dir1 | создать архив и сжать его с помощью bzip2(Прим.переводчика. ключ -j работает не во всех *nix системах) |
tar -xvfj archive.tar.bz2 | разжать архив и распаковать его(Прим.переводчика. ключ -j работает не во всех *nix системах) |
tar -cvfz archive.tar.gz dir1 | создать архив и сжать его с помощью gzip |
tar -xvfz archive.tar.gz | разжать архив и распаковать его |
zip file1.zip file1 | создать сжатый zip-архив |
zip -r file1.zip file1 file2 dir1 | создать сжатый zip-архив и со включением в него нескольких файлов и/или директорий |
unzip file1.zip | разжать и распаковать zip-архив |
RPM пакеты (Fedora, Red Hat и тому подобное) | |
rpm -ivh package.rpm | установить пакет с выводом сообщений и прогресс-бара |
rpm -ivh - - nodeps package.rpm | установить пакет с выводом сообщений и прогресс-бара без контроля зависимостей |
rpm -U package.rpm | обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен |
rpm -F package.rpm | обновить пакет только если он установлен |
rpm -e package_name.rpm | удалить пакет |
rpm -qa | отобразить список всех пакетов, установленных в системе |
rpm -qa | grep httpd | среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени «httpd» |
rpm -qi package_name | вывести информацию о конкрентном пакете |
rpm -qg «System Environment/Daemons» | отобразить пакеты входящие в группу пакетов |
rpm -ql package_name | вывести список файлов, входящих в пакет |
rpm -qc package_name | вывести список конфигурационных файлов, входящих в пакет |
rpm -q package_name - - whatrequires | вывести список пакетов, необходимых для установки конкретного пакета по зависимостям |
rpm -q package_name - - whatprovides | show capability provided by a rpm package |
rpm -q package_name - - scripts | отобразит скрипты, запускаемые при установке/удалении пакета |
rpm -q package_name - - changelog | вывести историю ревизий пакета |
rpm -qf /etc/httpd/conf/httpd.conf | проверить какому пакету принадлежит указанный файл. Указывать следует полный путь и имя файла. |
rpm -qp package.rpm -l | отображает список файлов, входящих в пакет, но ещё не установленных в систему |
rpm - - import /media/cdrom/RPM-GPG-KEY | ипортировать публичный ключ цифровой подписи |
rpm - - checksig package.rpm | проверит подпись пакета |
rpm -qa gpg-pubkey | проверить целостность установленного содержимого пакета |
rpm -V package_name | проверить размер, полномочия, тип, владельца, группу, MD5-сумму и дату последнего изменеия пакета |
rpm -Va | проверить содержимое всех пакеты установленные в систему. Выполняйте с осторожностью! |
rpm -Vp package.rpm | проверить пакет, который ещё не установлен в систему |
rpm2cpio package.rpm | cpio - - extract - - make-directories *bin* | извлечь из пакета файлы содержащие в своём имени bin |
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm | установить пакет, собранный из исходных кодов |
rpmbuild - - rebuild package_name.src.rpm | собрать пакет из исходных кодов |
YUM — средство обновления пакетов(Fedora, RedHat и тому подобное) | |
yum install package_name | закачать и установать пакет |
yum update | обновить все пакеты, установленные в систему |
yum update package_name | обновить пакет |
yum remove package_name | удалить пакет |
yum list | вывести список всех пакетов, установленных в систему |
yum search package_name | найти пакет в репозитории |
yum clean packages | очисть rpm-кэш, удалив закачанные пакеты |
yum clean headers | удалить все заголовки файлов, которые система использует для разрешения зависимостей |
yum clean all | очисть rpm-кэш, удалив закачанные пакеты и заголовки |
DEB пакеты (Debian, Ubuntu и тому подобное) | |
dpkg -i package.deb | установить / обновить пакет |
dpkg -r package_name | удалить пакет из системы |
dpkg -l | показать все пакеты, установленные в систему |
dpkg -l | grep httpd | среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени «httpd» |
dpkg -s package_name | отобразить инфрмацию о конкретном пакете |
dpkg -L package_name | вывести список файлов, входящих в пакет, установленный в систему |
dpkg - - contents package.deb | отобразить список файлов, входящих в пакет, который ешё не установлен в систему |
dpkg -S /bin/ping | найти пакет, в который входит указанный файл. |
APT — средство управление пакетами (Debian, Ubuntu и тому подобное) | |
apt-get install package_name | установить / обновить пакет |
apt-cdrom install package_name | установить / обновить пакет с cdrom’а |
apt-get update | получить обновлённые списки пакетов |
apt-get upgrade | обновить пакеты, установленные в систему |
apt-get remove package_name | удалить пакет, установленный в систему с сохранением файлов конфигурации |
apt-get purge package_name | удалить пакет, установленный в систему с удалением файлов конфигурации |
apt-get check | проверить целостность зависимостей |
apt-get clean | удалить загруженные архивные файлы пакетов |
apt-get autoclean | удалить старые загруженные архивные файлы пакетов |
Просмотр содержимого файлов | |
cat file1 | вывести содержимое файла file1 на стандартное устройсво вывода |
tac file1 | вывести содержимое файла file1 на стандартное устройсво вывода в обратном порядке (последняя строка становиться первой и т.д.) |
more file1 | постраничный вывод содержимого файла file1 на стандартное устройство вывода |
less file1 | постраничный вывод содержимого файла file1 на стандартное устройство вывода, но с возможностью пролистывания в обе стороны (вверх-вниз), поиска по содержимому и т.п. |
head -2 file1 | вывести первые две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк |
tail -2 file1 | вывести последние две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк |
tail -f /var/log/messages | выводить содержимое файла /var/log/messages на стандартное устройство вывода по мере появления в нём текста. |
Манипуляции с текстом | |
cat file | grep -i «Criteria» > result.txt | общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый |
cat file | grep -i «Criteria» » result.txt | общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в существующий файл. Если файл не существует, он будет создан |
grep Aug /var/log/messages |
Локализация Debian | Небольшой Блог Системного Администратора
Устанавливаем русскую локализацию дистрибутива:
1. Выполнив
locale
убеждаемся что отсутствует русский язык
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
Редактируем файл /etc/default/locale
vi /etc/default/locale
- Внимание: неправильное содержимое файла, на ОС Ubuntu приводит к невозможности загрузки ОС.
приводим его к такому виду:
LANG="ru_RU.UTF-8"
после чего запускаем:
locale-gen
Аналогичный эфект будет, если запустить мастера и выбрать из всего списка нужную локаль:
dpkg-reconfigure locales
После перезагрузки, в консоли SSH будет русский язык, но в консоли самого сервера возможно будут кривые символы за место букв. Для исправления этого, необходимо сменить шрифт консоли. В файле /etc/default/console-setup меняем:
CODESET="Lat15"
на:
CODESET="CyrSlav"
2. Если вышеуказанные способы не помогли, получить русский язык в консоли можно следующим образом:
Устанавливаем пакет русского языка для консоли:
apt-get install console-cyrillic
Выполняем настройку языкового пакета:
dpkg-reconfigure console-cyrillic
На вопросы мастера отвечаем следующими ответами:
What virtual consoles do you use? --> /dev/tty[1-6]
Choose the keyboard layout --> Russian
Toggling between Cyrillic and Latin characters --> Caps Lock
Switching temporarily between Cyrillic and Latin characters --> No temporary switch
Choose a font for the console. --> UniCyr
What is your favourite font size? --> 14
What is your encoding? --> UNICODE
Do you want to setup Cyrillic on the console at boot-time? --> Yes
После перезагрузки Вас будет радовать родной язык консоли. Ах да, не забывайте что используете кодировку UTF-8, когда подключаетесь к серверу спомощью Putty. А то получите кучу непонятных иероглифов.
VN:F [1.9.22_1171]
Рейтинг: 8.9/10 (8 голоса(ов))
Локализация Debian, 8.9 out of 10 based on 8 ratings
LAMP в Debian 8 — Руководства и инструкции по работе с
Что такое ЛАМПА?
LAMP — это обычный веб-стек, который расшифровывается как Linux, Apache, MySQL и PHP. Он используется для подготовки серверов для размещения веб-контента.
- Чтобы проверить короткое имя хоста, используйте следующую команду:
имя хоста
- Чтобы проверить ваше полное доменное имя (полное доменное имя), используйте следующую команду:
имя хоста -f
- Для обновления репозиториев и пакетов вашего экземпляра запустите:
sudo apt-get update && sudo apt-get upgrade
Веб-сервер Apache
Установка и настройка
- Для установки Apache 2.4 пробег:
sudo apt-get install apache2
- Отредактируйте основной файл конфигурации Apache, чтобы отключить параметр KeepAlive.
Файл: /etc/apache2/apache2.conf
KeepAlive Off
- Для изменения значений в соответствии с вашими требованиями откройте /etc/apache2/mods-available/mpm_prefork.conf.
Следующие конфигурации предназначены для инстанса 2 ГБ:
Файл : / etc / apache2 / mods-available / mpm_prefork.conf
# предварительная вилка MPM # StartServers: количество процессов сервера для запуска # MinSpareServers: минимальное количество серверных процессов, которые остаются резервными # MaxSpareServers: максимальное количество серверных процессов, которые остаются резервными # MaxRequestWorkers: максимальное количество серверных процессов, разрешенных для запуска # MaxConnectionsPerChild: максимальное количество запросов, обслуживаемых серверным процессомStartServers 4 MinSpareServers 20 MaxSpareServers 40 MaxRequestWorkers 200 MaxConnectionsPerChild 4500 # vim: syntax = apache ts = 4 sw = 4 sts = 4 sr noet
- В Debian 8 модуль событий должен быть отключен, поскольку он включен по умолчанию.
судо a2dismod mpm_event sudo a2enmod mpm_prefork
- Перезапустите Apache:
sudo systemctl перезапустить apache2
Виртуальные хосты на основе имени конфигурации
У вас может быть столько файлов виртуального хоста, сколько необходимо для поддержки нескольких доменов, размещенных в экземпляре.
- Создавайте новые каталоги для своих веб-сайтов и журналы веб-сайтов.
судо mkdir -p /var/www/html/example.com/public_html sudo mkdir / var / www / html /.com / журналы
Повторите процесс, если вы размещаете несколько веб-сайтов.
- Создайте файл
.com.conf в / etc / apache2 / sites-available.
Файл : /etc/apache2/sites-available/
ServerAdmin веб-мастер @ .com ServerName .com ServerAlias www. .com DocumentRoot / var / www / html / .ru / public_html / ErrorLog /var/www/html/ .com/logs/error.log CustomLog /var/www/html/ .com/logs/access.log вместе
Повторите этот процесс, если вы размещаете несколько доменов.
Файл : /etc/apache2/sites-available/
ServerAdmin веб-мастер @ .org ServerName .org ServerAlias www. .org DocumentRoot /var/www/html/ .org/public_html/ ErrorLog /var/www/html/ .org/logs/error.log CustomLog /var/www/html/ .org/logs/access.log вместе
- Свяжите файл виртуальных хостов из каталога с доступными сайтами с каталогом с поддержкой сайтов.
sudo a2ensite <имя вашего домена> .com.conf sudo a2ensite <имя вашего домена>.org.conf
Примечание: Чтобы отключить сайт
sudo a2dissite <имя вашего домена> .com.conf
- Перезапустите Apache:
sudo systemctl перезапустить apache2
MySQL
Установка и настройка
- Для установки пакета MySQL запустите:
sudo yum установить mysql-server
- Для безопасной установки MySQL запустите:
mysql_secure_installation
Создание базы данных MySQL
- Вход в MySQL:
mysql -u корень -p
- Создать базу данных и пользователя:
создать базу данных tableName; предоставить все на tableName.* на «имя пользователя», идентифицируемое «паролем»;
- Выход из MySQL:
выйти из
PHP
Установка и настройка
- Для установки PHP5 и репозитория расширений и приложений PHP:
sudo apt-get install php5 php-pear
2. Отредактируйте /etc/php5/apache2/php.ini и измените следующие значения.
Следующие конфигурации предназначены для инстанса 2 ГБ:
Файл: / etc / php5 / apache2 / php.ini
error_reporting = E_COMPILE_ERROR | E_RECOVERABLE_ERROR | E_ERROR | E_CORE_ERROR error_log = /var/log/php/error.log max_input_time = 30
Примечание: все строки выше следует раскомментировать. (; следует удалить):
- Создать каталог журналов PHP:
судо mkdir / var / log / php
- Передать право собственности пользователю Apache:
sudo chown apache / var / log / php
- Перезапустите Apache:
sudo service httpd перезапуск
Как установить LAMP Server на Debian 9
Из этого туториала Вы узнаете, как установить LAMP Server на Debian 9 Stretch.LAMP — это комбинация Linux, Apache, MySQL / MariaDB и PHP. С помощью этой LAMP мы можем создать мощный и надежный веб-сервер для размещения веб-приложений и многих других вещей. Есть несколько шагов для установки LAMP в Debian 9. Пожалуйста, прочтите мою другую публикацию о , как установить Debian 9 Stretch . В этом руководстве я расскажу вам, как установить сервер LAMP на автономный сервер Debian 9. Итак, в моем случае нет графического интерфейса. Если у вас Debian 8, посетите эту страницу, чтобы посмотреть, как установить LAMP на Debian 8.8 .
Конфигурация системы
- ОС: Debian 9 Stretch
- IP-адрес: 10.34.0.202
- Доменное имя: debian.manjaro.lan
Шаги по установке LAMP Server на Debian 9
Откройте терминал (если у вас есть графический интерфейс) или просто подключитесь к серверу Debian 9 по ssh и войдите в систему как root.
Шаг 1. Установите веб-сервер Apache
подходит для установки apache2
Выходной образец:
root @ debian: ~ # apt install apache2 Чтение списков пакетов... Выполнено Построение дерева зависимостей Чтение информации о состоянии ... Готово Следующие пакеты были установлены автоматически и больше не требуются: libglib2.0-0 libglib2.0-данные общие-mime-информация xdg-user-dirs Используйте apt autoremove, чтобы удалить их. Будут установлены следующие дополнительные пакеты: apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.2-0 SSL-сертификат Предлагаемые пакеты: www-браузер apache2-doc apache2-suexec-pristine | apache2-suexec-пользовательский openssl-черный список Будут установлены следующие НОВЫЕ пакеты: apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.2-0 SSL-сертификат 0 обновлено, 10 установлено заново, 0 удалено и 0 не обновлено. Необходимо получить 2 144 КБ архивов. После этой операции будет использовано 7 137 КБ дополнительного дискового пространства. Вы хотите продолжить? [Да / нет]
Запустить и включить Apache при загрузке
systemctl запустить apache2 systemctl включить apache2
Теперь проверьте веб-сервер. Откройте веб-браузер и введите IP-адрес Debian. Вы должны увидеть что-то вроде этого ниже.
Шаг 2.Установите MariaDB Server
Используйте следующую команду для установки сервера MariaDB. К вашему сведению, MariaDB — это база данных по умолчанию для пакета MySQL в Debian 9.
apt установить mysql-server
Выходной образец
root @ debian: ~ # apt install mysql-server Чтение списков пакетов ... Готово Построение дерева зависимостей Чтение информации о состоянии ... Готово Следующие пакеты были установлены автоматически и больше не требуются: libglib2.0-0 libglib2.0-данные общие-mime-информация xdg-user-dirs Используйте apt autoremove, чтобы удалить их. Будут установлены следующие дополнительные пакеты: default-mysql-server galera-3 gawk libaio1 libarchive13 libcgi-fast-perl libcgi-pm-perl libdbd-mysql-perl libdbi-perl libencode-locale-perl libfcgi-perl libhtml-парсер-perl libhtml-набор тегов-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl libjemalloc1 liblwp-mediatypes-perl libsigsegv2 libterm-readkey-perl libtimedate-perl liburi-perl mariadb-client-10.1 mariadb-client-core-10.1 mariadb-common mariadb-server-10.1 mariadb-server-core-10.1 socat Предлагаемые пакеты: gawk-doc lrzip libclone-perl libmldbm-perl libnet-daemon-perl libsql-statement-perl libdata-дамп-perl libipc-sharedcache-perl libwww-perl mariadb-test netcat-openbsd tinyca Будут установлены следующие НОВЫЕ пакеты: default-mysql-server galera-3 gawk libaio1 libarchive13 libcgi-fast-perl libcgi-pm-perl libdbd-mysql-perl libdbi-perl libencode-locale-perl libfcgi-perl libhtml-парсер-perl libhtml-набор тегов-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl libjemalloc1 liblwp-mediatypes-perl libsigsegv2 libterm-readkey-perl libtimedate-perl liburi-perl mariadb-client-10.1 mariadb-client-core-10.1 mariadb-common mariadb-server-10.1 mariadb-server-core-10.1 mysql-server socat 0 обновлено, 30 вновь установлено, 0 удалено и 0 не обновлено. Необходимо получить 25,3 МБ архивов. После этой операции будет использовано 188 МБ дополнительного дискового пространства. Вы хотите продолжить? [Да / нет]
Теперь запустите MariaDB и включите его при загрузке
systemctl start mariadb systemctl включить mariadb
Проверить статус службы mariadb
root @ debian: ~ # systemctl status mariadb ● mariadb.service - сервер базы данных MariaDB Загружено: загружено (/lib/systemd/system/mariadb.service; включено; предустановка поставщика: включено) Активен: активен (работает) с сб 24.06.2017 09:43:39 WITA; 20с назад Основной PID: 9622 (mysqld) Статус: «Принимаю ваши SQL-запросы сейчас ...» CGroup: /system.slice/mariadb.service └─9622 / usr / sbin / mysqld 24 июня 09:43:38 debian systemd [1]: Запуск сервера базы данных MariaDB ... 24 июня, 09:43:39 debian mysqld [9622]: 2017-06-24 9:43:39 140594638725696 [Примечание] / usr / sbin / mysqld (mysqld 10.24 июня 09:43:39 debian systemd [1]: запущен сервер базы данных MariaDB.
Безопасная установка MariaDB
mysql_secure_installation
Следуйте инструкциям мастера на экране, чтобы усилить защиту MariaDB. Поздравляем, вы успешно установили сервер MariaDB на Debian 9.
Шаг 3. Установите PHP
Теперь мы установим PHP на Debian 9. Используйте следующую команду
apt установить php php-mysql
Выходной образец
oot @ debian: ~ # apt install php php-mysql Чтение списков пакетов... Выполнено Построение дерева зависимостей Чтение информации о состоянии ... Готово Следующие пакеты были установлены автоматически и больше не требуются: libglib2.0-0 libglib2.0-данные общие-mime-информация xdg-user-dirs Используйте apt autoremove, чтобы удалить их. Будут установлены следующие дополнительные пакеты: libapache2-mod-php7.0 php-common php7.0 php7.0-cli php7.0-common php7.0-json php7.0-mysql php7.0-opcache php7.0-readline Предлагаемые пакеты: php-груша Будут установлены следующие НОВЫЕ пакеты: libapache2-mod-php7.0 php общий php php-mysql php7.0 php7.0-cli php7.0-общий php7.0-json php7.0-mysql php7.0-opcache php7.0-readline 0 обновлено, 11 установлено заново, 0 удалено и 0 не обновлено. Необходимо получить 3691 КБ архивов. После этой операции будет использовано 14,6 МБ дополнительного дискового пространства. Вы хотите продолжить? [Да / нет]
Теперь проверьте установленную версию PHP
корень @ debian: ~ # php --version PHP 7.0.19-1 (cli) (построено: 11 мая 2017 14:04:47) (NTS) Авторские права (c) 1997-2017 Группа PHP Zend Engine v3.0.0, Авторское право (c) 1998-2017 Zend Technologies с Zend OPcache v7.0.19-1, Copyright (c) 1999-2017, Zend Technologies
На этом этапе мы успешно установили сервер LAMP на Debian 9 Stretch. Спасибо, за то что прочитали эту статью. Поделитесь этой статьей, если вы нашли ее полезной.
Нравится:
Нравится Загрузка …
Установка: Linux
Мы поддерживаем x86_64 Linux и предлагаем готовые пакеты для различных Ubuntu и
Платформы Debian.
Хотя вы можете собирать из исходного кода, для простоты установки и стабильности обычно рекомендуется использовать предварительно собранный пакет.
Для этих инструкций требуется root; используйте su -
или sudo -i
, чтобы сначала получить корневую оболочку.
Получение последней стабильной версии
Ubuntu
apt-get update
apt-get установить общие свойства программного обеспечения apt-транспорт-https
apt-key adv --recv-keys --keyserver hkp: //keyserver.ubuntu.ком: 80 0xB4112585D386EB94
add-apt-репозиторий https://dl.hhvm.com/ubuntu
apt-get update
apt-get install hhvm
Debian 8 Джесси, Debian 9 Stretch
apt-get update
apt-get install -y apt-transport-https общие свойства программного обеспечения
apt-key adv --recv-keys --keyserver hkp: //keyserver.ubuntu.com: 80 0xB4112585D386EB94
репозиторий add-apt https://dl.hhvm.com/debian
apt-get update
apt-get install hhvm
Получение специального выпуска
Обычно рекомендуется запускать самую новую версию, которую может поддерживать ваш код.Этот bash oneliner можно использовать для добавления репозитория для версии, которую вы хотите установить. Замените major
основной версией hhvm, а minor
— второстепенной версией hhvm. Вы не должны указывать патч в номере версии.
apt-add-repository "deb https://dl.hhvm.com/$(lsb_release --id --short | tr '[: upper:]' '[: lower:]') $ (lsb_release - кодовое имя --short) -major.minor main "
Итак, чтобы получить HHVM 4.56, вы должны использовать
apt-add-repository "deb https: // dl.hhvm.com/$(lsb_release --id --short | tr '[: upper:]' '[: lower:]') $ (lsb_release --codename --short) -4.56 main ""
Вы автоматически получите такие исправления, как HHVM 4.56.1, но не будете обновлены до HHVM 4.57 и выше.
Если вы получаете сообщение об ошибке HTTP 404 от apt, проверьте, поддерживает ли версия hhvm, которую вы пытались установить, вашу операционную систему в блоге.
Конкретная версия примечания — hhvm 3.30. Это требует дополнительного -lts
после младшего номера версии.Эта версия не поддерживается по состоянию на ноябрь 2019 года и не должна использоваться.
apt-add-repository "deb https://dl.hhvm.com/$(lsb_release --id --short | tr '[: upper:]' '[: lower:]') $ (lsb_release --codename --короткий) -3.30-лтс основной »
Выбор версии
Если вы работаете над новым проектом, вы можете установить последнюю стабильную версию.
Если у вас есть существующий проект, вы можете обновлять по одному выпуску за раз, используя блог, чтобы узнавать о критических изменениях.4.56 «. Если нет, проверьте последний раз, когда была сделана фиксация, и узнайте, какая версия HHVM была последней на тот момент, используя блог.
Что бы вы ни делали, убедитесь, что выбранная вами версия HHVM получает обновления безопасности. Блог проинформирует вас о поддерживаемых версиях.
Другие пакеты
Все приведенные выше команды устанавливают стандартный пакет hhvm
, который является стабильной конфигурацией выпуска. У нас также есть несколько других пакетов, доступных в репо:
# Стабильная отладочная сборка, подходящая для отладчиков, таких как gdb
apt-get install hhvm-dbg
# Стабильный пакет разработчика, содержащий заголовки, чтобы вы могли создавать расширения и т. Д.apt-get install hhvm-dev
# Ночная сборка (жизнь на грани, каждый день перестраивается, возможно, нестабильно)
apt-get install hhvm-nightly
# Ночная сборка отладки
apt-get install hhvm-nightly-dbg
# Ночная сборка разработчика
apt-get install hhvm-dev-nightly
Установка ключа GPG: альтернативный метод
Если у вас возникли проблемы с командой apt-key adv
, альтернативой является:
apt-get install -y завиток
curl https://dl.hhvm.com/conf/hhvm.gpg.ключ | apt-key добавить -
apt-key finger '[email protected]'
«Отпечаток пальца», показанный apt-key finger
(вторая строка), должен точно соответствовать 0583 41C6 8FC8 DE60 17D7 75A1 B411 2585 D386 EB94
; например:
$ apt-key finger '[email protected]'
pub rsa4096 03.11.2017 [SC]
0583 41C6 8FC8 DE60 17D7 75A1 B411 2585 D386 EB94
uid [неизвестно] Подписание пакета HHVM
Если это не так, запустите apt-key list
, затем используйте apt-key del
для удаления любых ключей, которые вы не узнаете.
Зеркала
dl.hhvm.com обслуживается глобальной CDN, поэтому должен работать быстро для всех пользователей. Если вы хотите поддерживать локальное зеркало, вы можете использовать утилиты AWS CLI для синхронизации:
aws s3 синхронизация \
--no-sign-request \
--регион сша-запад-2 \
s3: // hhvm-загрузки / \
./localpath/ \
--exclude '* index.html'
Кроме того, Лаборатория открытого исходного кода Университета штата Орегон поддерживает зеркало, доступное
через HTTP, FTP и rsync по адресу https: //ftp.osuosl.org / pub / hiphop /.
Зеркало OSUOSL имеет ограниченное сохранение ночных сборок.
.