Установка web сервера на debian
Как установить веб-сервер Apache в Debian 10
Главное меню » Операционная система Debian » Как установить веб-сервер Apache в Debian 10
В этой статье мы объясним, как установить Apache на Debian 10, Buster.
Предпосылки
Перед началом работы убедитесь, что вы вошли в систему как пользователь с привилегиями sudo.
Установка Apache
Пакеты Apache доступны в репозиториях Debian по умолчанию.
Установка довольно проста. Обновите индекс пакета и установите веб-сервер Apache с помощью следующих команд:
Вот и все, Apache установлен и автоматически запущен. Чтобы проверить тип статуса:
Настройте брандмауэр
Пользователи UFW могут открывать порты HTTP ( 80) и HTTPS ( 443), включив профиль «Nginx Full»:
Если вы используете nftables для фильтрации подключений к вашей системе, откройте необходимые порты, введя следующую команду:
Проверка установки Apache
Чтобы убедиться, что Apache работает правильно, откройте браузер, введите IP-адрес сервера или доменное имя, http://YOUR_IP_OR_DOMAIN/и вы увидите страницу приветствия Apache по умолчанию, как показано ниже:
Страница содержит основную информацию о файлах конфигурации Apache, вспомогательных сценариях и расположениях каталогов.
Структура файла конфигурации Apache и лучшие практики
- В системах на основе Debian файлы конфигурации Apache находятся в каталоге /etc/apache2.
- Основной файл конфигурации Apache /etc/apache2/apache2.conf.
- Порты, которые Apache будет прослушивать, указаны в файле /etc/apache2/ports.conf.
- Файлы Apache Virtual Hosts находятся в каталоге /etc/apache2/sites-available. Файлы конфигурации, найденные в этом каталоге, не используются Apache, если они не связаны с каталогом /etc/apache2/sites-enabled.
- Вы можете активировать директиву виртуального хоста, создав символическую ссылку, используя команду a2ensite из файлов конфигурации, найденных в каталоге sites-available и каталоге sites-enabled. Чтобы деактивировать виртуальный хост, используйте команду a2dissite.
- Настоятельно рекомендуется следовать стандартному соглашению об именах, например, если ваше доменное имя является, mydomain.comтогда файл конфигурации домена должен быть назван/etc/apache2/sites-available/mydomain.com.conf
- Файлы конфигурации, которые используются для загрузки различных модулей Apache, находятся в каталоге /etc/apache2/mods-available. Конфигурации в каталоге mods-available могут быть включены путем создания символической ссылки на каталог /etc/apache2/mods-enable с помощью команды a2enconf и отключены с помощью команды a2disconf.
- Файлы, содержащие фрагменты глобальной конфигурации, хранятся в каталоге /etc/apache2/conf-available. Файлы в conf-availableкаталоге могут быть включены путем создания символической ссылки /etc/apache2/conf-enabled с помощью команды a2enconf и отключены с помощью команды a2disconf.
- Файлы журнала Apache ( access.logи error.log) находятся в каталоге /var/log/apache. Рекомендуется использовать разные лог – файлы access и error для каждого виртуального хоста.
- Вы можете установить корневой каталог документа вашего домена в любое место, которое вы хотите. Наиболее распространенные места для webroot включают в себя:
- /home/ /
- /var/www/
- /var/www/html/
- /opt/
Заключение
Установка Apache в Debian – это запуск одной команды.
Теперь вы можете начать развертывание своих приложений и использовать Apache в качестве веб-сервера или прокси-сервера.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Установка веб-сервера Apache в Debian 9
HTTP-сервер Apache – самый популярный веб-сервер. Он предоставляет множество производительных функций, включая динамическую загрузку модулей, надежную поддержку мультимедиа и широкую интеграцию с другим популярным программным обеспечением.
В этом мануале вы узнаете, как установить веб-сервер Apache на сервер Debian 9.
Требования
- Сервер Debian 9.
- Пользователь с доступом к sudo (все действия нужно выполнить в сессии этого пользователя).
- Базовый брандмауэр.
Все необходимые инструкции можно найти в мануале по начальной настройке.
1: Установка Apache
Пакет Apache есть в стандартном репозитории Debian, потому его можно установить с помощью стандартного пакетного менеджера.
Обновите индекс пакетов и установите apache2.
sudo apt update
sudo apt install apache2
Команда установит Apache и его зависимости.
2: Настройка брандмауэра
Теперь нужно отредактировать настройки брандмауэра и открыть доступ к стандартному порту Apache. Если вы выполнили мануал по начальной настройке сервера, брандмауэр UFW блокирует доступ к веб-серверу.
Во время установки Apache регистрируется в UFW и предоставляет несколько профилей, которые упрощают процесс управления доступом к Apache.
Чтобы просмотреть профили приложений ufw, введите:
sudo ufw app list
Вы увидите список профилей:
Available applications:
AIM
Bonjour
CIFS
. . .
WWW
WWW Cache
WWW Full
WWW Secure
. . .
Профили Apache начинаются с WWW:
- WWW: поддерживает трафик по порту 80 (стандартный порт).
- WWW Cache: открывает только порт 8080 (иногда используется для кэширования и проксирования).
- WWW Full: открывает порты 80 и 443 (шифрованный трафик TLS/SSL).
- WWW Secure: поддерживает только шифрованный трафик TLS/SSL по порту 443.
Рекомендуется включить наиболее ограничительный профиль, который все равно позволит поддерживать трафик. Поскольку вы еще не настроили SSL-сертификат, вам нужно разрешить трафик на порт 80:
sudo ufw allow ‘WWW’
Убедитесь, что профиль включен:
sudo ufw status
В выводе вы увидите:
Status: active
To Action From
— —— —-
OpenSSH ALLOW Anywhere
WWW ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
WWW (v6) ALLOW Anywhere (v6)
3: Проверка веб-сервера
После установки Debian 9 запустит Apache.
Чтобы убедиться, что веб-сервер запущен, запросите его состояние:
sudo systemctl status apache2
apache2.service – The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-09-05 19:21:48 UTC; 13min ago
Main PID: 12849 (apache2)
CGroup: /system.slice/apache2.service
├─12849 /usr/sbin/apache2 -k start
├─12850 /usr/sbin/apache2 -k start
└─12852 /usr/sbin/apache2 -k start
Sep 05 19:21:48 apache systemd[1]: Starting The Apache HTTP Server.
Sep 05 19:21:48 apache systemd[1]: Started The Apache HTTP Server.
Согласно выводу сервис работает правильно. Но лучше также запросить страницу Apache, чтобы подтвердить работу веб-сервера.
Чтобы открыть стандартную посадочную страницу Apache, укажите свое доменное имя или IP сервера. Если у вас нет домена, укажите внешний IP-адрес своего сервера. Если вы не знаете свой IP-адрес, вы можете узнать его с помощью командной строки. Введите:
Вы получите список адресов, разделенных пробелами. Проверьте каждый адрес в браузере.
Также вы можете узнать свой IP, запросив его с помощью команды curl.
Примечание: Чтобы установить curl, введите:
sudo apt install curl
Чтобы извлечь icanhazip.com (IPv4) с помощью curl, введите:
curl -4 icanhazip.com
Узнав свой внешний адрес, введите в браузер:
Вы увидите стандартную страницу Apache для Debian 9.
Эта страница позволяет убедиться, что Apache работает правильно; также она содержит базовую информацию о важных файлах и каталогах Apache.
4: Управление процессами Apache
Чтобы остановить сервер, введите:
sudo systemctl stop apache2
Запустить сервер может команда:
sudo systemctl start apache2
Для перезапуска используйте:
sudo systemctl restart apache2
Во время настройки Apache можно часто перезагружать, не сбрасывая соединений. Для этого вы можете использовать команду:
sudo systemctl reload apache2
По умолчанию Apache запускается автоматически вместе с сервером. Чтобы удалить Apache из автозагрузки, отключите сервис:
sudo systemctl disable apache2
Чтобы добавить Apache в автозагрузку, используйте команду:
sudo systemctl enable apache2
5: Настройка виртуального хоста (рекомендуется)
На веб-сервере Apache вы можете использовать виртуальные хосты (аналогичные блокам server в Nginx) для изоляции настроек и размещения нескольких доменов на одном сервере. Здесь используется условный домен example.com, но вы должны заменить его собственным доменом.
Apache в Debian 9 по умолчанию предоставляет один включенный виртуальный хост, который обслуживает каталог /var/www/html. Этого хватит для обслуживания одного сайта, но если вы хотите разместить несколько сайтов, вам нужно создать новые виртуальные хосты. Создайте структуру каталогов в /var/www для сайта example.com, а /var/www/html оставьте как каталог по умолчанию, который будет обслуживаться, если запрос клиента не соответствует другим сайтам.
Создайте каталог example.com, используя флаг -p для создания всех необходимых родительских каталогов:
sudo mkdir -p /var/www/example.com/html
Затем определите права на каталог с помощью переменной $USER:
sudo chown -R $USER:$USER /var/www/example.com/html
Права должны быть правильными, если вы не меняли unmask, но на всякий случай вы можете их проверить:
sudo chmod -R 755 /var/www/example.com
Затем создайте образец страницы index.html с помощью nano или другого редактора:
Вставьте в файл:
Success! The example.com server block is working!
Contents
Share
Sign up for our newsletter.
Get the latest tutorials on SysAdmin and open source topics.
Write for DigitalOcean You get paid, we donate to tech non-profits.
DigitalOcean Meetups Find and meet other developers in your city.
Hacktoberfest Contribute to Open Source
Related
Tutorial
Установка веб-сервера Apache в Debian 9

