Как собрать сервер для linux

Домашний linux сервер своими руками

Хочется поделиться с хабросооществом информацией о том как я собирал домашний сервер.

Из софта на домашнем сервере будет «крутиться» следующий набор:

  • torrent клиент с web-мордой
  • DHCP — раздаем ip адреса и сетевые настройки
  • TFTP — для сетевой загрузки
  • OpenVPN — для хождения в сеть с нетбука из недоверенных сетей
  • FTP/Samba/NFS — сетевые шары для доступа с домашних машин
  • Radius — для WPA2 авторизации
  • DigiTemp — мониторинг домашней температуры

Аппаратная часть

При выборе аппаратной части, вариантов было несколько:

  • старенький комп
  • самосбор на базе mini-ITX
  • тонкий клиент HP T5000
  • тонкий клиент на базе Neoware CA2

Первый вариант был сразу же отброшен из-за шума, пыли и энергопотребления. Второй был заказан, пока шли комплектующие, я успел передумать (захотелось шум и энергопотребление свести до минимума). В итоге, на Ebay были куплены тонкие клиенты HP t5000 и Neoware CA2. Месяц спустя пришли тонкие клиенты и из двух, после долгих размышлений, был выбран Neoware CA2. В него идеально поместился 2.5′ HDD и вторая сетевая карта.

После допиливания, в буквальном смысле, Neoware CA2 я принялся ставить на него Ubuntu 9.10 с офисного TFTP сервера. Установку производил самую минимальную. Если бы не было набора для сетевой установки, ставил бы Debian с USB CD-ROM и netinstall диска. Сам я ярый фанат RHEL/CentOS, но на домашний сервер решил ставить что-то из debian семейства, для расширения кругозора.

Torrent клиент и вебморда

Теперь перейдем к установке torrent клиента и вебморды. Была выбрана связка rtorrent + rutorrent, установка из репозитариев была отметена сразу, т.к. «родной» пакет был собран без xmlrpc-c который расширяет функционал rutorrent. Ниже фактически, скрипт для авто-установки rtorrent+rutorrent+lighttpd+php.

Устанавливаем всё что необходимо для компиляции xmlrpc-c, libtorrent, rtorrent
apt-get install checkinstall subversion build-essential make autoconf autotools-dev automake libtool libcurl4-openssl-dev libsigc++-2.0-dev pkg-config libncurses5-dev
apt-get remove rtorrent libtorrent11 libxmlrpc-c3 libxmlrpc-c3-dev libxmlrpc-core-c3 libxmlrpc-core-c3-dev

Компилируем и «заворачиваем» в .deb пакет xmlrpc-c, libtorrent, rtorrent
svn co xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
cd xmlrpc-c
./configure —prefix=/usr && make && checkinstall -D

cd ..
wget libtorrent.rakshasa.no/downloads/libtorrent-0.12.6.tar.gz
tar zxfv libtorrent-0.12.6.tar.gz
cd libtorrent-0.12.6
rm -f scripts/.m4 # для Debian
./autogen.sh && ./configure —prefix=/usr && make && checkinstall -D

cd ..
wget libtorrent.rakshasa.no/downloads/rtorrent-0.8.6.tar.gz
tar zxfv rtorrent-0.8.6.tar.gz
cd rtorrent-0.8.6
rm -f scripts/.m4 # для Debian
./autogen.sh && ./configure —with-xmlrpc-c —prefix=/usr && make && checkinstall -D

К сожалению, rtorrent не умеет работать в режиме daemon, по этому будем использовать screen
apt-get install screen -y
wget libtorrent.rakshasa.no/raw-attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh —output-document=/etc/init.d/rtorrent
chmod +x /etc/init.d/rtorrent
sed -i ‘s/»user»/»torrents»/’ /etc/init.d/rtorrent
update-rc.d rtorrent defaults
useradd -d /torrents -m torrents

Создаем конфиг и папки для сессий и готовых торрент закачек, после чего стартуем rtorrent.
mkdir /torrents/.rtorrent_session
cat >> /torrents/.rtorrent.rc

Теперь займемся вебмордой rutorrent. Для работы rutorrent необходим вебсервер и интерпретатор php.
apt-get install lighttpd php5-cgi php5-cli php5-curl curl -y
lighty-enable-mod fastcgi
echo ‘server.modules += ( «mod_scgi» )’ >> /etc/lighttpd/lighttpd.conf
cat >> /etc/lighttpd/lighttpd.conf
( «127.0.0.1» =>
(
«host» => «127.0.0.1»,
«port» => 5000,
«check-local» => «disable»
)
)
)
EOF
/etc/init.d/lighttpd force-reload

Вебсервер готов, теперь будем ставить rutorrent и несколько полезных плагинов к нему.
cd /var/www/
svn checkout rutorrent.googlecode.com/svn/trunk/rutorrent
cd /var/www/rutorrent/plugins/
svn checkout rutorrent.googlecode.com/svn/trunk/plugins/tracklabels
svn checkout rutorrent.googlecode.com/svn/trunk/plugins/cookies
svn checkout rutorrent.googlecode.com/svn/trunk/plugins/autotools
svn checkout rutorrent.googlecode.com/svn/trunk/plugins/erasedata
chown -R www-data:www-data /var/www/

Теперь можно заходить по server_ip/rutorrent и начинать пользоваться.

Теперь установим DHCP сервер и создадим для него конфиг таким образом чтобы клиенты получали:
router 192.168.1.1
dns сервер 8.8.8.8
сервер времени time.nist.gov
tftp сервер 192.168.1.1
и для примера фиксированная выдача 192.168.1.100 клиенту с MAC-адресом 00:1B:FC:33:F0:25
aptitude install dhcp3-server
cat >> /etc/dhcp3/dhcpd.conf
строчки с option-150 нужны для моего VoIP телефона Cisco 7940.

TFTP и сетевая установка

aptitude install xinetd atftpd atftp

cat >> /etc/xinetd.d/tftp
Теперь проверим, работает ли tftp сервер
root@dvr:

# echo bla > /tftpboot/123
root@dvr:

# atftp 127.0.0.1
tftp> get 123
tftp>
root@dvr:

# cat 123
bla

Всё нормально, теперь создадим netinstall наборы для нескольких ОС: Ubuntu karmic, Ubuntu lucid, Debian lenny, Debian sid, Debian squeeze, Fedora 13, CentOS 5.5, Mandriva 2010.0, Suse 11.2, Slackware 13.1, Hardware Detection Tool, memtest и MHDD. Для этого предлагаю использовать слегка модифицированный скрипт который я взял с HowtoForge.
apt-get install lftp -y

wget itblog.su/tftpboot_installs.sh
bash tftpboot_installs.sh

Теперь добавим SystemRescueCd в PXE меню
wget «http://downloads.sourceforge.net/project/systemrescuecd/sysresccd-x86/1.6.3/systemrescuecd-x86-1.6.3.iso?use_mirror=citylan»
mount -o loop systemrescuecd-x86-1.6.1.iso /mnt/
cp /mnt/sysrcd.* /var/www/
cp /mnt/isolinux/initram.igz /tftpboot/
cp /mnt/isolinux/rescuecd /tftpboot/

cat >> /tftpboot/pxelinux.cfg/default
Без особого труда в это меню можно добавить продукты Acronis, инсталляцию и запуск Windows XP и прочее.

Читайте также:  Не запускается линукс убунту

Вот так будет выглядеть наше меню:

Продолжение в следующей части. А именно:

  • OpenVPN сервер для «хождения» в сеть из не доверенных сетей (например из гостиницы)
  • FTP/Samba/NFS сетевые шары
  • Radius для авторизации wi-fi клиентов
  • DigiTemp зачатки умного дома, мониторинг температуры в квартире и за окном
  • festival — говорящий будильник
  • бакапы с хостинга

и подытожит статью скрипт который всё это установит в «два клика».

С удовольствием выслушаю замечания и дополнения.

Источник

Локальный веб-сервер под 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 со старым компьютером

Хотите узнать о Linux или запустить домашний веб-сервер? Установить Linux на старый запасной компьютер довольно легко в наши дни с помощью многих удобных для пользователя дистрибутивов, таких как Ubuntu и Mint Linux. После запуска и запуска у вас будет собственная платформа для размещения вашего веб-сайта либо для разработки, либо для самостоятельного размещения веб-сайта.

Эта статья с практическими рекомендациями разбита на 4 основных этапа: 1. Приобрести старый компьютер, 2. Установите операционную систему, 3. Настройка программного обеспечения веб-сервера приложения (Apache, PHP, MySQL) и 4. Доступ к компьютеру из интернета.

Приобрести старый компьютер

Linux является универсальной операционной системой в том смысле, что она может работать на самых медленных ПК, по крайней мере, в режиме командной строки. Для простоты мы собираемся запустить Ubuntu 10.10 «Maverick Meercat», который был только что выпущен и проверен Джастином.

Системные Требования

Ubuntu 10.10 перечисляет 256 МБ ОЗУ как минимальный объем, на котором он будет работать. Сама установка занимает 3,3 ГБ, а затем вы хотите оставить место для дополнительного программного обеспечения и любых файлов, с которыми вам нужно работать, поэтому я бы рекомендовал этот минимум в 10 ГБ.

Ubuntu поддерживает широкий спектр видеокарт, жестких дисков и другого оборудования; Если вы хотите проверить перед загрузкой установочного диска, посмотрите список совместимости оборудования Linux для всех систем и отдельных компонентов вашей системы, чтобы увидеть, будет ли он работать. Однако, прежде чем увлекаться этим, довольно просто и быстро протестировать все на Live CD, чтобы убедиться, что все будет работать в вашей системе.

Читайте также:  Как открыть idle python linux

Если вы планируете запускать сервер 24/7, убедитесь, что он находится в хорошо проветриваемом помещении. Лучше размещать его в кондиционированном помещении летом, так как тепло будет главным врагом вашей системы.

Установить Ubuntu

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

Перейдите на сайт загрузки Ubuntu Desktop CD, чтобы получить файл ISO. Эти образы дисков содержат последние версии программного обеспечения, поэтому после установки вам нужно будет выполнить как минимум обновление. Используйте 64-битную версию, если ваш компьютер поддерживает ее или 32-битную версию в противном случае. Запишите ISO на CD или DVD, вставьте его в дисковод компьютера и загрузитесь.

Если вам нужно изменить настройки BIOS для загрузки с компакт-диска, сделайте это, или иногда вам нужно нажать клавишу, чтобы выбрать альтернативный загрузочный носитель. Загрузитесь с дисковода компакт-дисков и выберите «Установить Ubuntu». В общем, мы будем устанавливать как можно меньше программного обеспечения по двум причинам: во-первых, чем больше программного обеспечения вы устанавливаете, а сервисов запускаете в фоновом режиме, медленнее будет ваша система. Во-вторых, это также открывает в вашей системе больше потенциальных дыр в безопасности в будущем.

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

После перезагрузки ваша установка практически завершена! Первое, что вам нужно сделать после установки, аналогично машине с Windows, — это применить все обновления. Перейдите в Система-> Администрирование-> Диспетчер обновлений и «Установить обновления». Вам может потребоваться перезагрузка после установки любых найденных обновлений.

Теперь у вас есть полнофункциональная установка Ubuntu.

Настройка служб приложений

У вас есть несколько вариантов здесь, но так как большинство веб-сайтов работают на комбинации Apache, MySQL и PHP, мы собираемся установить их. Это похоже на то, что мы рекомендовали установить на Windows

Эти приложения устанавливаются через Ubuntu Software Center. Запустите центр программного обеспечения через Система-> Администрирование-> Менеджер пакетов Synaptic. Здесь мы устанавливаем необходимое нам программное обеспечение.

Найдите и установите следующие имена пакетов, каждое из которых будет включать ряд предварительных условий: apache2, php5, php5-MySQL, а также MySQL-сервер. Примените изменения для установки пакетов.

Пакеты будут загружены и установлены в ближайшее время. Установщик предложит вам ввести пароль root для MySQL. Перезагрузка не требуется.

Проверьте свой веб-сервер!

Вы можете протестировать ваш веб-сервер, открыв веб-браузер Firefox на вашем сервере и перейдя по адресу http://127.0.0.1/.

Вы должны увидеть сообщение «Это работает!», Означающее, что ваш веб-сервер работает! И Apache, и MySQL будут работать в фоновом режиме и запускаться при загрузке. Ваш веб-сервер теперь по существу работает, и вы можете отредактировать файлы в / var / www и увидеть изменения в реальном времени на вашем сайте.

Во второй части этой серии, которая будет вскоре опубликована, будет рассказано, как загружать файлы на ваш веб-сервер Linux; и как получить доступ к вашему веб-серверу как через локальную сеть, так и через Интернет. Перепроверьте, чтобы увидеть, как завершить настройку. Настройка довольно проста, но всегда есть икоты по пути.

Часть 2

Вы узнали, как установить Ubuntu и программное обеспечение веб-сервера Linux, включая Apache, PHP и MySQL, в первой части этой серии статей. Теперь узнайте, как загружать свои файлы и, наконец, просматривать свой веб-сервер из любой точки мира!

Теперь, когда наш сервер функционален, мы должны позаботиться о той части, где мы действительно можем его использовать. По сути, нам необходимо представить сервер для внешнего мира, поэтому с этого момента важно поддерживать сервер в актуальном состоянии со всеми его исправлениями — Ubuntu Update Manager позаботится об этом за вас.

Нахождение локального IP-адреса сервера

Первое, что вам нужно сделать, это найти локальный IP-адрес сервера и установить для него то, на что вы позже сможете ссылаться. Давайте найдем текущий IP-адрес сервера — найденный по протоколу динамического DHCP — в поле Network Information.

Щелкните правой кнопкой мыши ваше сетевое соединение, которое будет массивом вверх / вниз, и перейдите к разделу «Информация о соединении». Появится окно с вашим текущим IP-адресом, картой сетевого адаптера, широковещательным адресом, шлюзом и DNS-сервером. Запишите это, как мы будем использовать на следующем шаге.

Нам нужно отредактировать информацию о вашем соединении, чтобы получить статический IP-адрес в вашей локальной сети. Щелкните правой кнопкой мыши по этому меню, но на этот раз перейдите к «Редактировать соединения». Выберите имя адаптера из предыдущего шага — в моем случае это eth1, и отредактируйте эти настройки. Выберите вкладку IPv4 и переключите «Метод» на «Ручной», а не «Автоматический (DHCP)», который используется по умолчанию при установке. Введите информацию в настройках подключения.

Читайте также:  Rkeeper 6 windows 10

Единственное отличие, которое у нас будет на этот раз, будет ваш IP-адрес. Сохраните первые три октета (числа между точками) и измените последний на большое число ниже 254. Важно, чтобы этот номер не использовался в вашей сети, и, если вы не уверены, выберите высокий IP-адрес например, 250. Для нашего примера я знаю, что .10 свободен, поэтому предположим, что наш новый IP-адрес — 192.168.2.10. Это будет ваш статический локальный IP-адрес.

Совместное использование веб-папки

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

Сначала нам нужно ослабить права доступа к нашей веб-папке. Откройте терминал, перейдя в Приложения-> Аксессуары-> Терминал. Введите следующую команду:

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

Теперь перейдите в браузер файлов (Places-> Computer) и перейдите в File System -> / var /. Щелкните правой кнопкой мыши папку www, а затем «Параметры общего доступа». Отметьте «Поделиться этой папкой». Для обеспечения безопасности вы можете поделиться им с паролем или без него. Выберите «Гостевой доступ», чтобы открыть общий доступ к папке без ввода имени пользователя и пароля.

Это означает, что вы или кто-либо еще сможете получить доступ к файлам без пароля. По этой причине я рекомендую поделиться с паролем. Это будет больше боли, потому что вам нужно будет ввести эту информацию, но это, безусловно, более безопасно. Также отметьте «Разрешить другим пользователям создавать и удалять файлы в этой папке». Это позволяет получить доступ на запись из общего каталога.

Чтобы просмотреть свои файлы, перейдите в сетевую папку //192.168.2.10/www. В зависимости от настроек безопасности вам будет предложено ввести пароль или доступ к файлам напрямую. Это тот же набор файлов, к которым вы можете получить доступ в своем веб-браузере, перейдя по адресу http://192.168.2.10/.

Перенаправление порта

Теперь, когда у нас есть наш IP-адрес, важно понять, что такое переадресация портов. Каждый человек, подключенный к Интернету, находится за IP-адресом. Для большинства домашних подключений, а также для некоторых деловых подключений IP-адрес вашего локального компьютера фактически не отображается в Интернете — он будет находиться в частном диапазоне, равном 192.168.x.x или 10.x.x.x. Так как же посетители вашего сайта на самом деле связываются с вашим сервером? Мы делаем это с переадресацией портов.

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

В вашем маршрутизаторе должен быть раздел «Переадресация портов» или «Приложения», который позволит вам правильно перенаправлять порты. Перенаправьте TCP-порт 80 внутрь вашей сети на IP-адрес, который мы указали выше. Каждый маршрутизатор индивидуален, поэтому обратитесь к руководству по эксплуатации вашего маршрутизатора, чтобы узнать, как правильно его настроить.

Получение статического имени хоста

Большинство домашних подключений имеют так называемый динамический IP

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

В прошлом году ознакомьтесь с этой статьей для получения дополнительной информации об использовании службы DynDNS. Убедитесь, что вы используете клиент Linux для обновления вашего динамического IP с помощью серверов DynDNS. Для нашего веб-сервера вы хотите перенаправить TCP-порт 80. Перенаправить этот порт на локальный статический IP-адрес, в нашем случае это 192.168.2.10.

Теперь вы сможете посещать свой веб-сервер из внешнего мира, перейдя по URL-адресу: http://yourhostname.dyndns.org. Некоторые интернет-провайдеры блокируют порт 80 для вашего маршрутизатора. В этом случае перенаправьте что-то вроде порта 8080 на порт 80. Это позволит вам посетить ваш веб-сайт, перейдя по адресу http://yourhostname.dyndns.org:8080.

Мир это твоя жемчужина

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

Теперь, когда ваш веб-сервер настроен, вы можете сосредоточиться на программировании или установке собственного программного обеспечения!

Вопросы от новых системных администраторов? Спросите в комментариях, и я обязательно вернусь к вам!

Источник

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