Server build in 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 сервер своими руками

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

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

  • 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 и вторая сетевая карта.

Читайте также:  Shockwave flash для windows 10

После допиливания, в буквальном смысле, 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

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

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

Читайте также:  What are ini files in windows

Из этой статьи вы узнаете, как установить сервер на 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, но для других дистрибутивов действия будут аналогичными.

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

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

Источник

Buy and Build Powerful Linux Server for Your Home

Building a Linux home server from the ground up and without any previous experience is not nearly as complicated as it may seem. All you need to do is pick the right hardware, install a suitable operating system, and configure the server based on your needs. You can build a Linux server for your home on a very tight budget, but you can also spend a lot of money on premium server hardware and turn your home into a small datacenter.

What Is a Home Server and What Can I Do with It?

A server is any computer that processes requests from clients and delivers data to them over the internet or a different network, such as a local area network.

Most servers are located in dedicated buildings with redundant or backup components and infrastructure for power supply, extra-fast internet connection, and precise environmental control, but there’s nothing preventing you from having a server at home.

Here’s a list of services commonly provided by home servers:

  • Centralized storage: You can use a home server to store all your files in a single place that’s accessible from the internet. Such home servers are known as network-attached storage (NAS), and they typically contain several storage devices arranged into a logical, redundant storage container. NAS provides a cost-effective alternative to cloud storage services like Dropbox or Google Drive, allowing you to maintain total control over your data while still enjoying the convenience of remote access.
  • Mediaserver: Instead of having to painstakingly transfer media files from your computer to your smart TV using a USB flash drive or a portable hard drive, you can turn your Linux home server into a media server and access your movies, music, photos, and other content directly from any device. Distributions such as LibreELEC or OSMC provide a free and open source media center that you can install just like any Linux distribution.
  • Webserver: If you have a public IP address, you can host a website on your own server and avoid paying hosting fees. By hosting a website on your own hardware, you get to learn what goes on behind the scenes, and you can then use this knowledge to pursue a career as a server administrator for a hosting company.

Now that you know why it makes sense to build a Linux home server even in the era of cloud computing, it’s time to get started, and the first step is choosing the right hardware.

Choosing Hardware

Virtually any computer with a network card can act as a server, so you have many options when it comes to choosing hardware for your Linux home server.

Repurpose Old Hardware

If you’re like most Linux users, you most likely have at least a couple of old hardware computers just lying around the house. You may even have an entire computer that you don’t use anymore sitting in your closet and collecting dust. Unless the hardware is really ancient, you can repurpose it and use it to build a Linux home server.

Use a Single-Board Computer

Who doesn’t like single-board computers? They’re tiny, inexpensive, and can be easily transformed into versatile servers. Our favorite is the 4 GB model of the Raspberry Pi 4, but there’s also the Banana Pi, BeagleBone Black, ODROID XU4, or ASUS SBC Tinker Board, just to name a few. The reason why we recommend the Raspberry Pi 4 is simple: it’s the most popular single-board computer at the moment, so there are many tutorials and resources online.

Читайте также:  Как установить mac os iso с флешки с windows 10

Purchase a Prebuilt Server

If you would like to avoid assembling a server from individual hardware components, you can purchase a prebuilt server like the Dell PowerEdge T30, which is perfect for home users and small businesses. This affordable mini tower server offers the Intel Xeon E3-1225 v5 quad-core processor, 8 GB of RAM, 1 TB HDD, and slots for additional memory and storage.

Build Your Own Server

Building your own server is just as easy as building a desktop computer. You just need to select the necessary hardware components and assemble them. Here’s our recommended custom server build:

  • Processor: Intel Core i3-8100
  • Motherboard: Gigabyte Z390 UD
  • Memory: Crucial 32 GB Kit
  • Storage: Samsung 860 QVO 1 TB
  • Graphicscard: Intel UHD Graphics 630
  • Case: Cooler Master HAF XB EVO
  • Power supply: EVGA 650 GQ

To understand how to select the right hardware components for a Linux home server, read our server hardware selection guide.

Choosing an Operating System

Not all Linux distributions are equally suitable for a home server. You should choose a distribution that’s reliable, stable, easy to configure, and compatible with the hardware you’ve selected. Some of the best distributions for a Linux home server include:

  • Ubuntu: An easy-to-use Linux distribution with a huge community of dedicated users and great hardware compatibility. It has AppArmor, which is a Linux Security Module that’s similar to SELinux, allowing the system administrator to restrict programs’ capabilities with per-program profiles.
  • Debian: The parent distribution of Ubuntu, Debian offers multiple branches, each offering a different balance of stability and features. Debian has fairly modest hardware requirements, and it supports just about every architecture you will ever come across.
  • Arch Linux: This lightweight and flexible Linux distribution is perfect for those who want to build a Linux home server to learn as much as possible. Arch Linux is considerably more difficult to install than Debian-based distributions, but overcoming the steep learning curve can be extremely rewarding.
  • CentOS: Functionally compatible with Red Hat Enterprise Linux, CentOS is a community-driven server distribution that provides a consistent, manageable platform that suits a wide variety of server deployments.
  • OpenSUSE Leap: What sets OpenSUSE Leap apart from many other Linux distributions are its admin software tools, which include YaST, a comprehensive Linux system configuration & installation tool with an easy-to-use interface and powerful configuration capabilities.

Installing Software

To give you a small taste of what you can do with your new Linux home server, here’s a short list of some of the most popular software you can install on it:

  • Plex: A media server that can organize your entire media collection and stream favorite movies, TV, music, web shows, podcasts, and more to all devices you have at home.
  • Nextcloud: Offering functionality similar to Dropbox and other cloud file-sharing services, Nextcloud lets you collaborate and access your data from anywhere while keeping you in control.
  • HomeAssistant: This open source home automation solution can become the nerve center of your smart home and automate your life. It runs on the Raspberry Pi or any Linux home server.
  • Diaspora: Empowering its users to liberate themselves from the shackles of large corporations, Diaspora is a nonprofit, user-owned, distributed social network that you can set up on your Linux home server in just a few minutes.
  • SiCKRAGE: With this video library manager, you can download your favorite TV shows from torrent sites or Usenet automatically on your home media server.

If you’re still hungry for more great applications, we recommend you visit AlternativeTo and browse its large collection of self-hosted software.

Conclusion

As you can see, building a Linux home server from scratch is just as easy as building a desktop computer. All you need to do is select suitable hardware, install a reliable Linux distribution, and put your server to good use with some self-hosted applications or services.

About the author

David Morelo

David Morelo is a professional content writer in the technology niche, covering everything from consumer products to emerging technologies and their cross-industry application

Источник

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