Posted January 7, 2020 4.4k views
Введение
HTTP-сервер Apache — самый широко используемый веб-сервер в мире. Он имеет множество мощных функций, включая динамически загружаемые модули, надежную поддержку различных медиа-форматов и интеграцию с другим популярным программным обеспечением.
В этом обучающем модуле мы расскажем, как установить веб-сервер Apache на сервере Debian 9.
Предварительные требования
Прежде чем начать прохождение настоящего обучающего модуля, необходимо настроить на сервере обычного пользователя без привилегий root и с привилегиями sudo. Также вам потребуется включить базовый брандмауэр, чтобы заблокировать все порты, кроме необходимых. Вы научитесь настраивать учетную запись обычного пользователя и брандмауэр для вашего сервера, следуя указаниям руководства Начальная настройка сервера Debian 9.
Создав учетную запись, войдите в систему как пользователь без привилегий root.
Шаг 1 — Установка Apache
Apache поставляется с используемыми по умолчанию хранилищами программного обеспечения Debian, что позволяет использовать для его установки инструменты управления из стандартных пакетов.
Для начала выгрузим указатель локальных пакетов, чтобы отразить последние изменения на предыдущих уровнях:
Затем установим пакет apache2 :
После подтверждения установки apt выполнит установку Apache и всех требуемых зависимостей.
Шаг 2 — Настройка брандмауэра
Прежде чем тестировать Apache, необходимо изменить настройки брандмауэра, чтобы разрешить доступ к веб-портам по умолчанию. Если вы выполнили предварительные указания , у вас должен быть установлен брандмауэр UFW, настроенный для ограничения доступа к вашему серверу.
Во время установки Apache регистрируется в UFW, предоставляя несколько профилей приложений, которые можно использовать для включения или отключения доступа к Apache через брандмауэр.
Выведите список профилей приложений ufw , введя следующую команду:
Вы увидите список профилей приложений:
Профили Apache начинаются с WWW:
- WWW: этот профиль открывает только порт 80 (обычный веб-трафик без шифрования)
- WWW Cache: этот профиль открывает только порт 8080 (иногда используется для кэширования и веб-прокси)
- WWW Full: этот профиль открывает порт 80 (обычный веб-трафик без шифрования) и порт 443 (трафик TLS/SSL с шифрованием)
- WWW Secure: этот профиль открывает только порт 443 (трафик с шифрованием TLS/SSL)
Рекомендуется применять самый ограничивающий профиль, который будет разрешать заданный трафик. Поскольку в этом модуле мы еще не настроили SSL для нашего сервера, нам нужно будет только разрешить трафик на порту 80.
Для проверки изменений введите:
В результатах вы должны увидеть, что трафик HTTP разрешен:
Как видите, профиль был активирован для разрешения доступа к веб-серверу.
Шаг 3 — Проверка веб-сервера
В конце процесса установки Debian 9 запускает Apache. Веб-сервер уже должен быть запущен и работать.
Используйте команду systemd init system, чтобы проверить работу службы:
Как видно из результатов, служба успешно запущена. Однако лучше всего протестировать ее запуск посредством запроса страницы из Apache.
Откройте страницу Apache по умолчанию, чтобы подтвердить работу программного обеспечения через ваш IP-адрес: Если вы не знаете IP-адрес вашего сервера, есть несколько способов узнать его с помощью командной строки.
Попробуйте ввести в командной строке сервера следующую команду:
Вы получите несколько адресов, разделенных пробелами. Вы можете попробовать каждый из них в браузере, чтобы убедиться в их работоспособности.
Альтернатива заключается в использовании инструмента curl , который должен предоставить вам публичный IP-адрес, отображаемый в других местах в интернете.
Вначале выполните установку curl с помощью apt :
Затем используйте curl для получения icanhazip.com с помощью IPv4:
Когда вы узнаете IP-адрес вашего сервера, введите его в адресную строку браузера:
Вы увидите веб-страницу Debian 9 Apache по умолчанию:
Эта страница показывает, что Apache работает корректно. Также на ней содержится информация о важных файлах Apache и расположении каталогов.
Шаг 4 — Управление процессом Apache
Теперь ваш веб-сервер запущен и работает, и настало время изучить некоторые простые команды управления.
Чтобы остановить веб-сервер, введите:
Чтобы запустить остановленный веб-сервер, введите:
Чтобы остановить и снова запустить службу, введите:
Если вы просто вносите изменения в конфигурацию, во многих случаях Apache может перезагружаться без отключения соединений. Для этого нужно использовать следующую команду:
По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если вы не хотите этого, отключите такое поведение с помощью следующей команды:
Чтобы перезагрузить службу для запуска во время загрузки, введите:
Теперь Apache должен запуститься автоматически при следующей загрузке сервера.
Шаг 5 — Настройка виртуальных хостов (рекомендуется)
При использовании веб-сервера Apache вы можете использовать виртуальные хосты (аналогичные серверным блокам в Nginx) для инкапсуляции данных конфигурации и размещения на одном сервере нескольких доменов. Мы создадим домен example.com, но вы должны заменить это имя собственным доменным именем. Чтобы узнать больше о настройке доменного имени с помощью DigitalOcean, пройдите наш обучающий модуль Введение в DigitalOcean DNS.
В Apache в Debian 9 по умолчанию включен один серверный блок, настроенный на обслуживание документов из каталога /var/www/html . Хотя это хорошо работает для отдельного сайта, при хостинге нескольких сайтов это неудобно. Вместо изменения /var/www/html мы создадим в /var/www структуру каталогов для нашего сайта example.com, оставив /var/www/html как каталог по умолчанию для вывода в случае, если запросу клиента не соответствуют никакие другие сайты.
Создайте каталог для example.com следующим образом, используя опцию -p для создания необходимых родительских каталогов:
Затем назначьте владение каталогом с помощью переменной среды $USER :
Разрешения корневых каталогов веб-сервера должны быть правильными, если вы не изменяли значение unmask . Тем не менее, вы можете проверить это с помощью следующей команды:
Затем создайте в качестве примера страницу index.html , используя nano или свой любимый редактор:
Добавьте в страницу следующий образец кода HTML:
Сохраните файл и закройте его после завершения.
Для обслуживания этого контента Apache необходимо создать файл виртуального хоста с правильными директивами. Вместо изменения файла конфигурации по умолчанию /etc/apache2/sites-available/000-default.conf мы создадим новый файл /etc/apache2/sites-available/ example.com .conf :
Введите следующий блок конфигурации, который похож на заданный по умолчанию, но обновлен с учетом нового каталога и доменного имени:
Обратите внимание, что мы изменили DocumentRoot на новый каталог, а ServerAdmin — на адрес электронной почты, доступный администратору сайта example.com. Также мы добавили две директивы: директиву ServerName , которая устанавливает базовый домен и должна соответствовать определению виртуального хоста, и директиву ServerAlias , которая задает дополнительные имена, которые должны давать совпадение, как если бы они были базовыми именами.
Сохраните файл и закройте его после завершения.
Активируем файл с помощью инструмента a2ensite :
Отключите сайт по умолчанию, определеный в 000-default.conf :
Затем проверим ошибки конфигурации:
Вы должны увидеть следующий результат:
Перезапустие Apache для внесения изменений:
Теперь Apache должен обслуживать ваше доменное имя. Вы можете проверить это, открыв в браузере адрес http:// example.com , после чего должны увидеть примерно следующее:
Шаг 6 — Знакомство с важными файлами и каталогами Apache
Теперь вы научились управлять службой Apache, и настало время познакомиться с несколькими важными каталогами и файлами.
Контент
- /var/www/html : веб-контент, в состав которого по умолчанию входит только показанная ранее страница Apache по умолчанию, выводится из каталога /var/www/html . Это можно изменить путем изменения файлов конфигурации Apache.
Конфигурация сервера
- /etc/apache2 : каталог конфигурации Apache. Здесь хранятся все файлы конфигурации Apache.
- /etc/apache2/apache2conf : главный файл конфигурации Apache. Его можно изменить для внесения изменений в глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов в каталоге конфигурации.
- /etc/apache2/ports.conf : этот файл задает порты, которые будет прослушивать Apache. По умолчанию Apache прослушивает порта 80, а если активирован модуль с функциями SSL, он также прослушивает порт 443.
- /etc/apache2/sites-available/ : каталог, где можно хранить виртуальные хосты для каждого сайта. Apache не будет использовать файлы конфигурации из этого каталога, если они не будут связаны с каталогом sites-enabled . Обычно все изменения конфигурации серверных блоков выполняются в этом каталоге, а затем активируются посредством ссылки на другой каталог с помощью команды a2ensite .
- /etc/apache2/sites-enabled/ : каталог, где хранятся активные виртуальные хосты для каждого сайта. Обычно они создаются посредством создания ссылок на файлы конфигурации из каталога sites-available с помощью команды a2ensite . Apache считывает файлы конфигурации и ссылки из этого каталога при запуске или перезагрузке, когда компилируется полная конфигурация.
- /etc/apache2/conf-available/ , /etc/apache2/conf-enabled/ : эти каталоги имеют те же отношения, что и каталоги sites-available и sites-enabled , но используются для хранения фрагментов конфигурации, которые не принадлежат виртуальному хосту. Файлы из каталога conf-available можно активировать с помощью команды a2enconf и отключить с помощью команды a2disconf .
- /etc/apache2/mods-available/ , /etc/apache2/mods-enabled/ : эти каталоги содержат доступны и активированные модули соответственно. Файлы с расширением .load содержат фрагменты для загрузки определенных модулей, а файлы с расширением .conf содержат конфигурации этих модулей. Модули можно активировать и отключать с помощью команд a2enmod и a2dismod .
Журналы сервера
- /var/log/apache2/access.log : по умолчанию каждый запрос веб-сервера регистрируется в этом файле журналда, если Apache не настроен по другому.
- /var/log/apache2/error.log : по умолчанию все ошибки регистрируются в этом файле. Директива LogLevel в конфигурации Apache указывает, насколько детальные записи регистрируются в журналах ошибок.
Заключение
Теперь вы установили веб-сервер и у вас есть богатые возможности выбора типа обслуживаемого контента и технологий для расширения возможностей пользователя.
Если вы хотите развернуть более полный комплекс приложений, ознакомьтесь с этой статьей Настройка набора LAMP в Debian 9.

Posted January 7, 2020 4.4k views
Установка web сервера на debian
# aptitude update && aptitude upgrade && aptitude install apache2 php5 libapache2-mod-php5 mysql-server mysql-client php5-mysql phpmyadmin
По ходу установки у вас должны спросить пароль от mysql root’a и phpmyadmin попросить указать установленные web-серверы (выбираем apache2 стрелочками, нажимаем пробел, потом enter).
Работа с Mysql:
– Сначала зайдём в консоль mysql
$ mysql -u root -p Enter password: [пароль root mysql, указанный при установке LAMP]
Узнать, что мы в консоли mysql мы можем по изменившемуся приветствию:
mysql> create database ‘dbname’;
– Дадим права пользователю muser на базу dbname. Если такого пользователя не существует — он автоматически создастся:
mysql> grant all on ‘dbname’.* to ‘muser’@’localhost’;
– Назначить пароль пользователю muser:
mysql> set password for ‘muser’@’localhost’ = password(‘megapasswordhere’);
(megapasswordhere меняем на свой пароль)
Для выхода из режима работы с базой данных нужно ввести q
А теперь весь пункт №3 одной командой (для второго пользователя)
mysql> create database ‘dbname2’; grant all on ‘dbname2’.* to ‘muser2’@’localhost’; set password for ‘muser2’@’localhost’ = password(‘megapassword2here’);
(Только что мы создали базу dbname2, дали на неё все права пользователю muser2 и назначили пароль megapassword2here этому пользователю)
Разгрузим наш CPU кешированием PHP скриптов – установим APC:
$ aptitude install php-apc
APC работает – забавляемся с освободившимися ресурсами CPU и RAM.
Размещение сайта на сервере:
– Создадим нужный нам каталог:
$ mkdir -p /home/user/site1.ru
– Разместим в нём файлы нашего сайта любым удобным нам способом:
wget http://joomlaportal.ru/downloads/joomla/Joomla_2.5.6-Stable-Full_Package_Russian_v3.tar.gz
tar zxvf Joomla_2.5.6-Stable-Full_Package_Russian_v3.tar.gz –directory=/home/user/site1.ru
– Задаём права доступа к файлам сайта:
$ cd && chown -R user:www-data site1.ru && chmod -R 750 site1.ru
(Разрешили себе (user) право на чтение и запись в любых файлов каталога site1.ru, разрешили процессам Apache (веб-сервер) доступ на чтение ко всем файлам данного каталога и запретили чтение каталога всем остальным)
– Внимательно ознакомимся с мануалом к CMS и узнаем, куда необходимо разрешить доступ на запись веб-серверу на время установки сайта
Для Joomla 2.5 это файл конфигурации configuration.php в корне сайта.
– Создаём этот файл:
(После этого жмём Ctrl+X, отвечаем на вопрос сохранять или нет Y)
– И разрешаем доступ к нему на запись для Apache :
cd /home/user/site1.ru && chmod 770 configuration.php
– “Расскажем Апачу”, что мы желаем разместить сайт:
Откроется страшное окошко, в котором можно печатать.
Необходимо вставить следующий текст:
DocumentRoot /home/user/site1.ru
ServerName site1.ru
ServerAlias www.site.ru
ServerAdmin Этот адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
(После этого жмём Ctrl+X, отвечаем на вопрос сохранять или нет Y)
Если вы всё сделали правильно и уже правильно работают ваши DNS серверы — по адресу http://site1.ru должен открыться ваш сайт (или инсталлятор CMS).
Не забудьте убрать доступ на запись к файлу конфигурации:
Базовая настройка сервера Debian после установки
Zerox Обновлено: 24.09.2019 Debian, Linux 39 комментариев 167,478 Просмотры
После установки нового сервера приходится выполнять один и тот же набор стандартных настроек. Сегодня мы займемся базовой настройкой сервера под управлением операционной системы Debian. Я приведу практические советы по небольшому увеличению безопасности и удобству администрирования, основанные на моем личном опыте.
Данная статья является частью единого цикла статьей про сервер Debian.
Введение
Любая работа с сервером после установки чаще всего начинается со стандартных обязательных действий, без которых либо не получится продвинуться дальше, либо будет неудобно работать. Например, вам в любом случае необходимо выполнить сетевые настройки, желательно обновить систему и установить часовой пояс. Рекомендуется сразу настроить автообновление времени, подрихтовать параметры sshd, установить midnight commander и выполнить другие настройки.
Об этом я хочу рассказать в статье. Я буду делиться своим реальным опытом работы. Это не значит, что нужно делать так, как я. Я могу в чем-то ошибаться, что-то делать не так удобно, как можно было бы сделать. Это просто советы, которые кому-то помогут узнать что-то новое, а кто-то возможно поделится со мной чем-то новым для меня, либо укажет на мои ошибки. Мне бы хотелось, чтобы это было так. Своими материалами я не только делюсь с вами знаниями, но и сам узнаю что-то новое в том числе и из комментариев и писем на почту.
Указываем сетевые параметры
Итак, у нас в наличии только что установленная система. Узнать или проверить ее версию можно командами:
Очень подробно про настройку сети в Debian я написал в отдельной статье. Рекомендую с ней ознакомиться. Здесь же кратко выполним основное. Для настройки сети, необходимо отредактировать файл /etc/network/interfaces. Сделаем это:
Для получения IP адреса по dhcp достаточно будет следующего содержания:
Если у вас статический адрес, то его настроить можно следующими параметрами в файле:
Сохраняем файл. Теперь нужно выполнить перезапуск сети. В Debian это делается командой:
В системном логе /var/log/syslog при этом будут записи:
Будьте аккуратны при настройке и перезапуске сети, если подключаетесь к серверу удаленно. Обязательно должен быть доступ к консоли на случай, если где-то ошибетесь и потеряете доступ к серверу.
К сетевым настройкам я отношу установку пакета net-tools, в состав которого входят старые и привычные утилиты для работы с сетью — ifconfig, netstat, route и другие. В современных дистрибутивах их заменили одной командой ip, но лично мне вывод некоторых старых команд, конкретно, netstat, нравится больше, поэтому я иногда ими тоже пользуюсь.
На этом настройка сети закончена.
Обновление системы, отличие apt upgrade от dist-upgrade и full-upgrade
Сеть настроили, теперь можно обновить систему и пакеты. В Debian это делается достаточно просто. Воспользуемся несколькими командами. Сначала обновим локальный индекс пакетов до последних изменений в репозиториях:
Посмотреть список пакетов, готовых к обновлению, можно с помощью команды:
Теперь выполним простое обновление всех пакетов системы:
Ключ upgrade выполняет только обновление одной версии пакета на другую, более свежую. Он не будет устанавливать или удалять пакеты, даже если это необходимо для обновления других. Это наиболее безопасный и надежный вариант обновления, но он может обновить не все. Например, с ее помощью не обновить ядро до более свежей версии.
Ключ dist-upgrade или full-upgrade (это одно и то же) в дополнение к upgrade обрабатывает все изменения зависимостей для новых пакетов и во время работы может удалять ненужные и ставить необходимые пакеты для обновления. Вот выдержка из документации по поводу этих двух ключей.
Так что после обычного обновления, делаем еще full-upgrade.
Мне предлагается удалить старые пакеты, которые больше уже не нужны. Это зависимости от старых версий софта, который уже обновился и получил новые пакеты из зависимостей, а эти ему больше не нужны. Очистим их командой:
Рекомендую делать это регулярно после обновлений, чтобы старые пакеты не занимали лишнее место на диске.
На этом обновление системы закончено. Если вы хотите обновить версию релиза, например Debian 9 обновить до Debian 10 Buster, то читайте отдельный материал.
Настройка ssh
Теперь внесем некоторые изменения в настройки сервера ssh. Я рекомендую его запускать на нестандартном порту для исключения лишних общений с ботами, которые регулярно сканируют интернет и подбирают пароли пользователей по словарям.
Существует расхожее мнение, что менять порт ssh это наивность, а не защита. Надо просто настроить сертификаты, fail2ban или еще каким-то образом защитить ssh порт, к примеру, с помощью ограничений iptables, и т.д. Тем не менее, я все же рекомендую порт сменить на нестандартный. Даже если у вас все защищено от подбора паролей, так как вы используете сертификаты, лишние запросы к ssh порту тратят ресурсы сервера, хоть и не очень большие. Идет установка соединения, обмен рукопожатиями и т.д. Зачем вам это нужно?
По-умолчанию в Debian, впрочем как и в любом другом дистрибутиве Linux, ssh сервер работает на 22 порту. Изменим этот порт, к примеру, на 23331. Так же я еще изменяю конфигурацию для разрешения подключения по ssh пользователя root с использованием пароля. В Debian из коробки пользователь root по ssh паролем авторизовываться не может. Изменим и это. Открываем файл настроек:
И изменяем там следующие строки. Приводим их к виду:
Сохраняем изменения и перезапускаем сервер ssh следующей командой:
Все в порядке, сервер слушает 23331 порт. Теперь новое подключение будет осуществлено только по порту 23331. При этом, после перезапуска ssh, старое подключение не будет разорвано.
Я знаю, что многие возражают против подключения рутом к серверу. Якобы это небезопасно и т.д. и т.п. Мне эти доводы кажутся не убедительными. Не понимаю, в чем может быть проблема, если у меня нормальный сложный пароль на root, который не получится подобрать или сбрутить. Ни разу за всю мою работу системным администратором у меня не возникло проблем с этим моментом. А вот работать так значительно удобнее, особенно, когда необходимо оперативно куда-то подключиться по форс мажорным обстоятельствам.
Отдельно тему подключения к серверу под root я рассмотрел в статье про sudo. Кому интересно, переходите в нее и делитесь своим мнением на этот счет.
Установка утилит mc, htop, iftop
Следующим шагом я настраиваю некоторые полезные утилиты, которыми регулярно пользуюсь в повседневной работе. Первая из них это всем известный двухпанельный файловый менеджер Midnight Commander. Установим mc на наш сервер:
И сразу же для него включаю подсветку синтаксиса всех файлов, которые не обозначены явно в файле /usr/share/mc/syntax/Syntax синтаксисом для sh и bash скриптов. Этот универсальный синтаксис нормально подходит для конфигурационных файлов, с которыми чаще всего приходится работать на сервере. Перезаписываем файл unknown.syntax. Именно этот шаблон будет применяться к .conf и .cf файлам, так как к ним явно не привязано никакого синтаксиса.
Я сразу же ставлю редактором по-умолчанию mcedit. Для этого просто выбираю его из меню при первом редактировании какого-нибудь файла. Если у вас такое меню не появляется, можете вызвать его сами и выбрать необходимый редактор по-умолчанию:
Так же я рекомендую очень удобный диспетчер задач — htop. Мне он помог, к примеру, решить проблему Взлома сервера CentOS. Ставим его на сервер:
Полезной утилитой, позволяющей смотреть сетевую загрузку в режиме реального времени, является iftop. Очень рекомендую. Более простого и удобного инструмента мне не попадалось, хотя я много перепробовал подобных вещей. Устанавливаем iftop на сервер:
Настройка и обновление времени в Debian
Теперь проверим установленный часовой пояс, время и включим автоматическую синхронизацию времени с удаленного сервера. Очень подробно этот вопрос я рассмотрел в отдельной статье — настройка времени в Debian.
Узнать дату, время, часовой пояс можно командой date:
Если все указано верно, то менять ничего не нужно. Если же у вас неправильное время или указан часовой пояс не соответствующий вашему, то настроить это можно следующим образом. Сначала обновим часовые пояса:
Теперь выберем правильный часовой пояс с помощью команды:
Выбирая соответствующие пункты визарда, указываете свой часовой пояс.
Дальше синхронизируем время с сервером времени в интернете. Для разовой или ручной синхронизации понадобится отдельная утилита. Установим ntpdate на сервер:
И синхронизируем время:
Если получаете ошибку:
Значит у вас уже работает служба ntp. Ее нужно остановить и обновить время вручную. Хотя если она работает, то у вас и так должно быть все в порядке.
Для того, чтобы время автоматически синхронизировалось без вашего участия с определенной периодичностью, используется инструмент ntp. Установим его:
После установки он сам запустится и будет автоматически синхронизировать часы сервера. Проверим, запустился ли сервис ntpd:
Настройка firewall (iptables) в Debian
В качестве firewall в Debian по-умолчанию используется iptables, его и будем настраивать. Изначально фаервол полностью открыт и пропускает весь трафик. Проверить список правил iptables можно следующей командой:
Создадим файл с правилами iptables:
Очень подробно вопрос настройки iptables я рассмотрел отдельно, рекомендую ознакомиться. Хотя в примере другая ОС linux, принципиальной разницы нет, настройки iptables абсолютно одинаковые, так как правила одни и те же.
Добавляем набор простых правил для базовой настройки. Все необходимое вы потом сможете сами открыть или закрыть по аналогии с существующими правилами:
Даем файлу права на запуск:
Проверяем, что правила записались в файл /etc/iptables_rules. Если их там нет, то записываем их вручную.
Правила применились и произошла их запись в файл /etc/iptables_rules. Теперь нужно сделать так, чтобы они применялись при загрузке сервера. Для этого делаем следующее. Открываем файл /etc/network/interfaces и добавляем в него строку pre-up iptables-restore
Установка web сервера на debian
# aptitude update && aptitude upgrade && aptitude install apache2 php5 libapache2-mod-php5 mysql-server mysql-client php5-mysql phpmyadmin
По ходу установки у вас должны спросить пароль от mysql root’a и phpmyadmin попросить указать установленные web-серверы (выбираем apache2 стрелочками, нажимаем пробел, потом enter).
Работа с Mysql:
– Сначала зайдём в консоль mysql
$ mysql -u root -p Enter password: [пароль root mysql, указанный при установке LAMP]
Узнать, что мы в консоли mysql мы можем по изменившемуся приветствию:
mysql> create database ‘dbname’;
– Дадим права пользователю muser на базу dbname. Если такого пользователя не существует — он автоматически создастся:
mysql> grant all on ‘dbname’.* to ‘muser’@’localhost’;
– Назначить пароль пользователю muser:
mysql> set password for ‘muser’@’localhost’ = password(‘megapasswordhere’);
(megapasswordhere меняем на свой пароль)
Для выхода из режима работы с базой данных нужно ввести q
А теперь весь пункт №3 одной командой (для второго пользователя)
mysql> create database ‘dbname2’; grant all on ‘dbname2’.* to ‘muser2’@’localhost’; set password for ‘muser2’@’localhost’ = password(‘megapassword2here’);
(Только что мы создали базу dbname2, дали на неё все права пользователю muser2 и назначили пароль megapassword2here этому пользователю)
Разгрузим наш CPU кешированием PHP скриптов – установим APC:
$ aptitude install php-apc
APC работает – забавляемся с освободившимися ресурсами CPU и RAM.
Размещение сайта на сервере:
– Создадим нужный нам каталог:
$ mkdir -p /home/user/site1.ru
– Разместим в нём файлы нашего сайта любым удобным нам способом:
wget http://joomlaportal.ru/downloads/joomla/Joomla_2.5.6-Stable-Full_Package_Russian_v3.tar.gz
tar zxvf Joomla_2.5.6-Stable-Full_Package_Russian_v3.tar.gz –directory=/home/user/site1.ru
– Задаём права доступа к файлам сайта:
$ cd && chown -R user:www-data site1.ru && chmod -R 750 site1.ru
(Разрешили себе (user) право на чтение и запись в любых файлов каталога site1.ru, разрешили процессам Apache (веб-сервер) доступ на чтение ко всем файлам данного каталога и запретили чтение каталога всем остальным)
– Внимательно ознакомимся с мануалом к CMS и узнаем, куда необходимо разрешить доступ на запись веб-серверу на время установки сайта
Для Joomla 2.5 это файл конфигурации configuration.php в корне сайта.
– Создаём этот файл:
(После этого жмём Ctrl+X, отвечаем на вопрос сохранять или нет Y)
– И разрешаем доступ к нему на запись для Apache :
cd /home/user/site1.ru && chmod 770 configuration.php
– “Расскажем Апачу”, что мы желаем разместить сайт:
Откроется страшное окошко, в котором можно печатать.
Необходимо вставить следующий текст:
DocumentRoot /home/user/site1.ru
ServerName site1.ru
ServerAlias www.site.ru
ServerAdmin Этот адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
(После этого жмём Ctrl+X, отвечаем на вопрос сохранять или нет Y)
Если вы всё сделали правильно и уже правильно работают ваши DNS серверы — по адресу http://site1.ru должен открыться ваш сайт (или инсталлятор CMS).
Не забудьте убрать доступ на запись к файлу конфигурации: