Как запустить сайт на сервере
Перейти к содержимому

Как запустить сайт на сервере

  • автор:

DevOps Basics: как запустить сайт на своем сервере

Polina Shneider

DevOps (development + operations) — это направление, находящееся на рубеже разработки ПО и системного администрирования. Примерами DevOps-задач могут быть размещение проекта на сервере, автоматизация деплоя и обеспечение бесперебойной работы сервиса в условиях высокой нагрузки.

Понимать принципы DevOps полезно любым разработчикам. В этой статье мы начнем с основ — настроим сервер и запустим на нем сайт.

Наш гайд будет состоять из нескольких этапов:

  • Покупка домена
  • Аренда сервера
  • Настройка DNS-записей
  • Настройка nginx, как обработчика запросов

Покупка домена

Это можно сделать на любом сервисе-регистраторе: (например, reg.ru, godaddy, namecheap, gandi.net). Вам нужно подобрать свободное имя, заполнить регистрационные данные и внести оплату.

Аренда сервера

Следующим шагом нужно выбрать vps-хостинг (virtual private server) и арендовать сервер. Это может быть Selectel, Timeweb или любой другой.

Мы не будем рассматривать работу с виртуальным хостингом (shared hosting), а настроим всё сами. А сейчас небольшое отступление — чем виртуальный хостинг отличается от vps.

Виртуальный (shared) хостинг VPS-хостинг
Много сайтов разных владельцев находятся на одном сервере. Вы арендуете виртуальный выделенный сервер и размещаете на нем свои проекты.
У вас нет root-прав. Вы не можете влиять на установленную на сервере ОС и набор ПО. У вас есть root-права. Можно настроить окружение под свои потребности.
Есть предустановленная панель управления с графическим интерфейсом. Панели управления в комплекте нет. Для работы понадобятся навыки администрирования Linux.
Подходит для сервисов с небольшой посещаемостью. При большом количестве посетителей может начать тормозить из-за «сайтов-соседей». Подходит для проектов с высокой нагрузкой.

Как сделать сервер дома

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

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

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

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

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

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

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

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

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

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

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

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

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

На этом наша статья подходит к концу. Удачи!

Как разместить сайт на сервере с LAMP

url image

В качестве примера будем использовать тестовый домен example.com . Не забудьте изменить его на свой.

  • Шаг 0. Cтруктура каталогов для размещения сайтов
  • Шаг 1. Создание директории сайта и файлов логов
  • Шаг 2. Создание конфигурационного файла — Virtual Host
  • Шаг 3. Создание базы данных
  • Шаг 4. Установка CMS и проверка работы сайта

Шаг 0. Структура каталогов для размещения сайтов

Чтобы в будущем мы могли просто и непринуждённо добавлять новые сайты, настраивать FTP или sFTP-доступ для отдельных директорий, не помешает заранее определиться, как оптимально расположить их на сервере.

Самая простая структура выглядит так:

Директория веб-сервера для размещения сайтов

Она будет использоваться в качестве примера ниже.

Тем не менее, если вы планируете разместить на сервере только один сайт, можно не тратить время на настройки и просто загрузить файлы сайта в папку /var/www/html — сайт будет работать и так. Но в будущем это может привести к необходимости в перенастройке, например, когда потребуется разместить новый сайт.

Шаг 1. Создание директории сайта и файлов логов

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

mkdir /var/www/example.com /var/www/httpd-logs touch /var/www/httpd-logs/example.com.access.log /var/www/httpd-logs/example.com.error.log

Осталось настроить права доступа. Чтобы все функции сайта работали корректно, все его файлы должны быть доступны для обработки веб-серверу. Поэтому указываем в качестве владельца системного пользователя веб-сервера:

chown -R www-data:www-data /var/www/example.com
chown -R apache:apache /var/www/example.com

Недостаток такого подход в том, что работать с файлами сайта будет не очень удобно. Формально при каждой загрузке новых файлов потребуется редактировать их владельца — с пользователя, под которым файлы загружены, на системного пользователя и группу веб-сервера.

Шаг 2. Создание конфигурационного файла сайта — VirtualHost

Чтобы веб-сервер стал принимать запросы к нашему сайту, в первую очередь нужно добавить его конфигурационный файл — так называемый VirtualHost . Он нужен, чтобы указать веб-серверу, как обрабатывать запросы к сайту, где лежат его файлы, куда записывать сообщения об ошибках и др. Если на сервере планируется разместить несколько сайтов, будет удобнее добавить VirtualHost для каждого отдельно.

На CentOS требуется выполнить предварительную настройку.

Создадим папку для размещения конфигурационных файлов сайтов:

mkdir /etc/httpd/sites-enabled/

Откроем конфигурационный файл веб-сервера:

vim /etc/httpd/conf/httpd.conf

Добавим новую строку в конец списка параметров:

Include sites-enabled/*.conf

Сохраним и закроем файл.

    Добавляем новый файл c именем example.com.conf (где example.com — ваш домен):
    Ubuntu и Debian:

touch /etc/apache2/sites-available/example.com.conf
touch /etc/httpd/sites-enabled/example.com.conf
nano /etc/apache2/sites-available/example.com.conf

В качестве примера приведён редактор nano . Для сохранения файла нажмите сочетание Ctrl + O , проверьте имя файла и нажмите Enter . Для выхода из файла нажмите сочетание Ctrl + X .

vim /etc/httpd/sites-enabled/example.com.conf

В качестве примера приведён консольный редактор vim . Для входа в режим редактирования на клавиатуре нажмите I . Для выхода из режима редактирования нажмите Esc . Для сохранения и выхода из файла введите сочетание :wq Для выхода без сохранения введите :q!

Вставляем в файл следующий текст:

123.123.123.123:80 > ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com CustomLog /var/www/httpd-logs/example.com.access.log combined ErrorLog /var/www/httpd-logs/example.com.error.log AddType application/x-httpd-php .php 

Измените выделенный текст на ваши данные ( 123.123.123.123 — IP-адрес сервера и example.com — имя домена).

После завершения редактирования сохраните и закройте файл.

Для Ubuntu и Debian осталось активировать VirtualHost нового сайта и отключить текущий, включенный по умолчанию:

a2dissite 000-default.conf a2ensite example.com.conf

Перезапустим веб-сервер для применения изменений:

systemctl reload apache2
systemctl reload httpd

Шаг 3. Создание базы данных

База данных — обязательный компонент для работы любого современного сайта. Одним из этапов установки большинства CMS всегда является настройка базы данных.

Чтобы создать базу для нового сайта, подключитесь к серверу баз данных:

mysql -u root -p

После ввода пароля создадим новую базу данных exampleDB :

create database exampleDB;

Далее добавим нового пользователя сервера баз данных ( exampleDB-user ) и предоставим ему доступы для работы с базой сайта. Важно: не забудьте сохранить название базы данных, имя пользователя и пароль — они потребуются для настройки сайта.

grant all privileges on exampleDB.* to 'exampleDB-user'@'localhost' identified by 'p@ssw0rd' with grant option;

Выходим из консоли сервера баз данных:

exit;

Шаг 4. Загрузка файлов и проверка работы сайта

Осталось самое простое — загрузить файлы сайта.

  • Загрузка готового сайта
  • Установка CMS

Загрузка готового сайта

Если у вас уже есть готовый сайт, загрузить его файлы можно по sFTP.
В итоге в папке сайта example.com должен оказаться архив вашего сайта (в примере example.com.tar.gz ) и дамп базы данных (в примере dump.sql ):

tar -xzf example.com.tar.gz

На CentOS tar по умолчанию не установлен. Для установки воспользуйтесь командой:

yum -y install tar

Разворачиваем дамп базы данных:

mysql -u exampleDB-user -p exampleDB < dump.sql

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

Установка CMS

Если вы хотите развернуть новый сайт — например, в целях разработки или тестирования, воспользуйтесь следующими инструкциями по установке CMS:

  • Как установить WordPress на виртуальный сервер
  • Как установить Drupal на виртуальный сервер
  • Как установить Joomla! на виртуальный сервер

Публикация вашего веб-сайта

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

Какие существуют варианты?

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

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

Чтобы иметь больший контроль над контентом и внешним видом веб-сайта, большинство людей предпочитают покупать веб-хостинг и доменное имя:

  • Хостинг — арендованное файловое пространство на веб-сервере хостинговой компании. Вы размещаете ваши файлы веб-сайта в этом пространстве, и веб-сервер выдаёт контент для веб-пользователей, которые запрашивают его.
  • Доменное имя — уникальный адрес по которому люди могут найти ваш веб-сайт, например http://www.mozilla.org или http://www.bbc.co.uk . Вы можете арендовать доменное имя на столько лет, сколько захотите (минимум на 1 год) у регистратора доменов.

Множество профессиональных веб-сайтов располагается в Интернете именно таким образом.

Кроме того, вам потребуется File Transfer Protocol (FTP)-клиент (более подробно см. Сколько это стоит: программное обеспечение), чтобы передать файлы веб-сайта на сервер. Существует множество FTP-клиентов, но, как правило, вам нужно войти на веб-сервер, используя данные, предоставленные вашей хостинговой компанией (например: имя пользователя (логин), пароль, имя хоста). Затем FTP-клиент отобразит файлы на вашем компьютере в одной половине окна и файлы на хостинговом сервере в другой половине, так вы сможете перетаскивая копировать файлы с вашего компьютера на сервер и обратно.

Советы по поиску хостингов и доменов
  • Здесь мы не продвигаем какие-то конкретные хостинговые компании. Чтобы найти хостинг и регистратора доменных имён, просто поищите «веб-хостинг» и «доменные имена». Во всех таких сервисах есть функция, позволяющая вам проверить, доступно ли имя домена, или кто-то другой уже зарегистрировал его.
  • Ваш домашний или рабочий Интернет-провайдер может предоставлять хостинговые услуги для небольших веб-сайтов. Набор возможностей в таком случае может быть ограничен, но, тем не менее, он может отлично подойти для ваших первых экспериментов — свяжитесь с ними и узнайте!
  • Также есть несколько бесплатных сервисов, таких как Neocities, Blogspot, и WordPress. Опять же, вы получаете то, за что платите, но они идеально подходят для ваших первоначальных экспериментов. Бесплатные сервисы по большей части не требуют FTP-клиентов — вы можете перетаскивать ваши файлы напрямую в веб-интерфейсе.
  • Иногда компании предлагают одновременно и хостинг и домен.

Использование онлайн инструментов, таких как GitHub или Google App Engine

Некоторые сервисы позволяют вам опубликовать сайт:

  • GitHub — это «социальная сеть программистов». С помощью неё можно загружать репозитории с вашими разработками для хранения в Git — систему контроля версий. По умолчанию все разработки хранятся с открытым исходным кодом, а это значит, что ваш код будет доступен любому — участники могут по нему учиться либо же предлагать свои улучшения. Вы также можете объединяться с другими кодерами! Это очень большое и полезное сообщество, в чьи ряды лучше вступить, и Git/GitHub это очень популярная система контроля версий — большинство компаний сейчас использует её для работы. GitHub имеет очень полезную функцию GitHub pages, с помощью которой вы сможете опубликовать ваш код (ваш сайт) в интернете.
  • Google App Engine — это мощная платформа, которая позволяет создавать и запускать приложения в инфраструктуре Google — нужно ли вам создать многоуровневое веб-приложение с нуля или разместить статический веб-сайт. Смотрите как разместить ваш веб-сайт на Google App Engine чтобы узнать больше информации.

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

Использование облачных IDE, таких как CodePen

Существует ряд веб-приложений, эмулирующих среду веб-разработки, позволяющих вводить HTML, CSS и JavaScript, а затем отображать результат этого кода в виде сайта — и все это на одной вкладке браузера. Вообще говоря, эти инструменты достаточно просты, отлично подходят для обучения, хороши для того, чтобы делиться кодом (например, если вы хотите поделиться техникой с коллегой или обратиться за помощью в отладке к коллегам из другого офиса) и бесплатны (основные функции). Они размещают вашу отрендереную страницу на уникальном веб-адресе. Однако, основные функции довольно ограничены, и приложения обычно не предоставляют хостинговое пространство для таких файлов, как изображения и т.д.

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

Публикация с помощью GitHub

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

Основная настройка

  1. Прежде всего, установите Git на ваш компьютер. Это основная версия системы управления версий, поддерживающая GitHub.
  2. Далее, создайте аккаунт в GitHub. Это просто и легко.
  3. После того как вы зарегистрировались, войдите в github.com используя ваш логин и пароль.
  4. Далее, вам нужно создать новый репозиторий для ваших файлов. Нажмите Плюс (+) в правом верхнем углу главной страницы GitHub, затем выберите New repository.

На этой странице, в поле Repository name, введите username.github.io, где username это ваше имя пользователя. Так, например, наш друг valerii15298 введёт valerii15298.github.io.

Нажмите Create repository и вы окажетесь на следующей странице:

Загрузка ваших файлов на GitHub

Здесь у нас будет использоваться командная строка чтобы отправить наш репозиторий на GitHub. Командная строка — это окно где вы вводите команды для быстрого выполнения таких вещей, как создание файла или запуск программы, без использования пользовательского интерфейса. Командная строка выглядит примерно так:

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

У всех операционных систем есть командная строка:

  • Windows: Командная строка. Чтобы открыть её нажмите клавишу Windows, затем введите Командная строка в поле поиска, и выберите её в появившемся списке. Заметьте, что Windows имеет свои собственные соглашения команд, отличные от Linux и OS X, поэтому приведённые ниже команды могут отличаться на вашем компьютере.
  • OS X: Terminal можно найти в Приложения > Утилиты.
  • Linux: Обычно вы можете вытащить терминал с помощью Ctrl + Alt + T. Если это не сработает, найдите Терминал в панели приложений или меню.

Сначала это может показаться немного страшным, но не волнуйтесь — вы скоро освоите основы. Вы говорите компьютеру сделать что-то в терминале, введя команду и нажав Enter.

    Укажите в командной строке каталог test-site (или другое название каталога, содержащего ваш сайт). Для этого используйте команду cd (т.е. «change directory»). Вот то, что вы наберёте, если разместили свой веб-сайт в каталоге под названием test-site на рабочем столе:

cd Desktop/test-site 
git init 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *