Настройка серверов под linux

Локальный веб-сервер под Linux, с автоматическим поднятием хостов и переключением версий PHP

Скорее всего какие-то части этой статьи уже знакомы многим хаброжителям, но в связи с покупкой нового рабочего ноутбука я решил собрать все крупинки воедино и организовать удобное средство для разработки. Мне часто приходится работать со множеством маленьких проектов, с разными версиями PHP, часто переводить старые проекты на новые версии. В далёком прошлом, когда я был пользователем Windows то использовал OpenServer. Но с переходом на Linux мне нехватало той простоты создания хостов и переключений версий которые были в нём. Поэтому пришлось сделать еще более удобное решение на Linux =)

будет запущен тот же файл но уже с версией PHP 7.2.7

Другие версии доставляются аналогичным описанным ниже способом.

Для создания еще одного сайта просто создаем в /var/www/ папку имеющую окончание .loc, внутри которой должна быть папка public_html являющаяся корнем сайта

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

Всё это я проверну на LinuxMint19, он на базе Ubuntu18.04, так что с ним все будет аналогично.

Для начала поставим необходимые пакеты

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

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

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

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

Также нам понадобится папки для CGI скриптов

И runtime папка для этих же скриптов, с правами

И так как каталог у нас находится в оперативной памяти, добавим его создание при старте системы, для этого добавим в /etc/tmpfiles.d/fcgid.conf

У меня dnsmasq-base идет с коробки, если нет то его всегда можно доставить.

Добавим правило в его конфигурацию. Найти файл конфигурации dnsmasq.conf можно так

Либо если он как и у меня является частью NetworkManager то создать новый файл конфигурации в /etc/NetworkManager/dnsmasq.d/local.conf
Добавим в него строчку для перенаправление нашего локального домена на локальную машину.

Также нужно включить необходимые модули апача

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

1. Скачиваем исходники нужной версии и распаковываем их

2. Cобираем из исходников нужную версию PHP, и помещаем ее в /opt/php-5.6.36

3. Создаем CGI для обработки этой версии в /var/www/cgi-bin/php-5.6.36.fcgi

4. Делаем файл исполняемым

5. Добавляем экшен для обработки каждой версии в /etc/apache2/mods-available/fcgid.conf

6. Добавляем правило для обработки каждой версии в /etc/apache2/sites-available/000-default.conf

Ну вот и всё. Осталось только перезапустить apache и dnsmasq и пользоваться

Источник

Как установить локальный сервер на Linux

Пошагово объясняем, как установить Xampp на Linux и настроить доступ для редактирования сайтов.

Под локальным сервером в веб-разработке обычно понимают набор ПО, которое позволяет запускать сайты на своём компьютере, реже — сам компьютер. Доступ к этим сайтам есть только на одном устройстве (потому-то он и локальный), но этого достаточно, чтобы программист мог всё протестировать.

Из этой статьи вы узнаете, как установить сервер на Linux.

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

Какой локальный сервер выбрать

На мой взгляд, лучший вариант — Lampp. Название этого локального сервера расшифровывается так:

  • X или L — операционная система (X — общее название, L — Linux).
  • A — Apache (HTTP-сервер).
  • M — MySQL или MariaDB (система управления базами данных).
  • P — PHP (скриптовый язык программирования).
  • P — Perl (язык программирования).

Серьёзных альтернатив у Lampp нет. Это не критично, потому что у него есть большое сообщество, а обновления выходят регулярно. Из минусов можно отметить разве что отсутствие GUI (хотя для Linux это не недостаток).

Graphical user interface (GUI) — Графический интерфейс пользователя.

Установка Lampp

Команды из этой статьи протестированы на Ubuntu 19.04, но для других дистрибутивов действия будут аналогичными.

Для начала нужно скачать установочный файл с официального сайта.

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

Источник

VPS на Linux с графическим интерфейсом: запускаем сервер X2Go на Ubuntu 18.04

Настройку VNC и RDP на виртуальном сервере мы уже освоили, осталось изучить еще один вариант подключения к виртуальному рабочему столу Linux. Возможности созданного компанией NoMachine протокола NX достаточно интересны, к тому же он хорошо работает через медленные каналы. Фирменные серверные решения стоят дорого (клиентские бесплатны), но существует и свободная реализация, о которой пойдет речь в этой статье — система X2Go. Она отпочковалась от проекта с открытым исходным кодом FreeNX, когда NoMachine прекратила его поддерживать и отпустила в свободное плавание.

Оглавление:

Установка графического окружения

Для виртуального графического десктопа на Linux мощные машины не нужны, пока пользователь не начнет запускать прикладные программы. Для тестов мы возьмем крепкого середнячка с Ubuntu Server 18.04 LTS с двумя вычислительными ядрами, четырьмя гигабайтами оперативной памяти и жестким диском (HDD) на двадцать гигабайт. На RuVDS уже доступны образы Ubuntu Server 20.04 LTS, процесс настройки более свежей версии будет аналогичным. Не забывайте использовать промокод Habrahabr10 для получения скидки в 10% при заказе.

Читайте также:  Microsoft word document для windows 10

В качестве окружения рабочего стола снова берем XFCE из-за относительно невысоких требований к вычислительным ресурсам. К тому же с запуском этого DE через удаленный доступ в виртуальных средах не возникает проблем:

Русификация сервера и установка ПО

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

Того же эффекта можно достичь, отредактировав вручную файл /etc/default/locale.

Для локализации GNOME и KDE в репозитории есть пакеты language-pack-gnome-ru и language-pack-kde-ru — они понадобятся, если вы будете использовать программы из этих сред рабочего стола. В XFCE переводы устанавливаются вместе с приложениями. Дальше можно инсталлировать словари:

Кроме того, инсталляция переводов может потребоваться для некоторых прикладных программ:

Установка сервера X2Go

Стабильные версии сервера и клиента X2Go можно установить из внешнего репозитория PPA (Personal Packages Archive) на Launchpad или из штатных репозиториев актуальных релизов Ubuntu. Мы остановимся на втором варианте, поскольку версии софта в обоих источниках одинаковы, но если вам потребуются дополнительные пакеты, сторонний репозиторий придется подключить. Нам необходимо инсталлировать два пакета:

В случае если вы используете окружение MATE или LXDE, дополнительные пакеты потребуются (для XFCE они не нужны):

Вишенка на торте: X2Go работает через SSH и в дальнейшей настройке не нуждается. На VPS должен быть запущен sshd и открыт доступ к порту 22 в правилах межсетевого экрана. Поскольку речь идет про виртуальный сервер, это наверняка уже сделано из коробки. На физической машине открыть удаленный доступ по SSH несложно. Остается только проверить статус сервера X2Go:

Стоит также завести непривилегированного пользователя для работы с окружением рабочего стола:

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

Подключение к рабочему столу

Клиентское ПО X2Go для Windows, Linux и OS X можно загрузить на сайте проекта. Клиент под Android находится в стадии разработки, а бесплатные мобильные приложения от NoMachine с сервером X2Go несовместимы. Если на локальном компьютере установлена Ubuntu, достаточно добавить пакет x2goclient:

Для сохранения видового разнообразия в этот раз мы возьмем клиент для Windows:

Здесь можно настроить параметры соединения, устройств ввода-вывода, а также мультимедийных устройств.

Если все сделано правильно, после подключения появится рабочий стол XFCE.

Запуск приложения на удаленном компьютере

Иногда вместо полноценного окружения рабочего стола на удаленном компьютере нужно запустить ресурсоемкое приложение (например, IDE). Сделать это несложно, достаточно указать в настройках соединения соответствующий тип сеанса и команду.

Браузер запущен на удаленном VPS с Ubuntu

Есть и более экзотические варианты использования X2Go: система позволяет, например, подключиться к сессии пользователя на удаленном компьютере (как в TeamViewer). В этом случае на обеих машинах должны быть установлены и клиентские, и серверные части. Кроме того, задавать профили сессий на каждом клиенте не обязательно: можно установить и настроить x2gobroker, чтобы определить их на сервере. Для этого придется подключить сторонний репозиторий с дополнительными пакетами.

Преимущества X2Go

В отличие от нуждающейся в высокой пропускной способности канала системы VNC, X2Go использует продвинутый протокол NX 3 для минимизации объема передаваемых данных. В системе есть собственный X-сервер, к тому же она практически не требует настроек и отличается продвинутыми возможностями. Мы рассказали только о самых основных, но X2Go умеет намного больше, включая трансляцию клиенту звука и видео с сервера, печать на локальном принтере (на VPS придется установить дополнительные пакеты для настройки виртуального принтера) и общие каталоги. Взаимодействие с сервером идет через надежный и проверенный временем sshd — пользователю доступны безопасные механизмы аутентификации, в т.ч. с ключами. X2Go автоматически настраивает среду при входе в систему (держать X-сервер постоянно запущенным не нужно), при этом поддерживается многопользовательская работа и большинство популярных окружений рабочего стола, а сеанс не убивается даже после разрыва соединения.

Источник

Настройка Ubuntu Server после установки

Ubuntu Server — это дистрибутив Linux для установки на серверы. Он не содержит графической оболочки, по умолчанию доступны только консольные утилиты. После завершения установки вы получаете голую систему Ubuntu и прежде чем она станет способна выполнять свои функции сервера, вам предстоит потратить еще немного времени на ее настройку.

В этой статье мы разберем как выполняется настройка Ubuntu Server 18.04 после установки, рассмотрим настройку пользователей, SSH, а также настройку брандмауэра.

Настройка Ubuntu Server 18.04 после установки

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

1. Обновление системы

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

sudo apt update
sudo apt list —upgradable
sudo apt upgrade

Чем больше времени прошло с момента релиза установочного образа Ubuntu Server, тем больше времени займет обновление системы, но это необходимая операция. После обновления перезагрузите систему:

2. Настройка SSH

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

Сначала необходимо сменить порт SSH на удаленном сервере, иначе рано или поздно кто-то попытается его перебрать. Откройте файл /etc/ssh/sshd.conf, найдите строчку Port 22 и измените значение порта на другое число, например, на 2323:

sudo vi /etc/ssh/sshd_config

Для запуска службы SSH и добавления ее в автозагрузку выполните:

sudo systemctl start sshd
sudo systemctl enable sshd

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

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

/.ssh/id_rsa_ubuntu. Затем утилита предложит ввести пароль для ключа. Если вы не хотите вводить этот пароль каждый раз при входе по SSH, то его задавать не нужно. Но в целях безопасности очень не рекомендуется использовать ключи без паролей.

Читайте также:  Changing drive in linux

Затем отправьте только что созданный ключ на свой сервер:

Теперь вы сможете авторизоваться на этом сервере без ввода пароля:

Дальнейшую настройку сервера можно проводить через SSH.

3. Настройка брандмауэра ufw

Сервер будет находиться в сети, а поэтому к нему будет иметь доступ множество пользователей. Необходимо спрятать все запущенные на сервере службы с помощью брандмауэра и оставить только разрешенные. В Ubuntu для управления брандмауэром используется надстройка над iptables — ufw.

По умолчанию, после запуска брандмауэр закрывает доступ ко всем не разрешенным службам извне. Мы сейчас работаем на сервере по SSH, поэтому нужно разрешить эту службу:

sudo ufw allow OpenSSH

Если вы изменили стандартный порт SSH на втором шаге, необходимо разрешать именно тот порт, который вы указали:

sudo ufw allow 2323/tcp

Затем выполните такую команду для включения ufw:

sudo ufw enable

Далее нужно нажать y для подтверждения. Брандмауэр будет запущен и добавлен в автозагрузку. Вы можете посмотреть его состояние командой:

sudo ufw status

4. Настройка времени

Установщик не предлагает вам выбрать часовой пояс и по умолчанию остается UTC. Таким образом, вы получаете время по Гринвичу. Вы можете проверить какое время показывает ваш сервер с помощью команды:

Чтобы это изменить нужно добавить свой часовой пояс. Посмотреть доступные часовые пояса можно командой:

А для выбора нужного выполните:

sudo timedatectl set-timezone Europe/Kiev

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

sudo apt install ntp

А затем добавьте его в автозагрузку:

sudo systemctl enable ntp

5. Разблокировка пользователя root

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

sudo passwd root

И введите новый пароль. Затем вы сможете авторизоваться от имени этого пользователя.

Выводы

В этой статье мы разобрали как выполняется настройка Ubuntu Server после установки. Мы сделали только основные шаги, и для того чтобы эта система переварилась в полноценный веб-сервер, сервер баз данных или приложений нужно установить еще много программ. Но обо всем этом уже есть отдельные статьи на Losst.

Оцените статью:

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

26 комментариев

Я не понял, самого главного, зачем это? Админ который не может настроить время не админ, про фаервол я промолчу, а это мы еще ничего не настраивали. Для чего статья?

Видимо для начинающих — их большинство, но с сервером познакомиться полезно. Применительно к домашнему использованию, а в частности поднятию NAS, была-бы интересна статься с настройкой в ubuntu server: raid 5, dlna, samba и мониторинг дисков SMART. Всякие настройки веб-сервера и почтового сервера не интересны, ввиду того , что общедоступными и бесплатными пользоваться намного удобнее.

Меня это тоже улыбает, но дело в том, что не у всех есть стабильное интернет-подключение, поэтому нужна реконфигурация ntp-service, фаерволл — для проброса порта, а openssh — для удаленного доступа из терминала с прописью соответствующих конфига и порта. Насчет команды активации root-account’s я тоже посмеялся — но это дело привычки. а в остальном все верно. так обычно настраивается сервер с залоченным извне доступа в интрасеть.

Для запуска службы SSH и добавления ее в автозагрузку выполните

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

выполните команду для генерации ключа

не следует пренебрегать типом ключа, потому что ваша команда создаст тот ключ, который идёт в дефолте, скорей всего это будет RSA. текущая тенденция показывает, что ключи ed25519 выгодней, удобней и надёжней. но это IMHO.

Пароль для ключа задавать не нужно.

всегда задавайте пароль для ключа. всегда! вы не можете предугадать, где окажется ваш клиентский компьютер с парой ключей без пароля. его могут украсть, он может потребовать ремонта в мастерской, он наконец просто окажется в публичном пространстве. если на ключе не будет пароля, вы в довесок ко всем проблемам получите ещё и скомпрометированный сервер.

Теперь вы сможете авторизоваться на этом сервере без ввода пароля

настройкой демона sshd автор статьи видимо пренебрегает. после настройки подключения по ключу очень рекомендуется поменять порт, отключить возможность входить по паролю. ну и вижу в конце статьи автор советует настроить пароль root — сосем не знает и не умеет пользоваться Linux. жуть какая. на демоне sshd вход root желательно тоже отключать. но про рута ниже поругаюсь.

очень рекомендуется кроме часового пояса настраивать ещё и службу ntp.

В Ubuntu по умолчанию суперпользователь отключен.

чушь. в Ubuntu по умолчанию у root не задан пароль, и как следствие отсутствует возможность залогиниться. но первый настроенный в программе установки пользователь автоматически является sudoer-ом. читайте man sudo по поводу опции -s и не ломайте Ubuntu назначением пароля root-у. мало того, что SSH у вас настроен с дырами, вы ещё одну дыру открываете. зайдите в терминал, и вбейте последовательно две команды:

sudo -s
whoami

и поймёте, что пароль root на сервере не нужен, есть sudoer.

сервер у вас получился дырявый. но это полбеды. беда в том, что все новички, которые будут учиться по вашей статье, будут впоследствии иметь большие проблемы.

ну и последнее, что хотелось бы отметить. Ubuntu-server не подходит новичкам. если хочется научиться поднимать сервер, лучше всего подойдёт mini.iso — он позволяет поднять базовый сервер и настроить SSH, разница в действиях с Debian будет минимальной. но после настройки базового сервера начинается всё самое интересное. поэтому учиться следует на эмуляторах компьютеров, там можно всё сломать без возможных осложнений. а на боевой сервер следует идти, когда все действия понятны, отработаны и спланированы.

Читайте также:  Get mac windows phone

в общем так как-то. ссылки на статьи дал. не просто голословно выругал. если администратор ссылки удалит — на его совести.

Я понимаю, что вы очень-очень хотите прорекламировать здесь свой проект, но нет, ничего не выйдет. Это так не работает. Никаких ссылок на тот сайт здесь не будет. Теперь по замечаниям:

— SSH запущен — полностью правы. Сначала написал, потом проверил и уже не хотел удалять. Пусть будет на всякий случай.
— Пароль для ключа задавать не нужно — если мы делаем это для безопасности, пароль задавать нужно, но если мы хотим авторизоваться без ввода пароля — пароль задавать не нужно, уточню в статье.
— В Ubuntu по умолчанию суперпользователь отключен — отключен/не задан пароль. залогиниться то одинаково нельзя. Мне тоже не нравиться этот пункт потому что это не безопасно и новичкам лучше привыкать использовать sudo. Но это уже дело удобства за счет снижения безопасности.
— очень рекомендуется поменять порт — да, действительно, забыл добавить, на стандартном порту сразу же начинается перебор пароля. А вот вход по паролю для новичков лучше оставить. Ключ потеряется или не будет его под рукой в нужный момент и все. Достаточно поменять порт и смотреть время от времени все ли нормально.
— очень рекомендуется кроме часового пояса настраивать ещё и службу ntp — да, нужно добавить.

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

в Ubuntu root есть, и он активен всегда, но залогиниться рутом нет возможности. рутом можно стать только sudo -s. на снимке экрана, который вы тоже забанил, я вам это показал.

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

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

всё больше не спорю. плавайте.

«вход по паролю на сервер закрывать нужно обязательно. — это реальная дыра. при потере ключа»
«очень рекомендуется поменять порт»
Мы строим домашний сервер 😀 он за NAT-ом роутера или провайдера, ему даже файервол не нужен, впрочем, как и смена портов 🙂

И к Вам вопрос: смысл юзать брандмауэр ufw или иной брандмауэр, если средств iptables вполне достаточно? Чтоб GUI с картинками был? Или это для тех, кому лень man iptables читать?

Мужик, ты мне не нравишься. очень! Если мне что то не понятно — я перерываю кучу инфы, просматриваю кучу роликов, спрашиваю на форумах и нахожу правильное решение. Это нормальная реакция на все новое. А читать твои комментарии изложенные в пренебрежительно-презрительном тоне мне как то не айс.

ссылки на статьи дал. не просто голословно выругал. если администратор ссылки удалит — на его совести.
Пожалуй, и я умываю руки: не есть хорошо использовать чужой труд не ссылаясь на него (это я про ваш труд). а все дальнейшие статьи на losst, полетели от вашей ссылки, если не ошибаюсь, ибо мог найти неверное соответствие. но, благодаря здешнему владельцу/админу — сравнить не могу, так что, пока, Вы правы: если администратор ссылки удалит — на его совести.

Где я использую чужой труд и что и куда полетело?

Зачем автора так раскатывать? У меня домашний nas файлопомойка + посмотреть кино на плексе, углубляться в настройки фаера и даже ключей ssh для себя смысла не вижу. Для новичков статья будет интересной, каждый когда чему то учится делает свои ошибки. У меня одна только проблема скорость на linux раза в 3 ниже скорости под windows, мат. плата имеет 2 гигабинтных сетевых карт, в любой из них низкая скорость(( Может кто то подскажет как быть

Включите ручками:
sudo ethtool -s имя_сетевого_интерфейса speed 1000 duplex full autoneg on
+ перезагрузить или передёрнуть кабель

Добрый день!
А не подскажите, как можно оптимизировать Ubuntu Server? У Вас уже ранее рассматривалась оптимизация, но там в основном шла речь о GUIне. Здесь же всего этого нет, однако, можно, например, отключить pti в grub или дополнительно настроить кэширование. Возможно отключить какие-нибудь фоновые процессы, хотя их и так по минимуму по умолчанию, также попробовать поиграть с параметром vfs_cache_pressure и т.д. В основном меня интересует ускорение доступа к куче и запись в файл на SSD. Хотелось бы знать, как настройкой ОС можно ускорить работу своего приложения.

Тут, собственно, всё зависит от машины, на которой этот самый сервер установлен: физическая, виртуальная, размер RAM, про SSD уже понял.
Если в общих чертах, ибо это потянет на целую статью:
_всё, по-максимуму, в RAM (tmpfs никто не отменял)
_TRIM для SSD (не знаю, может в Ubuntu он и по умолчанию включен, но во FreeBSD и в Debian — точно нет)
_»поиграться» размерами кешей — настройки ядра под те или иные надобности: файловый сервер — это одно, а DNS-сервер — это другое
_возможно SWAP в zRAM заюзать вместо или впридачу к SWAP на SSD (от размера RAM зависит)

Источник

Оцените статью