Как сделать хостинг для сайта на своем компьютере linux

Обновлено: 07.07.2024

У меня (как и у многих web-разработчиков) имеется с десяток сайтов которые необходимо где-то размещать (хостить).

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

В то-же время в наличии имеется:

  • Домашний сервер на Ubuntu
  • Быстрый ethernet-интернет от МТС

Что делать?

Я не буду останавливаться на том, как настроить linux сервер (и тем более как его выбрать), поскольку предполагаю, что он у вас уже есть. Также я не буду подробно расписывать настройки nginx и Apache, поскольку опять-таки предполагаю, что вы с этим справитесь самостоятельно.

Для решения нам нужно настроить DNS-сервер, а именно следующие записи: SOA, NS, MX, A, CNAME. Важно чтобы мы имели возможность настройкой TTL (time to live), поскольку время жизни наших записей должно быть очень небольшим, буквально 60-120 секунд. В противном случае при смене IP-адреса сервера пользователи долго не смогут попасть на наш сервер (из-за кеширования).

Итак, нам нужен DNS сервер, варианты решения:

  1. Используем сервисы которые предоставляют нам DNS-хостинг
  2. Используем собственный DNS-сервер в связке с DDNS-доменом

Используем сервисы которые предоставляют нам DNS-хостинг

Остальные сервисы рассматривать не будем, а сосредоточимся на втором варианте.

Используем собственный DNS-сервер в связке с DDNS-доменом

1. Настроить 2 или 3 DDNS-поддомена

Почему 2 или 3? Потому, что ряд регистрантов не разрешит вам использовать домен только с одним NS-сервером. Самое обидно, что не все про это скажут — ваш домен просто не будет работать, но вы не будете понимать почему.

2. Настраиваем собственный DNS-сервер


Создаем зоны (по одной зоне на каждый наш домен):


и собственно файл с настройками зоны:


Примечание: обращаю внимание, что TTL устанавливаем равным 60 секунд. В файле /etc/bind/named.conf.local добавляем подключение нашей зоны:


Все, рестартуем BIND:

3. Настроить наш домен(ы)

Идем в панель управления регистратора и там в настройках нашего домена в качестве NS-серверов указываем созданные DDNS-поддомены:


После этого возможно придется подождать несколько часов (или даже сутки) пока настройки среплицируются между всеми серверами.

4. Настроить периодическое обновление IP-адресов

Мой роутер поддерживает обновление IP-адреса на одном домене, но мне нужно это делать сразу для 3-х доменов. Плюс нам надо обновлять IP-адрес в конфиге BIND'а, поэтому напишем скрипт который будет делать:


Скрипт нужно запускать под рутом (чтобы ему хватило прав обновлять конфиги BIND'а и рестартовать его). Добавляем в crontab рута его запуск каждую минуту:

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

Хотели бы вы узнать, что такое веб сервер? Или же впервые в жизни "потрогать" виртуальную машину? А может вам просто интересно, как выглядит хостинг? С любовью для пикабушников постараюсь рассказать обо всем по немножко.

Создаем свой собственный хостинг не потратив и копейки Хостинг, Гайд, Nginx, Ubuntu, Длиннопост

Disclamer: Данный материал является ознакомительным и рассчитан на людей, которые только начинают свой путь в мире IT технологий. Технические подробности всего раскрываться не будут(но на вопросы отвечу). Следующий материал является прямым скриптом, как сделать веб хостинг. И небольшая просьба, если вы добавляете в сохранки, оцените пост, тем самым вы даете мне понять, следует ли делать подобные гайды.

Что нам потребуется?
1. Виртуальная машина (далее ВМ) - VMWare
2. Любой компьютер, на который мы установим ВМ
3. Дистрибутив Ubuntu 18.04 LTS. Что бы не пугать вас, лучше скачайте Desktop image, она имеет графическую оболочку, а не только консоль.

Первым делом устанавливаем нашу программу виртуализации - VMWare. Запускаем ее и нажимаем "Создать новую ВМ". Выбираем скачанный дистрибутив

Создаем свой собственный хостинг не потратив и копейки Хостинг, Гайд, Nginx, Ubuntu, Длиннопост

Full name и user name - по вашему желанию. Жмем далее, "Имя ВМ" и путь хранения ВМ - по вашему усмотрению. Размер выделяемой памяти оставляем по умолчанию(можно снизить до 10 гб), жмем далее.

В последнем пункте жмем Customize Hardware. Т.к. вы будете работать в самой ВМ и ее виртуальной оболочке, стоит увеличить значения пункта Processors до 4.

Создаем свой собственный хостинг не потратив и копейки Хостинг, Гайд, Nginx, Ubuntu, Длиннопост

В пункте Network Adapter выбрать значение Bridged и установить галочку Replicate.

Создаем свой собственный хостинг не потратив и копейки Хостинг, Гайд, Nginx, Ubuntu, Длиннопост

Жмем Close > Finish. Дожидаемся окончания установки ОС. Когда ОС установилась, открываем терминал комбинацией клавиш Alt+Crtl+T или же в нижнем левом углу жмем на Show Application и пишем в поиске - Terminal.

Создаем свой собственный хостинг не потратив и копейки Хостинг, Гайд, Nginx, Ubuntu, Длиннопост

Далее нам следует получить права супер пользователя, в терминале вводим команду sudo su и вводим пароль, который вы указывали при установке системы.

Сначала мы обновим ОС до актуальной версии. Вводим в терминал команду:

Вы превосходны! Теперь вы имеете готовую машину, для создания веб сервера. Далее мы и установим наш веб сервер Nginx.

После установки вы можете посмотреть его статус с помощью команды

Создаем свой собственный хостинг не потратив и копейки Хостинг, Гайд, Nginx, Ubuntu, Длиннопост

Примечание: Пример управления процессами в ubuntu - systemctl stop\start\status\reload

Собственно, веб сервер уже находится в активном состоянии и вы даже можете зайти на свой "сайт". Для этого вам стоит узнать локальный адрес своей виртуальной машины. Что бы его узнать, вводим в терминал:

Создаем свой собственный хостинг не потратив и копейки Хостинг, Гайд, Nginx, Ubuntu, Длиннопост

127.0.0.1 - это localhost, адрес вашего компьютера по умолчанию, если так можно выразиться. Нам нужен тот, который начинается(в большинстве случаев), с 192.168.*.*

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

Создаем свой собственный хостинг не потратив и копейки Хостинг, Гайд, Nginx, Ubuntu, Длиннопост

Файлик этот лежит в /var/www/html/

Что бы его отредактировать, введите

Создаем свой собственный хостинг не потратив и копейки Хостинг, Гайд, Nginx, Ubuntu, Длиннопост

При вводе пути каталогов вы можете нажимать Tab, что бы автоматически заполнялось существующее имя. Например /var/ww *жмем таб* выводится /var/www/. Так же если вы не знаете, что находится в данном каталоге, но если хотели бы узнать, нажмите таб дважды, например /var/ *2-x tab*:

Создаем свой собственный хостинг не потратив и копейки Хостинг, Гайд, Nginx, Ubuntu, Длиннопост

Примечание: перемещение по каталогам осуществляется с помощью утилиты cd. Если вы не работали с терминалом - краткое пособие

Выйти из редактора можно комбинацией клавиш Crtl+X. nano - это текстовый редактор, аля блокнот в винде, только этот в терминале.

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

Сперва нам следует выяснить одну вещь. Как вы подключены к интернету. Кабель идет на прямую в компьютер или в роутер. На этом этапе нам придется заниматься сложными, для новичка, вещами - port mapping или проброс портов.

netsh interface portproxy add v4tov4 listenport=8080 listenaddress=YouIPv4 connectport=80 connectaddress=IP адрес вашей ВМ

Эта команда перенаправляет весь трафик поступающий конкретно на ваш компьютер из интернета, на порт nginx-a, который находится в ВМ. Более подробно про проброс - тут

2. Если у нас кабель идет из роутера в компьютер.

Сначала нам следует залогиниться в веб интерфейс вашего роутера, для каждого роутера это индивидуальный процесс, придется погуглить. Внутри роутера, обычно на главное странице, есть его собственный IP адрес. Он то нам и нужен, его скопируйте и отложите не на долго. Далее нам следует найти "Переадресацию". В условиях переадресации нужно добавить следующее правило:

Перенаправлять весь трафик с порта 8080 на порт 80, IP адрес вашей ВМ. В моем случае IP адрес 192.168.0.102, протокол TCP.

Создаем свой собственный хостинг не потратив и копейки Хостинг, Гайд, Nginx, Ubuntu, Длиннопост

Жмем кнопку Create Hostname.

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

Создаем свой собственный хостинг не потратив и копейки Хостинг, Гайд, Nginx, Ubuntu, Длиннопост

После создания домена информация на серверах noip может обновляться до суток, но обычно в течении 5 минут все заводится.

Остается финальный штрих, ввести наш новосозданный адрес, и убедиться, что все работает :)
Вводить следует так: ИмяВашегоСайта:8080

как создать сайт на wordpress, настроить и оптимизировать wordpress


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

Минимальные требования на установку Ubuntu Server:

Пригодиться ниже:
1. Чтобы ввести в командную строку предыдущие запросы/команды можно нажать стрелку вверх или вниз и выбрать предыдущий нужный запрос/команду.
2. Чтобы остановить ping нужно нажать Ctrl+C

Чтобы потренироваться можно установить Ubuntu Server на виртуальную машину (VirtualBox).





Для того, чтобы подключиться через SSH нам нужно узнать ip адрес, для этого воспользуемся командой ifconfig:


Вводим ip в программе PuTTY:


И соединяемся с сервером через SSH принимая ключ безопасности:


А теперь приступаем непосредственно к настройке сервера!

Как только Вы установили сервер, его лучше всего обновить. Для обновления используются следующие команды:

После обновления нужно перезагрузить систему с помощью команды reboot.
А выключить систему можно с помощью команды poweroff.


Как можно перемещаться между папками, смотреть содержимое папок:



Также есть визуальный файловый менеджер, который нужно установить:

, а после можно запустить с помощью команды mc:



Чтобы выйти из Midnight Commander нажимаем F-10:

Приступаем к установке Apache:

После установки Apache2, если открыть браузер и ввести в него ip адрес, то откроется следующая страница:


Узнать ip можно с помощью команды ifconfig:



В Windows можно открыть файл C:\Windows\System32\drivers\etc\hosts
и прописать в нём следующее:


То есть на своей локальной машине мы сконфигурировали свой DNS сервер.


Теперь выясним в какой папке лежит наш сайт, как нам его менять и как сделать на сервере несколько сайтов.

Рассмотрим следующие команды:


Сайт лежит в следующей папке:
/var/www/html/

Создадим отдельную папку для первого сайта и присвоим права 755 к папке и всем файлам, которые в ней лежат, а также сделаем пользователя admin владельцем данной папки:

Создадим индексный файл в папке сайта:

Введем следующий код:


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



Копируем файл с сохранением прав доступа:

И открываем файл:



Нажимаем Ctrl+O и Enter, сохраняя изменения. Далее жмем Ctrl+X и выходим из редактора.

ПРИМЕЧАНИЕ: Когда Вы подключите статический ip адрес, то в строчке ServerName прописываем вместо site1 статический ip адрес.

Включаем виртуальный хост:

Теперь открываем браузер:


Далее устанавливаем php.

Создадим php файл на нашем сайте:

Вводим следующий код:


Заходим на наш сайт и видим следующее:




Далее запускаем настройку mysql сервера:

Сменить ли пароль root? Y

Удалить ли анонимных пользователей? Y

Отключить ли возможность пользователя root подключаться удаленно? N

Удалить ли тестовые БД? Y

Перезагрузить ли таблицу с привилегиями? Y

Чтобы открыть доступ к БД нужно ввести следующую строчку:


Вводим следующие 2 строчки (как на картинке выше):

После чего должен потребовать пароль от БД, вводим пароль.

Не забываем выйти из под root:

А теперь с помощью данной команды можно подключится к БД:

Попросит ввести пароль от БД, вводим его. Всё мы вошли в БД.

Чтобы выйти из БД пишем следующее (не забываем ставить ; в конце строчки):

Должен написать Bye (пока).


В диалоговом окне на вопрос: Для какого веб-сервера мы настраиваем? выбираем apache2 (выбрать с помощью пробела) и нажат Enter.

Следующий вопрос: Настроить БД для phpmyadmin с помощью dbconfig-common? Отвечаем: Да

Далее вводим пароль и подтверджадем пароль для phpMyAdmin.

Все готово, установка завершена!

Теперь phpMyAdmin открывается по адресу:



Если виден только код, а не страничку входа, то набираем следующие команды:

После этого станица входа в phpmyadmin заработает!

Далее давайте установим wordpress:


Далее с помощью команды wget закачиваем wordpress:


Архив скачается в домашнюю папку.

Вводим команду ls для просмотра папки:


Далее разархивируем архив с помощью команды tar:


С помощью команды ls посмотрим, что у нас получилось:



Но сначала удалим из папки сайта ненужные файлы.
Откроем файловый менеджер Midnight Commander и перейдем в папку var/www/site1:


Здесь удалим ранее созданные нами файлы index.html и test.php при помощи клавиши F-8.


Нажимаем F-10, чтобы выйти из Midnight Commander.

Далее перемещаем все содержимое папки wordpress в папку нашего сайта:


Сейчас открываем браузер и обновляем страничку нашего сайта:


Откроется окно установки wordpress.

Теперь нужно создать Базу Данных (БД) и пользователя БД для сайта.

Для этого заходим в phpMyAdmin открывается по адресу:




Всё мы создали БД (в нашем примере: site1) и пользователя БД (в нашем примере: admin с паролем admin).

Заходим в браузер:




Нужно скопировать предлагаемый код.

С помощью команды nano создаем файл wp-config.php и вставляем в него скопированный код:



Откроется следующее окошко, где вводим Имя сайта, пользователя, пароль, e-mail:


Сайт на wordpress готов!

PS: Подключил статический ip адрес, настроил А запись, сайт работает, но вот следующую настройку не делал:

Как сделать хостинг дома

В кругу веб-разработчиков можно часто слышать о VPS-серверах и хостинг-провайдерах, предоставляющих виртуальные машины в аренду. Такие услуги приходят на помощь загруженным сайтам, корпоративным порталам, форекс-трейдерам и другим проектам. Найти подходящий хостинг бывает довольно проблематично: высокая цена, плохая производительность и прочие аспекты, мешающие оптимальному функционалу. Альтернативой VPS может стать создание собственного домашнего сервера. Не сказать, что это лучший вариант, но при грамотном подходе для небольшого сайта хватит ресурсов домашнего ПК. Конечно, это не будет VPS в обычном понимании, лучше это назвать хостингом для сайта.

О создании домашнего сервера сегодня и поговорим.

Создаем сервер с нуля

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

При создании собственного сервера можно пойти двумя путями: использовать личный компьютер или арендовать VPS у хостинг-провайдера.

В первом случае потребуется отдать все силы ПК на обработку данных и поддержание высокой производительности хостинга. Обратите внимание, что сервер будет использовать ваше интернет-соединение, поэтому позаботьтесь о бесперебойной сети с мощным тарифным планом.

Если вы уверены в силах своей машины, то следующий шаг — создание статического IP. По умолчанию адрес установлен как динамический, он изменяется каждый раз при выходе в интернет. Статический же напротив устанавливается один раз и всегда остается неизменным. Это позволяет обеспечить точку входа для «белых» сайтов, платежных систем, безопасных соединений и почтовых сервисов.

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

Обсудить покупку статического IP вы можете со своим интернет-провайдером. Далее следует установка программного обеспечения, в нашем случае отлично подойдет Open Server, серверная платформа, предназначенная для веб-разработчиков. Благодаря ей мы можем не беспокоиться об установке PHP, Apache, MySQL и прочих средствах. Установив данное ПО, мы сможем запустить сервер дома и загрузить на него сайт.

Рассмотрим краткую инструкцию по работе с Open Server:

  1. Первым делом установим официальную версию — переходим для этого на страницу разработчика и выбираем один из пакетов программы.
  2. На отобразившейся странице нам предлагают пожертвовать деньги разработчикам. Если оплатить минимальную стоимость, то скорость загрузки возрастет в разы. В противном случае просто кликаем по кнопке «Нет, спасибо, хочу просто скачать» и ожидаем загрузку.
  3. Устанавливаем программу и переходим в ее директорию. Здесь перед нами отобразится набор различных папок и два файла для запуска — выбираем подходящий под разрядность ОС и открываем его. Также для запуска отключаем антивирус.
  4. В нижнем правом углу будет активирована новая иконка в виде красного флажка — она сигнализирует о том, что программа открылась, но еще не запущена. Оставим ее пока такой, кликнем по значку и перейдем в настройки.
  5. Переходим во вкладку «Сервер» и обращаем внимание на строку «IP-адрес сервера». По умолчанию он установлен как локальный, то есть доступ открыт только текущему компьютеру. Для запуска сервера в Интернете потребуется указать статический адрес и нажать «Сохранить».
  6. Теперь можно запускать сервер — для этого достаточно кликнуть по красному флажку и выбрать опцию «Запустить». В некоторых случаях может возникнуть ошибка «Несовместимость конфигурации: домен/алиас localhost можно использовать только с IP-адресом 127.0.0.1». В таких случаях необходимо перейти в директорию ПО, открыть папку domains и переименовать папку localhost в openserver.

Мы провели работу с настройкой локального сервера. Что касается аренды VPS у хостинг-провайдера, нам потребуется подобрать подходящий тариф и активировать его. На готовый сервер мы сможем выгрузить свой веб-ресурс, а затем открыть его всему интернету.

Читайте также: