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


Создание сайта на локальном сервере

Здравствуйте, уважаемые коллеги! Рад приветствовать вас на страницах блога WordPress-book.ru. Прочтя эту статью, вы узнаете, что такое локальный сервер, зачем он нужен и довольно быстро, сделаете из своего персонального компьютера это чудо информационных технологий, затем создадите на нем локальный WordPress сайт.

Чтобы окончательно определиться, надо ли вам это и с чем его едят, рассмотрим основные "полезности" локального сайта на локальном же сервере.

  • - Колоссальное удобство для web-мастера, который еще только планирует создание нового или очередного сайта в интернете. Можно сначала создать сайт локально, настроить его, выбрать и установить тему, подправить дизайн, установить требуемые плагины и так далее. А потом уже закачать его на хостинг для свободного доступа.
  • - Редизайн и другие ремонтные работы. Посетители увидят сразу готовый продукт, а не тот сырой материал, который будет в промежуточной стадии. Некоторые веб-мастера, на время проведения масштабных работ с сайтом, ставят на него так называемые "плагины-заглушки", тем самым теряя трафик. Посетитель вместо искомой информации видит страницу наподобие - "Сайт на реконструкции".

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

Создание локального сервера

Одни очень хорошие люди, чтобы облегчить нам жизнь, создали такой инсталляционный пакет, как XAMPP. XAMPP включает в себя дистрибутив Apache, содержащий MySQL, PHP и Perl. Вам почти ничего не придется делать (лень - двигатель прогресса), только несколько раз щелкнуть мышью. Почему XAMPP? Потому, что у него есть несколько, весьма весомых, преимуществ перед своими конкурентами:

  • - самый популярный PHP пакет разработчика;
  • - простая установка и настройка;
  • - полностью бесплатен.

Скачать пакет XAMPP можно с его страницы тут.

После скачивания, запустите установку. В процессе установки, ничего не меняйте, в каждом новом окне жмите кнопку "Next".

ВАЖНО: В конце инсталляции, мой Skype блокировал установку локального сервера. Если у вас тоже стоит это приложение, временно его отключите.

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

На седьмом, заключительном  этапе установки, оставьте галочку у опции запуска панели управления и нажмите на кнопку "Finish". Впоследствии, эту панель можно будет открыть двойным щелчком по файлу xampp-control.exe, который находится в папке хамппа (по умолчанию C:\xampp).

В открывшейся панели нажмите по очереди на кнопки "Start" для Apache и MySql.

Теперь ваш локальный сервер работает и чтобы в этом убедиться, наберите в адресной строке браузера  http://localhost. Должна открыться страница со следующим содержимым:

Создание сайта на локальном сервере

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

Установка базы данных на локальный сервер

Откройте панель управления локальным сервером (файл xampp-control.exe) и нажмите на кнопку Admin для MySQL.

В новой вкладке браузера откроется панель администратора phpMyAdmin.

Перейдите в панели на вкладку "Базы данных" или по ссылке " Создать БД".

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

Установка WordPress на локальный сервер

Скачайте архив последней версии WordPress со страницы ru.wordpress.org. Архив распакуйте и скопируйте папку "wordpress" в папку "htdocs" с установленным xampp.

Папку "wordpress" с вордпрессом переименуйте, дайте ей то имя, которое дали базе данных при ее создании. У меня это имя - WordPress-book. В этой, переименованной папке, найдите файл wp-config-sample.php.

Откройте его в текстовом редакторе, можно в простом блокноте, но лучше в Notepad++. Отредактируйте три строчки, как показано на рисунке ниже.

Не ошибитесь, в 19 строчке впишите имя своей, а не моей базы данных :-).

Сохраните файл как wp-config.php, без пристройки "sample". Старый wp-config-sample.php можно удалить.

Теперь остался последний штрих. В адресной строке браузера наберите http://localhost/имя_базы_данных и нажмите клавишу enter на клавиатуре. Откроется следующая страница:

Внесите все необходимые данные и нажмите на кнопку "Установить WordPress". Через несколько секунд вы будете извещены об успешном завершении операции.

Нажмите на кнопку "Войти". Сами увидите что произойдет :-). Я вас поздравляю! Вы только что создали локальный сайт на локальном сервере!

Как разместить веб-сайт для начинающих (локально и / или публично)

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

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

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

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

Нам есть что обсудить - так что приступим!

Введение в хостинг веб-сайтов: что это такое и зачем он вам нужен

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

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

Важно отметить, что есть два способа разместить веб-сайт: (1) внешний / общедоступный и (2) локальный .

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

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

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

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

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

Как разместить веб-сайт в Интернете (5 ключевых соображений)

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

1. Определите лучший тип хостинга для вашего сайта

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

  1. Общий
  2. Виртуальный частный сервер (VPS)
  3. Выделенный
  4. Облако
  5. Управляемый Хостинг WordPress

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

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

2. Изучите дополнительные функции, доступные от различных поставщиков.

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

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

3. Посмотрите на варианты поддержки клиентов различных поставщиков

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

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

Если вам нужны дополнительные рекомендации по поддержке клиентов, наш опрос по хостингу WordPress 2018 содержит ценные данные, которые вы, возможно, захотите принять во внимание. Более 800 пользователей WordPress оценили несколько популярных хостов как в общей, так и в специальной поддержке клиентов WordPress, так что вы знаете, чего ожидать.

4. Установите бюджет хостинга и найдите подходящую цену.

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

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

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

5. Выясните, как вы будете устанавливать WordPress на сервер вашего провайдера.

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

Независимо от того, какого хостинг-провайдера вы выберете, вы всегда сможете установить WordPress вручную. Это включает доступ к вашему серверу через протокол передачи файлов (FTP) с использованием такого клиента, как FileZilla.

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

Если у вас нет времени провести собственное исследование по этому поводу, вот наши рекомендации лучших вариантов хостинга, доступных в настоящее время на рынке (с учетом их цены и характеристик):

  • SiteGround - оптимизированный хостинг WordPress, от 3 долларов США .95 / месяц, разрешен 1 веб-сайт, 10 ГБ дискового пространства, до 10000 посещений в месяц
  • Bluehost - дешевый хостинг веб-сайта, от 2,95 долл. США в месяц, разрешен 1 веб-сайт, включено 1 бесплатное доменное имя, 50 ГБ дискового пространства, неограниченная пропускная способность
  • WP Engine - высококачественный управляемый хост WordPress, от 25 долларов в месяц, разрешен 1 веб-сайт, 10 ГБ дискового пространства, до 25000 посещений в месяц, 35+ премиальных тем StudioPress включены

Как разместить собственный веб-сайт локально (2 метода)

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

1. Создайте сайт с помощью локального веб-стека

Локальный веб-стек, например XAMPP, представляет собой программное обеспечение, которое предоставляет несколько компонентов, необходимых для локальной разработки, включая веб-сервер. Основное преимущество использования этого метода заключается в том, что он дает вам максимальный контроль над вашим сайтом:

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

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

2.Подпишитесь на виртуальную среду песочницы

Гораздо более простой способ создать локальный сайт WordPress - и разместить свой действующий сайт - это использовать виртуальную среду песочницы. Эти платформы, в том числе Local by Flywheel, позволяют легко создавать локальные установки WordPress:

Local by Flywheel можно использовать совершенно бесплатно. Все, что вам нужно сделать, это зарегистрироваться, загрузить приложение и начать создавать сайты. Однако вы должны убедиться, что настроили свои настройки так, чтобы ваши сайты не были видны поисковым системам.

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

Заключение

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

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

  1. Локальный хостинг предполагает использование вашего компьютера в качестве сервера для вашего веб-сайта и может быть настроен через локальный веб-стек, такой как XAMPP или виртуальная песочница, такая как Local by Flywheel.
  2. Внешний хостинг (в Интернете) требует от вас выбора хостинг-провайдера. Принимая решение, вы должны учитывать типы хостинга, функции, поддержку клиентов, цену и простоту установки.Мы рекомендуем хосты Bluehost (2,95 доллара в месяц), SiteGround (6,99 доллара в месяц) и WP Engine (25 долларов в месяц - хост высокого класса).

У вас есть вопросы о том, как разместить сайт? Задайте их в комментариях ниже!

Бесплатное руководство

5 основных советов по ускорению
Ваш сайт WordPress

Сократите время загрузки даже на 50-80%
, просто следуя простым советам.

* Это сообщение содержит партнерские ссылки. Это означает, что если вы нажмете на одну из ссылок на продукт, а затем купите продукт, мы получим комиссию.Не беспокойтесь, вы все равно будете платить стандартную сумму, так что с вашей стороны никаких затрат не будет.

.

Как настроить локальный сервер тестирования? - Изучите веб-разработку

В этой статье объясняется, как настроить простой локальный тестовый сервер на вашем компьютере, а также основы его использования.

Локальные файлы и удаленные файлы

На протяжении большей части области обучения мы советуем вам просто открывать свои примеры непосредственно в браузере - это можно сделать, дважды щелкнув файл HTML, перетащив его в окно браузера или выбрав File > Open... и переход к файлу HTML. Есть много способов добиться этого.

Если путь веб-адреса начинается с file: // , за которым следует путь к файлу на локальном жестком диске, используется локальный файл. Напротив, если вы просмотрите один из наших примеров, размещенных на GitHub (или пример на другом удаленном сервере), веб-адрес будет начинаться с http: // или https: // , чтобы показать, что файл содержит был получен через HTTP.

Проблема с тестированием локальных файлов

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

  • Они содержат асинхронные запросы . Некоторые браузеры (включая Chrome) не будут выполнять асинхронные запросы (см. Получение данных с сервера), если вы просто запустите пример из локального файла. Это связано с ограничениями безопасности (подробнее о веб-безопасности см. Безопасность веб-сайта).
  • Они имеют серверный язык . Для серверных языков (таких как PHP или Python) требуется специальный сервер для интерпретации кода и предоставления результатов.

Запуск простого локального HTTP-сервера

Чтобы обойти проблему асинхронных запросов, нам нужно протестировать такие примеры, запустив их через локальный веб-сервер. Один из самых простых способов сделать это для наших целей - использовать Python SimpleHTTPServer (или http.server , в зависимости от установленной версии Python)

.

Для этого:

  1. Установите Python. Если вы используете Linux или macOS, он уже должен быть доступен в вашей системе.Если вы являетесь пользователем Windows, вы можете получить установщик с домашней страницы Python и следовать инструкциям по его установке:

    • Перейти на python.org
    • В разделе «Загрузка» щелкните ссылку для Python «3.xxx».
    • Внизу страницы выберите исполняемый установщик Windows x86 и загрузите его.
    • Когда он загрузится, запустите его.
    • На первой странице установщика убедитесь, что установлен флажок «Добавить Python 3.xxx в PATH».
    • Щелкните Установить , затем щелкните Закройте , когда установка будет завершена.
  2. Откройте командную строку (Windows) / терминал (macOS / Linux). Чтобы проверить, установлен ли Python, введите следующую команду:

     питон -V # Или у вас может быть доступна команда py, # в этом случае попробуйте py -V 
  3. Это должно вернуть номер версии. Если это нормально, перейдите в каталог, в котором находится ваш пример, с помощью команды cd .

     # укажите имя каталога, чтобы ввести его, например cd Desktop # используйте две точки для перехода на один уровень каталога, если вам нужно cd .. 
  4. Введите команду для запуска сервера в этом каталоге:

     # Если версия Python, возвращенная выше, - 3.X python3 -m http.server # В Windows попробуйте "python" вместо "python3" или "py -3" # Если версия Python, возвращенная выше, - 2.X python -m  SimpleHTTPServer  
  5. По умолчанию содержимое каталога запускается на локальном веб-сервере через порт 8000.Вы можете перейти на этот сервер, перейдя по адресу localhost: 8000 в своем браузере. Здесь вы увидите содержимое указанного каталога - щелкните HTML-файл, который хотите запустить.

Примечание : Если у вас уже есть что-то, работающее на порту 8000, вы можете выбрать другой порт, выполнив команду server, за которой следует альтернативный номер порта, например python3 -m http.server 7800 (Python 3.x) или python -m SimpleHTTPServer 7800 (Python 2.Икс). Затем вы можете получить доступ к своему контенту по адресу localhost: 7800 .

Локальный запуск серверных языков

Модуль

Python SimpleHTTPServer (python 2.0) http.server (python 3.0) полезен, но он не знает, как запускать код, написанный на таких языках, как Python, PHP или JavaScript. Чтобы справиться с этим, вам понадобится что-то большее - именно то, что вам нужно, зависит от серверного языка, который вы пытаетесь запустить. Вот несколько примеров:

  • Для запуска кода Python на стороне сервера вам потребуется веб-фреймворк Python.Вы можете узнать, как использовать платформу Django, прочитав Django Web Framework (Python). Flask также является хорошей (чуть менее тяжелой) альтернативой Django. Чтобы запустить это, вам нужно установить Python / PIP, затем установить Flask, используя pip3 install flask . На этом этапе вы должны иметь возможность запускать примеры Python Flask, используя, например, python3 python-example.py , а затем перейти к localhost: 5000 в своем браузере.
  • Для запуска кода на стороне сервера Node.js (JavaScript) вам потребуется использовать необработанный узел или фреймворк, построенный на его основе.Express - хороший выбор - см. Express Web Framework (Node.js / JavaScript).
  • Для запуска серверного кода PHP запустите встроенный сервер разработки PHP:
 $ cd путь / к / вашему / php / коду $ php -S локальный: 8000 
. .

Express Tutorial: веб-сайт местной библиотеки - изучение веб-разработки

Первая статья в нашей серии практических руководств объясняет, что вы узнаете, и предоставляет обзор примера веб-сайта «локальной библиотеки», над которым мы будем работать и развивать в последующих статьях.

Обзор

Добро пожаловать в учебник MDN "Local Library" Express (Node), в котором мы разрабатываем веб-сайт, который можно использовать для управления каталогом локальной библиотеки.

В этой серии обучающих статей вы:

  • Используйте инструмент Express Application Generator для создания скелета веб-сайта и приложения.
  • Запуск и остановка веб-сервера узла.
  • Используйте базу данных для хранения данных вашего приложения.
  • Создайте маршруты для запроса различной информации и шаблоны («представления») для отображения данных в виде HTML для отображения в браузере.
  • Работа с формами.
  • Разверните ваше приложение в рабочей среде.

Вы уже узнали о некоторых из этих тем и кратко коснулись других. К концу серии руководств вы должны будете знать достаточно, чтобы самостоятельно разрабатывать простые приложения Express.

Сайт местной библиотеки

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

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

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

Несмотря на то, что это очень расширяемый пример, он называется Local Library не зря - мы надеемся показать минимум информации, который поможет вам быстро приступить к работе с Express. В результате мы будем хранить информацию о книгах, копиях книг, авторах и другую ключевую информацию. Однако мы не будем хранить информацию о других элементах, которые может предоставить библиотека, или предоставлять инфраструктуру, необходимую для поддержки нескольких библиотечных сайтов или других функций «большой библиотеки».

Я застрял, где взять исходник?

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

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

Если вы застряли, вы можете найти полностью разработанную версию сайта на Github здесь.

Примечание: Конкретные версии node, Express и других модулей, с которыми была протестирована эта документация, перечислены в файле проекта package.json.

Сводка

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

В этом модуле

.

Смотрите также

Поделиться в соц. сетях

Опубликовать в Facebook
Опубликовать в Одноклассники
Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий