Git репозиторий на своем хостинге

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

В наши дни у вас есть огромное количество вариантов хостинга на выбор, все со своими преимуществами и недостатками. Актуальный список можно найти на следующей странице:

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

GitHub — крупнейший на сегодняшний день сайт, предоставляющий Git-хостинг для проектов с открытым исходным кодом, а также один из немногих, предоставляющих одновременно и публичный, и приватный хостинг, так что вы можете хранить ваш открытый и коммерческий код в одном месте. На самом деле, мы использовали GitHub, чтобы закрыто совместно писать эту книгу (прим. переводчика: и открыто переводить после её издания).

GitHub немного отличается от других хостингов кода способом группировки проектов. Вместо того, чтобы брать за основу проекты, GitHub ориентируется на пользователей. Это значит, что если я размещаю свой проект grit на GitHub’е, вы не найдёте его в github.com/grit , он будет в github.com/schacon/grit . Здесь нет никакой канонической версии проекта, что позволяет проектам беспрепятственно переходить от одного пользователя к другому, если начальный автор забросил проект.

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

Первое, что вам нужно сделать, это настроить учётную запись. Если вы посетите страницу «Plans and pricing» по адресу https://github.com/pricing и нажмёте на кнопку «Create a free account» (см. рисунок 4-2), вы попадёте на страницу регистрации.


Рисунок 4-2. Страница тарифных планов на GitHub’е.

Здесь вы должны выбрать имя пользователя, которое ещё не занято в системе, ввести адрес электронной почты, который будет сопоставлен аккаунту, и пароль (см. рис. 4-3).


Рисунок 4-3. Страница регистрации пользователя на GitHub’е.

Если есть возможность, сейчас также самое время добавить свой открытый SSH-ключ. Мы рассмотрели, как создать ключ, ранее, в разделе «Создание открытого SSH-ключа». Возьмите содержимое открытого ключа из своей пары и вставьте в поле для ввода открытого SSH-ключа. Ссылка «explain ssh keys» направит вас к подробным инструкциям о том, как это сделать на всех основных операционных системах. Нажатие на кнопку «I agree, sign me up» откроет инструментальную панель вашего нового пользователя (см. рис. 4-4).


Рисунок 4-4. Инструментальная панель на GitHub’е.

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

Начните с нажатия на «New repository» рядом с разделом «Your Repositories» на странице инструментальной панели. Вы попадёте к форме для создания нового репозитория (см. рис. 4-5).


Рисунок 4-5. Создание нового репозитория на GitHub’е.

Единственное, что вам обязательно нужно сделать, это указать имя проекта, но вы также можете добавить и описание. Когда сделаете это, нажмите на кнопку «Create Repository». Теперь у вас есть новый репозиторий на GitHub’е (см. рис. 4-6).


Рисунок 4-6. Заглавная информация проекта GitHub.

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


Рисунок 4-7. Инструкции для нового репозитория.

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

Если у вас есть локальный Git-репозиторий, добавьте GitHub как удалённый сервер и отправьте туда свою ветку master:

Теперь ваш проект размещён на GitHub’е, и вы можете дать ссылку на него любому, с кем вы захотите разделить проект. В этом случае, это http://github.com/testinguser/iphone_project . Вы также можете видеть в заголовке каждой страницы проекта, что у вас две Git-ссылки (см. рис. 4-8).


Рисунок 4-8. Заголовок проекта с публичной и приватной ссылками.

Ссылка «Public Clone URL» — это публичная ссылка только для чтения, через которую кто угодно может склонировать проект. Можете опубликовать эту ссылку или разместить её на своём сайте — где угодно.

«Your Clone URL» — это SSH-ссылка на чтение и запись, через которую вы можете читать и писать только в том случае, если вы подключаетесь с использованием секретного ключа из пары открытого SSH-ключа, загруженного в вашу учётную запись. Если другие пользователи посетят страницу этого проекта, они не увидят этой ссылки — только публичную.

Если у вас есть существующий публичный Subversion-проект, который вы хотите импортировать в Git, GitHub часто может сделать это за вас. Внизу страницы инструкций есть ссылка на импорт из Subversion. Если вы кликнете по ней, вы увидите форму с информацией о процессе импорта и текстовое поле, где вы можете вставить ссылку на ваш публичный Subversion-проект (см. рис. 4-9).


Рисунок 4-9. Интерфейс импорта из Subversion.

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

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

Нажмите на кнопку «edit» в заголовке проекта или вкладку «Admin» вверху, чтобы попасть на страницу администратора вашего проекта на GitHub’е (см. рис. 4-10).


Рисунок 4-10. Страница администратора на GitHub’е.

Чтобы дать другому пользователю доступ на запись в проект, кликните по ссылке “Add another collaborator”. Появится новое текстовое поле, в котором вы можете набрать имя пользователя. По мере набора всплывёт подсказка, показывающая возможные совпадения имён. Когда найдёте нужного пользователя, нажмите на кнопку Add, чтобы добавить пользователя как участника вашего проекта (см. рис. 4-11).


Рисунок 4-11. Добавление участника в проект.

Когда закончите добавлять участников, вы должны увидеть их список в разделе Repository Collaborators (см. рис. 4-12).


Рисунок 4-12. Список участников вашего проекта.

Если вам нужно отозвать чей-то доступ, можете кликнуть по ссылке «revoke», и его доступ на отправку будет удалён. Для будущих проектов вы также можете скопировать группы участников, скопировав права доступа из существующего проекта.

После того как вы отправили ваш проект или импортировали его из Subversion, у вас есть главная страница проекта, которая выглядит как на рис. 4-13.


Рисунок 4-13. Главная страница проекта на GitHub’е.

Когда люди посещают ваш проект, они видят эту страницу. Она содержит вкладки, касающиеся различных аспектов вашего проекта. Вкладка Commits показывает список коммитов в обратном хронологическом порядке наподобие вывода команды git log . Вкладка Network показывает всех людей, отделивших ваш проект и вернувших свои наработки. Вкладка Downloads позволяет выложить бинарные файлы проекта и ссылки на архивы каких-нибудь отмеченных точек проекта. Вкладка Wiki предоставляет вики, где вы можете написать документацию или другую информацию о своём проекте. Вкладка Graphs показывает некоторую информацию о вкладе участников и статистику проекта. Главная вкладка Source показывает листинг корневого каталога проекта и автоматически выводит под ним содержимое файла README, если он у вас есть. Эта вкладка также показывает информацию о последнем коммите.

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

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

Чтобы ответвить проект, посетите страницу проекта (в нашем случае mojombo/chronic) и нажмите на кнопку «Fork» в его заголовке (см. рис. 4-14).


Рисунок 4-14. Получение доступной для записи копии любого репозитория.

Через несколько секунд вы будете направлены на страницу своего нового проекта, на которой указано, что данный проект является ответвлением другого проекта (см. рис. 4-15).


Рисунок 4-15. Вы ответвили проект.

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

Доброго времени суток, друзья! ?

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

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

Сразу скажу, что цель была достигнута, но далеко не с первой попытки, как не хотелось бы. Но, обо всё по порядку…

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

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

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

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

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

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

Так что судьба данной статьи полностью в ваших руках! Жду комментариев ?

Пока же вернёмся к нашему сегодняшнему разговору.

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

Из всех существующих решений мы выбрали, как ни странно, самое востребованное и прогрессивное на сегодняшний день – распределённую систему контроля версий Git.

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

Судя по описанию, вроде бы ничего сложного, т.к. суть процесса, а также его этапы предельно ясны.

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

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

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

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

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

В итоге, работа была сделана, но для этого мне потребовалось потратить целый рабочий день.

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

На этом вступительная часть подходит к концу, и мы переходим непосредственно к обзору Git серверов.

Как вы поняли, Git сервер – компьютер с Git репозиторием, к которому имеют доступ разработчики.

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

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

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

Но, зато вы очень зависите от сети. Нет связи – нет актуальной версии проекта у вас на компьютере. На предыдущем месте работы, где наш репозиторий был размещён во внешней сети, такая ситуация у нас была постоянно ?

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

Думаю, как только она появится в виде срочных правок, в том числе и во внерабочее время, мы этим займёмся, и о процессе я вам обязательно отпишусь ?

Теперь поговорим о железе, точнее, ОСях.

К счастью, Git-клиент и прочие программы, необходимые для разворачивания сервера, есть для всех распространённых сегодня операционных систем (Windows, Linux, MacOS), так что на серверной машине может быть установлена любая из них. Равно как нет ограничений и для рабочих станций.

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

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

В моём случае на компьютеры разработчиков работали под Windows 10 Professional, а для сервера был выбран дистрибутив Linux – Ubuntu самой последней на текущий момент версии 16.06.

Так что, как видите, ОСи мы использовали самые свежие. Но, для предыдущих версий процесс установки Git сервера особо отличаться не будет, поэтому если вы являетесь обладателем таковых, то расстраиваться не стоит.

Переходим непосредственно к описанию рабочего процесса. Начнём с действий на стороне сервера.

Шаг 1. Поскольку, как неоднократно уже упоминалось, Git сервер будет являться репозиторием, размещённым на серверной машине, то прежде всего нам необходимо установить сам Git.

На сервере у меня установлен Ubuntu, поэтому заходим в консоль и прописываем следующее:

Данные команды позволят вам автоматически скачать из пакетного репозитория и установить на компьютер, работающий под Linux, самую последнюю версию Git.

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

Если у вас на сервере будет установлена другая ОС, то для них вы можете скачать дистрибутивы с официального сайта Git — https://git-scm.com/downloads. На данный момент доступны решения для Mac OS X, Linux (включая его дистрибутивы – Ubuntu, Debian, Arch Linux и т.д.), а также Windows.

Шаг 2. Следующим шагом будет создание системного пользователя для работы с Git. В моём случае он так и будет назваться – git. Прописываем следующую команду:

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

Шаг 3. Теперь создаём сам репозиторий. Для этого сначала переключаемся на нашего только что созданного пользователя:

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

Шаг 4. И создаём так bare-репозиторий, т.е. чистый, не содержащий каких-либо файлов. По стандарту Git каталоги таких репозиториев должны содержать в названии окончание «.git»:

Заходим в каталог и инициализируем в нём наш bare-репозиторий:

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

Шаг 5. Узнайте IP-адреса компьютеров, включённых в одну локальную сеть с вашим сервером с помощью команды, которую нужно вводить в консоли на сервере:

Если система выдаст ошибку, ссылаясь на несуществующую команду, то нужно будет предварительно установить nmap следующей командой:

По идее, если nmap вернёт вам список хостов с подробной информацией о них (их локальные IP-адреса, время ответа компьютера и т.д.), то это уже будет значить, что связь между сервером и рабочими станциями присутствует.

Если же вам этого покажется мало, то можете попробовать пропинговать какую-то конкретную станцию по её IP-адресу, который вы узнали с помощью предыдущей команды:

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

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

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

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

Тут следует сказать, что связь между двумя Git-репозиториями может осуществляться несколькими способами, с помощью различных сетевых протоколов:

Я не буду сейчас заниматься обзором особенностей каждого приведённого протокола, а также плюсов и минусов его использования. Тем более, что об этом замечательно написано на официальном сайте Git — https://git-scm.com/book/ru/v2/Git-на-сервере-Протоколы.

Если хотите – почитайте на досуге ?

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

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

Эта возможность весьма пригодится, если в будущем понадобится организовать доступ в локальную сеть извне, т.е. работать с Git-репозиторием не только с рабочего места.

А поскольку, как я раньше говорил, такая возможность не исключается, то я решил настраивать Git сервер с заделом на будущее.

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

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

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

Я использовал наиболее распространённый продукт – OpenSSH, который устанавливается аналогичным Git-у способом:

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

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

Да и вообще странное было дело: в мануалах рекомендовали править файл authorized_keys, о котором мы ещё поговорим, а в каких конфигах прописывать использование этого файла — не указывалось.

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

На этом этапе сервер полностью настроен. Мы ещё будем на него заходить, но пока перенесём наши действия на сторону клиента:

Шаг 1. Прежде всего, как и на сервере, устанавливаем Git. Я уже говорил, что на клиентских машинах у меня была установлена ОС Windows. Следовательно, установка отличалась от Linux – мне нужно было скачать и установить дистрибутив.

После этого в контекстном меню проводника (появляется при клике на каталоге правой кнопкой мыши) у меня появился доступ к Git Bash и Git GUI.

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

Второй представляет собой графическую оболочку для работы с репозиторием и управления данными в нём.

Я лично пользовался Git Bash, потому что, как по мне, знание Git-команд – это уже неплохой профит, поэтому буду рассказывать о работе с ним.

Шаг 2. Теперь нам нужно сгенерировать SSH-ключ, с помощью которого будет возможна связь с сервером по протоколу SSH. Для его генерации можно воспользоваться Git Bash.

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

И прописываем следующую команду:

Мы вызвали утилиту для генерации SSH-ключей, которая входит в состав Git, и передали в качестве параметров генерации свой email. Если его не указывать, то SSH-ключ будет ассоциироваться с именем рабочей станции.

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

В результате получился такой ключ:

Шаг 3. Теперь, когда у вас есть SSH-ключ, осталось только его скопировать и отправить вашему системному администратору, чтобы он разместил его на сервере.

Самый простой способ – это скопировать ключ прямо из консоли Git Bash путём выделения ключа и нажатии клавиш «Ctrl+Insert» для создании его копии в буфере обмена.

После осталось только вставить его в письмо и отправить администратору по почте, через Skype или другим удобным для вас способом.

Можно также отправить файл с SSH-ключом, который по умолчанию хранится в каталоге .ssh, находящемся в домашней папке пользователя. В ОС Windows она хранится по пути C:\Users\Имя пользователя\.ssh, в Linux-базированных системах же её можно отыскать в /home/имя_пользователя/.ssh.

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

После генерации ключа посредством ssh-keygen в .ssh должны быть два файла – id_rsa и id_rsa.pub. Нам нужен будет с расширением .pub, который необходимо будет отправить системному администратору для размещения на сервере.

После этого снова вернёмся на сервер Git, чтобы разместить на нём SSH-ключи, сгенерированные на клиентских машинах, для доступа по этому протоколу.

Шаг 1. Указывать SSH-серверу ключи клиентов будем с помощью файла authorized_keys, который необходимо будет создать в каталоге .ssh в домашней папке пользователя для работы с Git.

Заходим в каталог и создаём там файл:

Шаг 2. Теперь нам в него нужно будет скопировать содержимое pub-файла, который содержит SSH-ключ, либо вставить в конец authorized_keys ключ, присланный по почте в явном виде.

Рассмотрю пример с копированием содержимого файла. Допустим, файл лежит в папке /tmp:

Шаг 3. Конфигурируем OpenSSH на использование SSH-ключей доступа из файла authorized_keys. Для этого нам нужно будет отредактировать файл его настроек:

В качестве текстового редактора я использовал mcedit, у вас может быть другой.

Ищем в нём строку AuthorizedKeysFile .ssh/authorized_keys и раскомментируем её, если в её начале присутствует символ «#».

Шаг 4. Перезапускаем (restart) или стартуем OpenSSH, если он до сих пор не был запущен от рутового пользователя:

На этом с сервером мы заканчиваем, т.к. все необходимые действия уже произведены. Теперь нам осталось записать данные на Git удалённый сервер с клиентских машин, чем мы и займёмся.

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

Для этого нужно воспользоваться любым SSH-клиентом. Поскольку, напомню, у меня на компьютерах разработчиков установлена ОС Windows, то мой выбор пал на популярную утилиту PuTTY, которую можно скачать с сайта её создателя — http://www.chiark.greenend.org.uk/

Здесь, кстати, вы сможете установить как весь набор инструментов пакета PuTTY, так и скачать их по отдельности. Рекомендую всё же скачать пакет полностью и установить все компоненты. Для этого нужно загрузить инсталлятор и запустить его.

После установки на рабочем столе должен появиться ярлык PuTTY, который будет ссылаться на SSH-клиент, входящий в данный набор.

Запускаем его и в поле «Имя хоста или IP-адрес» вводим локальный IP-адрес нашего Git сервера. Порт оставляем тот, который прописан по умолчанию – 22:

Нажимаем «Open» для открытия соединения. Предварительно можно ввести имя соединения и нажать «Save», если вам нужно будет сохранить настройки для дальнейших подключений. Потом нужно будет дважды кликнуть на требуемом соединении левой кнопкой мыши.

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

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

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

Также в PuTTYgen (а именно так называется SSH-генератор PuTTY) есть возможность формирования ключей собственного формата из существующих в текстовом виде.

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

Шаг 2. На момент разворачивания Git сервера лично у меня на рабочей станции уже были проекты, которые нужно было залить в серверный репозиторий.

Чтобы это сделать, я зашёл в папку со своим проектом и вызвал Git Bash через контекстное меню каталога. Аналогичного результата можно было добиться запустив Git Bash с рабочего стола и переместиться в каталог помощью команды cd.

В консоли я прописал следующее:

Данными командами я инициализировал Git-репозиторий в своём каталоге и добавил в него текущее состояние файлов и папок.

Шаг 3. Теперь нам нужно инициализировать удалённый репозиторий, который будет являться копией нашего локального проекта, с помощью команды:

Здесь, как не сложно догадаться, нужно указать имя пользователя на сервере (у нас git), имя домена (понадобится при синхронизации с Git сервером на хостинге) или его IP-адрес и путь к репозиторию на сервере.

Всё, теперь нужно создать запись в репозиторий (коммит — commit) и передать её на сервер («запушить» – от названия ответственной команды «push»):

Вот и всё. После этого на нашем Git сервере в репозиторий должны были скопироваться файлы локального проекта.

Теперь работа с Git сервером будет осуществляться по такой схеме:

  • изменения из главного репозитория копируются на локальный компьютер (текущие правки, не совпадающие с кодом на Git сервере перезаписаны не будут);
  • фиксируем свои исправления;
  • создаём коммит;
  • заливаем всё на сервер.

В виде команд приведённый порядок действий будет выглядеть так:

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

Поэтому придётся к данному перечню часто используемых команд для работы с Git добавить ещё две комманды:

Они будут производить переключение на конкретную ветку и слияние её с другой соотвтетственно. При слиянии в текущую ветку будут добавляться изменения из той, с которой она соединяется.

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

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

Для получения локальной копии репозитория ему достаточно будет выполнить всего одну команду в Git Bash:

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

Напоследок хотелось бы сказать пару слов о том, как менять адрес или алиас Git удаленного репозитория.

У меня, к примеру иногда возникает такая ситуация на работе, когда при неполадках с сетью сбрасывается IP-адрес Git удалённого сервера.

Тогда закоммититься невозможно, т.к. меняется адрес репозитория целиком. Что же нужно делать?

Во-первых, идем к серверу и узнаем его новый IP-адрес путем прописывания в консоли команды ipconfig, если сервер работает под Windows, или ifconfig, если под Linux.

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

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

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

Во-вторых, на локальной машине запускаем Git Bash в директории, для которой инициализирован репозиторий, и вводим команду, чтобы посмотреть список Git удаленных репозиториев, с которыми связан локальный:

Команда вернет результат в таком формате:

Ну, и в-третьих, копируем адрес, начинающийся с git@…, вводим следующую команду для непосредственной смены адреса и вставляем скопированный адрес, изменив IP на новый:

Всё, удалённый git репозиторий изменён. Для проверки можно ещё раз вызвать команду

Если все сделали верно, то команда вернёт уже новый адрес репозитория. Кстати, данный метод вам поможет не только при смене IP Git сервера, но и каталога репозитория на сервере.

Удалить удалённый Git репозиторий, к слову, ещё проще, т.к. не нужно вводить адрес целиком, а достаточно одного алиаса:

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

Надеюсь, что в итоге у вас всё получилось, как и у меня. С нетерпением жду ваших комментариев.

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

На этом прощаюсь с вами и до новых встреч! ?

P.S.: если вам нужен сайт либо необходимо внести правки на существующий, но для этого нет времени и желания, могу предложить свои услуги.

Более 5 лет опыта профессиональной разработки сайтов. Работа с PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, React, Angular и другими технологиями web-разработки.

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

http://vseohostinge.ru/uroki-sovety/manualy-po-2domainsru/registrator-2domains-znakomstvo-s-panelyu-upravleniya

http://pupi-boy.ru/domen-hosting/perenos-domena-ru-k-drugomu-registratoru.html

http://wordpressmania.ru/kak-prikrepit-domen-v-2domains-k-hostingu-beget/

http://richhost.biz/kak-privyazat-domen-k-hostingu.html

http://www.reg.ru/support/hosting-i-servery/sajty-i-domeny/kak-nastroit-dns/kak-privyazat-domen-k-hostingu

http://webformyself.com/kak-privyazat-domen-k-xostingu/

http://wrart.ru/vidy-zarabotka/3-mesyatsa-besplatnogo-hostinga-ot-mchost.html

http://seoslim.ru/host/xosting-3-mesyaca-besplatno.html

http://ideafox.ru/pro-blog/3-month-hosting.html

http://wrart.ru/vidy-zarabotka/3-mesyatsa-besplatnogo-hostinga-ot-mchost.html

http://online-elite.ru/zarabotok-online/saytostroyeniye/razmestit-neskolko-saitov

http://www.garagebiz.ru/view/skolko_sajtov_mozhno_razmestit_na_odnom_hostinge/seo

http://online-elite.ru/zarabotok-online/saytostroyeniye/razmestit-neskolko-saitov

http://lessons-business.ru/dva-domena-na-odnom-khostinge.html

http://ru.hostings.info/hostings/rating/testovyj-period-hosting

http://start-luck.ru/sozdanie-sayta/khostingov-s-testovym-periodom.html

http://denezhnye-ruchejki.ru/301-redirekt-na-hostinge-offerhost/

http://fb.ru/article/242507/kak-nastroit-redirekt-cherez-htaccess-pravilnaya-nastroy-kak-redirekta-v-joomla-i-drugih-cms

http://www.myarena.ru/

http://ourservers.ru/

http://www.hostinger.ru/rukovodstva/kak-ispravit-oshibku-403-forbidden-error

http://komp.guru/oshibki/kak-ispravit-oshibku-403-kotoraya-zapreshhaet-dostup-k-sajtu.html

http://www.hostinger.ru/rukovodstva/kak-ispravit-oshibku-403-forbidden-error

http://sdelaicomp.ru/nastrojka-sistemy/403-forbidden-chto-eto-i-kak-ispravit.html

http://www.reg.ru/support/hosting-i-servery/sajty-i-domeny/moy-sayt-ne-rabotaet/oshibka-403

http://toster.ru/q/477262

http://www.hostinger.ru/rukovodstva/413-request-entity-too-large/

http://ruphp.com/entity-too-large-413.html

http://socpravo.ru/xosting-za-kopejki-50-rublej-v-mesyac-dlya-sajta-vizitki/

http://ru.hostings.info/hostings/rating/deshevyj-hosting

http://www.gameserverkings.com/games/7-days-to-die-server-hosting/

http://www.gtxgaming.co.uk/7-days-die-server-hosting/

http://www.gtxgaming.co.uk/7-days-die-server-hosting/

http://www.gameserverkings.com/games/7-days-to-die-server-hosting/

http://www.reg.ru/support/domains/dns_servery_i_nastroika_zony/Nastroika-zony/kak-dobavit-zapis-a-poddomen

http://www.reg.ru/support/domains/dns_servery_i_nastroika_zony/Nastroika-zony/nastroika-resursnyh-zapisei-dlya-domena

http://timeweb.com/ru/help/pages/viewpage.action?pageId=4358480

http://romanchueshov.ru/bez-rubriki/kak-privyazat-domen-k-hostingu-timeweb.html

http://lifehacki.ru/oshibka-access-denied-for-user-rootlocalhost-using-password-yes-i-no/

http://qaru.site/questions/218155/1045-access-denied-for-user-rootlocalhost-using-password-yes

http://www.1gb.ua/wiki/index.php?title=%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF_%D0%BA_%D0%91%D0%94_mySQL_%D0%B8%D0%B7_Microsoft_Access

http://webformyself.com/kak-sozdat-bazu-dannyx-na-xostinge/

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://rusmuse.ru/archives/1453

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://rusmuse.ru/archives/1453

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://rusmuse.ru/archives/1453

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://rusmuse.ru/archives/1453

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://rusmuse.ru/archives/1453

http://rusmuse.ru/archives/1453

http://creatura.club/lessons/hosting/kak-poluchit-besplatnyy-hosting-i-domen-dlya-adobe-muse-r57/

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://rusmuse.ru/archives/1453

http://rusmuse.ru/archives/1453

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://muwilab.ru/vozmojno-li-sajt-na-muse-perenesti-na-druguyu-platformu.html

http://htmleditors.ru/List3B/adobe_muse_help/publish.html

http://helpx.adobe.com/ru/muse/using/publishing-websites.html

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://rusmuse.ru/archives/1453

http://creatura.club/lessons/hosting/kak-poluchit-besplatnyy-hosting-i-domen-dlya-adobe-muse-r57/

http://rusmuse.ru/archives/1453

http://today-life.ru/zarabotok-v-seti/kak-posmotret-doxod-na-youtube.html

http://suay.ru/?p=221

http://searchengines.guru/archive/index.php/t-800238.html

http://suay.ru/?p=221

http://searchengines.guru/archive/index.php/t-406016.html

http://lpgenerator.ru/blog/2012/11/15/privyazka-domena-i-poddomena-v-paneli-agavaru/

http://tods-blog.com.ua/software/ai-bolit/

http://revisium.com/ai/faq.php

http://forum.php.su/topic.php?forum=40&topic=4423

http://qaru.site/questions/459285/delete-ajax-works-in-localhost-but-doesnt-in-production-hosting

http://takprostotak.ru/joomla/kak-perenesti-sajt-sozdanyj-na-cms-joomla-bekap-sajta-akeeba-backup.html

http://sitogon.ru/dlya-tech-kto-delaet-internet/akeeba-backup-rezervnoe-kopirovanie-i-perenos-saytov-na-joomla

http://normalnet.ru/sajt-na-joomla/perenos-joomla-3-na-hosting.html

http://www.inforeks.ru/cms/27-joomla-na-server.html

http://takprostotak.ru/joomla/kak-perenesti-sajt-sozdanyj-na-cms-joomla-bekap-sajta-akeeba-backup.html

http://sitogon.ru/dlya-tech-kto-delaet-internet/akeeba-backup-rezervnoe-kopirovanie-i-perenos-saytov-na-joomla

http://normalnet.ru/sajt-na-joomla/perenos-joomla-3-na-hosting.html

http://www.inforeks.ru/cms/27-joomla-na-server.html

http://www.inforeks.ru/cms/27-joomla-na-server.html

http://joofaq.ru/sozdanie-sayta-na-joomla-1-5/ustanovka-i-nastroyka/20-perenos-sayta-joomla-s-lokalnogo-servera-na-virtualniy-chosting

http://joomla.center/baza-joomla/zaschita-joomla/akeeba-backup-manual

http://takprostotak.ru/joomla/kak-perenesti-sajt-sozdanyj-na-cms-joomla-bekap-sajta-akeeba-backup.html

http://takprostotak.ru/joomla/kak-perenesti-sajt-sozdanyj-na-cms-joomla-bekap-sajta-akeeba-backup.html

http://joofaq.ru/sozdanie-sayta-na-joomla-1-5/ustanovka-i-nastroyka/20-perenos-sayta-joomla-s-lokalnogo-servera-na-virtualniy-chosting

http://normalnet.ru/sajt-na-joomla/perenos-joomla-3-na-hosting.html

http://www.inforeks.ru/cms/27-joomla-na-server.html

http://www.amiro.ru/forum/hosting-for-amiro-cms/peremestit-na-drugoj-hosting

http://unihost.com/help/ru/how-to-move-amiro-cms-to-web-hosting/

http://www.hostinger.ru/besplatnyj-hosting

http://ru.hostings.info/hostings/rating/free-hosting

http://www.hostinger.ru/besplatnyj-hosting

http://ru.hostings.info/hostings/rating/free-hosting

http://koskomp.ru/sozdanie-saytov/besplatnye-domeny-dlya-sayta-2-i-3-urovnya-ru-tk-com/

http://oblomow.ru/free-domains/

http://ktonanovenkogo.ru/vokrug-da-okolo/hosting/varianty-besplatnyx-xostingov-dlya-vashix-sajtov-bez-navyazchivoj-reklamy-no-s-podderzhkoj-yazyka-php-i-baz-dannyx-mysql.html

http://www.redz.ru/hosting/free/

http://ru.stackoverflow.com/questions/589053/apache-ssl-https-%D0%B4%D0%BB%D1%8F-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D1%85%D0%BE%D1%81%D1%82%D0%BE%D0%B2

http://www.digitalocean.com/community/tutorials/apache-ubuntu-14-04-lts-ru

http://afirewall.ru/nastrojka-virtualnyx-xostov

http://macrodmin.ru/2019/01/apache-ip-based-and-name-based-virtual-hosting/

http://www.hostland.ru/articles/hosting_apache

http://www.hostinger.ru/rukovodstva/web-server-apache/

http://www.8host.com/blog/ustanovka-alternative-php-cache-apc-na-server-ubuntu-12-04/

http://sitear.ru/material/apc-php

http://ark-hoster.ru/reviews/

http://ark-game.ru/guids/106-svoy-server-arksurvival-evolved.html

http://ark-hoster.ru/reviews/

http://www.myarena.ru/game_ark.html

http://folive.ru/

http://folive.ru/data-center/

http://shiftoffproblem.com/free-hosting-for-asp-net/

http://www.reg.ru/hosting/windows

http://www.ps.kz/hosting/shared

http://pickuphost.ru/shared/free-web-hosting/kazahstan/

http://www.linux.org.ru/forum/web-development/13227568

http://www.sql.ru/forum/648168/linux-hosting-s-podderzhkoy-asp-net

http://owlweb.ru/xosting-asp-net/

http://webdiz.com.ua/chto-takoe-hosting-aspnet/

http://invest4net.ru/webmasteram/besplatnyj-hosting-ot-beget-bez-reklamy.html

http://opartnerke.ru/obzor-besplatnyh-hostingov-bez-reklamy/

http://seoblog.life/domeny-i-hostingi/beget-nastrojka-pochty.html

http://zaurmag.ru/polezny-e-sovety/pochta-na-svoem-domene.html

http://vseohostinge.ru/vse-o-hostinge/beget/tri-sposoba-registratsii-domena-na-beget

http://beget.com/ru/articles/razmeshenie_saita

http://wordpressmania.ru/sozdanie-bloga-na-hostinge-beget-i-ustanovka-cms-wordpress/

http://beget.com/ru/manual/domains

http://wordpressmania.ru/kak-privyazat-domen-k-hostingu-beget/

http://hosters.ru/beget/otzyvi.html

http://masalkin.name/hosting-beget-moj-negativny-j-otzy-v/

http://beget.com/ru/faq/host_transfer

http://www.shoogr.ru/2016/02/kak-perenesti-sajt-wix-na-drugoj-hosting.html

http://bloginfo.biz/beget-hosting.html

http://alzari.ru/beget-ru-hosting.html

http://ammo1.livejournal.com/752487.html

http://site-builders.ru/hosting-beget

http://www.bestseoblog.ru/kak-pravilno-vybrat-xosting-dlya-internet-magazina/

http://ru.hostings.info/hostings/rating/internet-magazin-hosting

http://beget.com/ru/articles/razmeshenie_saita

http://beget.com/ru/faq/host_transfer

http://inetsovety.ru/kak-sozdat-sayt-na-hostinge-beget/

http://investobox.ru/poshagovaya-instrukciya-sozdaniya-sajta/

http://site-builders.ru/hosting-beget

http://seoslim.ru/host/beget-deshevyj-kachestvennyj-xosting-registraciya-otzyvy.html

http://seo911.su/betheme-tema-wordpress-s-bolshoj-bukvy/

http://hostenko.com/wpcafe/themes/betheme/

http://jehost.ru/cms/ustanovka-bitrix-na-hosting.html

http://hostiq.ua/wiki/bitrix-installation/

http://bx-cert.ru/certification/bitrix/26/

http://aposnov.ru/dhydhunedhudhdhn-ndhdhndh-dh-dhdhdhdhndhne-dhnedhdhdhdhdhdhdhndhudhnoedhdhnndh/

http://btrxboost.com/help/832

http://wiki.support.by/%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3_%D1%81%D1%82%D0%B0%D1%82%D0%B5%D0%B9:%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BF%D0%BE%D1%87%D1%82%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_%D0%B4%D0%BB%D1%8F_%D0%B1%D0%B8%D1%82%D1%80%D0%B8%D0%BA%D1%81_%D0%BE%D0%BA%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F

http://reset.name/bitrix/perenos-bitrix-vruchnuju-s-poddomenom-mobilnoj-versii-ili-na-drugoj-domen/

http://www.reg.ru/support/hosting-i-servery/perenos_saitov/kak-perenesti-sayt-na-1s-bitriks-na-drugoy-khosting

http://tuning-soft.ru/articles/bitrix/transfer-bitrix-site-to-another-hosting.html

http://www.reg.ru/support/hosting-i-servery/perenos_saitov/kak-perenesti-sayt-na-1s-bitriks-na-drugoy-khosting

http://tuning-soft.ru/articles/bitrix/backup-bitrix.html

http://abraxabra.ru/blog/bitrix-zametki/backup-site-1c-bitrix/

http://jehost.ru/cms/ustanovka-bitrix-na-hosting.html

http://petersburg-studio.com/blog/ustanovka-1c-bitrix

http://webformyself.com/kak-ustanovit-bootstrap/

http://freelancehunt.ru/project/sozdat-sayt-na-bootstrap/243786.html

http://q2e.ru/servercfg/37-ustanovka-bungeecord.html

http://zorotex.org/page/bungeecord

http://biznessystem.ru/perenos-sajta-na-drugoj-hosting/

http://ru.hostings.info/schools/kak-perenesti-sayt-ot-drugogo-provaydera.html

http://www.cloudlinux.com/ru/cagefs

http://linux-notes.org/vklyuchit-cagefs-dlya-pol-zovatelej-cpanel/

http://gamearmy.ru/monitoring/game_4

http://www.gamer.ru/call-of-duty-2/16950

http://steamcommunity.com/groups/Kaluga_Org

http://call-of-duty-4.ru.softonic.com/

http://gaming.stackexchange.com/q/86525

http://www.elitegameservers.net/game-servers/call-of-duty-4-modern-warfare-game-server-hosting

http://bitte.net.ua/hosting-serverov-cod4.htm

http://it-ground.net/forum/threads/21347/

http://host4game.ru/catalog/minecraft-besplatnyy

http://www.hostinger.ru/besplatnyj-hosting

http://forum.myarena.ru/index.php?/topic/11161-kak-stavit-mody-na-vash-server/

http://minecraftgo.ru/servers/1141-gayd-kak-sozdat-server-minecraft-1710-s-modami-spigot-cauldron-mcpc.html

http://www.dmosk.ru/instruktions.php?object=hosting

http://serveradmin.ru/centos-7-nastroyka-servera/

http://apkpure.com/ru/cloudbunny-hosting-panel/com.cloudbunny.net

http://moonback.ru/page/free-hosting-panel

http://modxinfo.ru/modx-setup

http://blogwork.ru/ustanovka-modx-revolution-na-xosting/

http://cmsplugin.ru/page/cms-hosting

http://www.hostland.ru/cms

http://cmsplugin.ru/page/cms-hosting

http://www.hostland.ru/cms

http://life-crazy.ru/besplatnye-xostingi-dlya-sozdaniya-svoix-sajtov.html

http://cmsplugin.ru/page/cms-hosting

http://cmsplugin.ru/page/cms-hosting

http://fozzy.com/ru/cms.shtml

http://gamecms.ru/

http://vk.com/enginegamespanel

http://www.nic.ru/help/kakoj-hosting-vybrat6_6749.html

http://1ps.ru/blog/sites/hosting-domen-cms/

http://cmsplugin.ru/page/cms-hosting

http://www.hostland.ru/cms

http://cmsplugin.ru/page/cms-hosting

http://www.hostland.ru/cms

http://thehost.ua/wiki/install-wordpress

http://moguta.ru/blog/delaem-internet-magazin-vmeste/kak-ustanovit-cms-na-hosting

http://1ps.ru/blog/sites/hosting-domen-cms/

http://www.nic.ru/help/kakoj-hosting-vybrat6_6749.html

http://www.hostinger.ru/rukovodstva/rukovodstvo-po-codeigniter/

http://code.tutsplus.com/ru/tutorials/creating-a-file-hosting-site-with-codeigniter—net-3534

http://www.pandoge.com/stati_i_sovety/kak-ustanovit-composer-na-hosting-ili-server

http://www.hostinger.ru/rukovodstva/kak-ustanovit-composer

http://www.pandoge.com/stati_i_sovety/kak-ustanovit-composer-na-hosting-ili-server

http://bender-blog.ru/en/post/1/

http://pawn-wiki.ru/index.php?/topic/33660-jail/page__view__new

http://www.hostinger.ru/rukovodstva/kak-ispravit-establishing-a-database-connection-wordpress/

http://moonback.ru/page/free-hosting-panel

http://spark.ru/post/28928

http://manual.ucoz.net/board/39-1-0-15

http://www.greenmama.ru/nid/3759555/

http://myhost.su/rent_csgo.html

http://ourservers.ru/csgo.html

http://hl-servers.ru/vse-dlya-klienta-cs-16/stati-po-klientu/166-rukovodstvo-po-ustanovka-i-nastroyke-master-servera-counter-strike-serverov.html

http://ourservers.ru/cs.html

http://hostiq.ua/blog/cpanel-vs-ispmanager/

http://hyperhost.ua/info/sravnenie-funtsionala-cpanel-i-ispmanager/

http://www.reg.ru/support/hosting-i-servery/sajty-i-domeny/kak-razmestit-sayt-na-hostinge/kak-razmestit-sayt-v-cpanel

http://blog.ukrnames.com/hosting/perenos-ili-ustanovka-sayta-na-hostin

http://www.hostinger.ru/rukovodstva/chto-takoe-cpanel-panel-upravlenija-hosting/

http://moonback.ru/page/free-hosting-panel

http://www.reg.ru/support/hosting-i-servery/sajty-i-domeny/kak-razmestit-sayt-na-hostinge/kak-razmestit-sayt-v-cpanel

http://blog.ukrnames.com/hosting/perenos-ili-ustanovka-sayta-na-hostin

http://loco.ru/material/view?id=543

http://seozwer.com/xosting/rezkoe-uvelichenie-nagruzki-cpu-na-xosting-prichiny-i-sposoby-resheniya/

http://loco.ru/material/view?id=543

http://nicola.top/vysokaya-nagruzka-wordpress-na-cpu-protsessor-server-i-hosting/

http://inclient.ru/setup-crm-inclient/

http://umc-crm.ru/dokumentatsiya/ustanovka-i-nastrojka

http://kbrus.cs-cart.com/move-to-another-server

http://s-host.com.ua/blog/perenos-cms-cs-cart-na-novyy-host-akkaunt.html

http://www.cs-cart.ru/docs/4.3.x/install/requirements/

http://cart-power.ru/cs-cart-speed-optimization/

http://www.cs-cart.ru/docs/4.2.x/manager/install/hosting/

http://cccp-blog.com/drugie-cms/nastrojka-cs-cart-internet-magazina

http://www.chosten.ru/services/hosting/cs-cart-hosting

http://konstruktorysajtov.com/cs-cart

http://www.4cw.ru/cs/config/70-gde-mozhno-kupit-gotovyy-server-cs-16.html

http://1zaicev.ru/kak-kupit-xosting-poshagovaya-instrukciya/

http://www.myarena.ru/webhosting.html

http://ourservers.ru/cs.html

http://brreporter.com/v/%D0%BA%D0%B0%D0%BA-%D0%B7%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80-css-%D0%BD%D0%B0-%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3-ftp-_XZXkUkVyo4.html

http://webformyself.com/kak-zalit-server-mysql-na-xosting-i-ne-ssoritsya-s-sosedyami/

http://www.hostinger.ru/rukovodstva/kak-zagruzit-sait-na-khosting

http://mojbiznes.ru/kak-zagruzit-fajl-na-xosting-v-kornevuyu-papku-sajta.html

http://worldhosts.ru/source/

http://forum.myarena.ru/index.php?/topic/7273-bystraia-skachka-failov-s-servera-khosting-failov/

http://veesp.com/ru/blog/how-to-setup-web-server-on-virtual-server

http://www.valve-server.ru/cs/statscs/1714-kak-sozdat-server-na-vds-debian-7×64.html

http://codeby.net/blogs/reshenie-problemy-s-rabotoj-modulja-curl-na-php-5-6-1-php-5-5-17-i-vyshe-na-windows/

http://andreyex.ru/operacionnaya-sistema-linux/5-osnovnyx-primerov-komandy-curl/

http://codeby.net/blogs/reshenie-problemy-s-rabotoj-modulja-curl-na-php-5-6-1-php-5-5-17-i-vyshe-na-windows/

http://www.weblancer.net/projects/no-category-0/ustanovka-biblioteki-curl-na-virtualynom-hostinge-18454/

http://prosto.1gb.ru/wiki/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%BD%D0%BE%D0%B9_%D0%BD%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8

http://kinsite.ru/reshenie-problemy-s-prevy-sheniem-dopustimoj-nagruzki-na-tarifah-virtual-nogo-hostinga.html

http://folive.ru/

http://cplace.ru/forum/index.php/topic/37-kak-sozdat-server-dayz-epoch/

http://cloud4box.com/zashhita-ot-ddos-arbor/

http://xakep.ru/2012/12/29/16-antiddos-recipes/

http://tucha.ua/blog/kak-zashhitit-svoj-vps-hosting-ot-ddos-atak/

http://cloud4box.com/zashhita-ot-ddos-arbor/

http://m.habr.com/company/hosting-cafe/blog/324848/

http://www.ru.koddos.net/ddos-protection.html

http://hyperhost.ua/info/debian-ili-centos/

http://www.stableit.ru/2009/12/centos-debian-5.html

http://veesp.com/ru/blog/how-to-setup-web-server-on-virtual-server

http://interface31.ru/tech_it/2015/06/nastraivaem-veb-server-na-baze-apache-v-debian-ubuntu-server.html

http://moonback.ru/page/free-hosting-panel

http://tovld.com/archives/2506

http://www.cyberforum.ru/delphi-database/thread1711634.html

http://www.delphimaster.net/view/15-1235944412

http://www.cyberforum.ru/delphi-database/thread1711634.html

http://www.delphimaster.net/view/15-1235944412

http://brreporter.com/v/%D0%BA%D0%B0%D0%BA-%D0%BF%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BC%D0%BE%D0%B4-diamond-rp-%D0%BD%D0%B0-%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3-crmp-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-mysql-rrt1nX6axyU.html

http://www.fassen.net/show/Diamond+RP-SAMP+

http://www.netangels.ru/support/hosting-howto/django/

http://www.reg.ru/support/hosting-i-servery/hosting-sajtov/yazyki-programmirovaniya-i-skripty/kak-ustanovit-django-na-hosting

http://atamovich.ru/kak-perenesti-datalife-engine-na-drugoj-xosting/

http://dle-news.ru/tips/109-perenos_sajjta_s_lokalnogo_servera_na_khosting.html

http://atamovich.ru/kak-perenesti-datalife-engine-na-drugoj-xosting/

http://dle-news.ru/tips/109-perenos_sajjta_s_lokalnogo_servera_na_khosting.html

http://atamovich.ru/kak-perenesti-datalife-engine-na-drugoj-xosting/

http://dle-news.ru/tips/109-perenos_sajjta_s_lokalnogo_servera_na_khosting.html

http://atamovich.ru/kak-perenesti-datalife-engine-na-drugoj-xosting/

http://9seo.ru/perenos-sajta-na-drugoj-xosting/

http://seowars.pro/praktika/perenos-dle-sajta-s-denwer-a-na-xosting/

http://amateurblogger.ru/kak-perenesti-sajt-s-denvera-na-xosting/

http://blogwork.ru/kak-ustanovit-dle-na-xosting/

http://www.ipipe.ru/info/ustanovka-dle-na-hosting.html

http://cms-dle.ru/14-sozdaem-avtonapolnyaemyy-kinosayt.html

http://dleshka.org/scripts/5934-baza-kino-sayta-1856-filmov-i-shablon-na-dle.html

http://4dle.ru/skins/1147157054-shablon-khostinga.html

http://ichigarev.ru/wordpress-themes/igrovyie-shablonyi-dlya-wordpress.html

http://www.nic.ru/catalog/for-domain-use/dns-hosting/

http://www.nic.ru/catalog/for-domain-use/dns-hosting/#popup/order/checkout/

http://www.hostinger.ru/rukovodstva/kak-izmenit-ns-servera-domena

http://ktonanovenkogo.ru/vokrug-da-okolo/hosting/chto-takoe-domeny-xosting-dns-servera-ip-adresa-sajt-internet.html

http://timeweb.com/ru/help/pages/viewpage.action?pageId=9240818

http://qiqer-site.ru/docs/domeny/yandeks-pochta-dlya-domena/

http://www.websovet.com/kak-pravilno-perenesti-dns

http://biznessystem.ru/perenos-sajta-na-drugoj-hosting/

http://toster.ru/q/63642

http://help.sweb.ru/entry/69/

http://www.reg.ru/support/domains/dns_servery_i_nastroika_zony/Nastroika-zony/nastroika-resursnyh-zapisei-dlya-domena

http://ru.hostings.info/schools/dns.html

http://www.reg.ru/support/domains/dns_servery_i_nastroika_zony/Nastroika-zony/nastroika-resursnyh-zapisei-dlya-domena

http://toster.ru/q/267963

http://learn.dkrylov.com/lessons/read/chto-takoe-dns-zony-servera-i-dlja-chego-oni-nuzhny-svjazyvaem-domen-i-hosting_25/

http://www.nic.ru/help/chasto-zadavaemye-voprosy-o-dns_7967.html

http://site-helper.ru/dns.html

http://friendhosting.net/blog/dlya-chego-nuzhen-dns-khosting.php

http://www.reg.ru/support/hosting-i-servery/sajty-i-domeny/kak-nastroit-dns/kak-privyazat-domen-k-hostingu

http://abdullinru.ru/site/privyazka-domena-k-hostingu.html

http://www.reg.ru/support/domains/dns_servery_i_nastroika_zony/Nastroika-zony/nastroika-resursnyh-zapisei-dlya-domena

http://ru.hostings.info/schools/dns.html

http://forum.lissyara.su/pro-sajt-f14/domashnij-veb-server-i-dns-yandeksa-t35711.html

http://set-os.ru/public-dns-servers/

http://www.reg.ru/support/hosting-i-servery/sajty-i-domeny/kak-nastroit-dns/kak-privyazat-domen-k-hostingu

http://vnet-rabota.ru/sozdanie-site/nachalo/143-kak-propisat-dns-i-privyazat-domen.html

http://friendhosting.net/blog/dlya-chego-nuzhen-dns-khosting.php

http://ktonanovenkogo.ru/vokrug-da-okolo/hosting/chto-takoe-domeny-xosting-dns-servera-ip-adresa-sajt-internet.html

http://friendhosting.net/blog/dlya-chego-nuzhen-dns-khosting.php

http://ktonanovenkogo.ru/vokrug-da-okolo/hosting/chto-takoe-domeny-xosting-dns-servera-ip-adresa-sajt-internet.html

http://friendhosting.net/blog/dlya-chego-nuzhen-dns-khosting.php

http://ktonanovenkogo.ru/vokrug-da-okolo/hosting/chto-takoe-domeny-xosting-dns-servera-ip-adresa-sajt-internet.html

http://qiqer-site.ru/docs/domeny/yandeks-pochta-dlya-domena/

http://forum.lissyara.su/pro-sajt-f14/domashnij-veb-server-i-dns-yandeksa-t35711.html

http://www.nic.ru/catalog/for-domain-use/dns-hosting/

http://www.nic.ru/catalog/for-domain-use/dns-hosting/#popup/order/checkout/

http://roem.ru/21-09-2010/119640/yandeks-zapustil-besplatnyy-dns-hosting/

http://friendhosting.net/blog/dlya-chego-nuzhen-dns-khosting.php

http://interface31.ru/tech_it/2015/05/sozdaem-svoy-sayt-nastroyka-dns-zony.html

http://webonto.ru/4-sposoba-sozdat-svoy-hosting/

http://mysqlru.com/faq/dns-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80-%D0%BD%D0%B0-%D0%B4%D0%BE%D0%BC%D0%B0%D1%88%D0%BD%D0%B5%D0%BC-%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B5.html

http://toster.ru/q/358894

http://friendhosting.net/blog/dlya-chego-nuzhen-dns-khosting.php

http://www.host-food.ru/faq/domains.questions/use.our.free.dns.servers/

http://friendhosting.net/blog/dlya-chego-nuzhen-dns-khosting.php

http://www.reg.ru/vps/free_dns

http://webmasterie.ru/razrabotka/domeni/chto-takoe-dns

http://learn.dkrylov.com/lessons/read/chto-takoe-dns-zony-servera-i-dlja-chego-oni-nuzhny-svjazyvaem-domen-i-hosting_25/

http://roem.ru/21-09-2010/119640/yandeks-zapustil-besplatnyy-dns-hosting/

http://qiqer-site.ru/docs/domeny/yandeks-pochta-dlya-domena/

http://roem.ru/21-09-2010/119640/yandeks-zapustil-besplatnyy-dns-hosting/

http://consei.ru/hosting/yandeks-hosting.html

http://www.nic.ru/catalog/for-domain-use/dns-hosting/

http://www.nic.ru/catalog/for-domain-use/dns-hosting/#popup/order/checkout/

http://roem.ru/21-09-2010/119640/yandeks-zapustil-besplatnyy-dns-hosting/

http://qiqer-site.ru/docs/domeny/yandeks-pochta-dlya-domena/

http://friendhosting.net/blog/dlya-chego-nuzhen-dns-khosting.php

http://www.depohost.ru/news/CHto_takoe_DNS_khosting_i_kak_on_rabotaet/

http://webmastersam.ru/ins-dreamweaver-zagruzka-saita-na-server.html

http://helpx.adobe.com/ru/dreamweaver/using/connect-remote-server.html

http://webmastersam.ru/ins-dreamweaver-zagruzka-saita-na-server.html

http://helpx.adobe.com/ru/dreamweaver/using/connect-remote-server.html

http://helpx.adobe.com/ru/dreamweaver/using/connect-remote-server.html

http://heavenweb.ru/kak-rabotat-s-ftp-v-adobe-dreamweaver

http://steepbend.ru/servisy/droppages-ili-kak-ispolzovat-dropbox-kak-xosting-dlya-sajtov/

http://wordpressmania.ru/besplatnyiy-servis-dropbox-dlya-hraneniya-faylov/

http://www.dejurka.ru/web-design/15-steps-after-installing-drupal/

http://drupalbook.ru/versiya-drupal/drupal-8x?page=5%00http://drupalbook.ru/versiya-drupal/drupal-8x

http://unihost.com/help/ru/transfer_drupal_on_host/

http://www.ipipe.ru/info/ustanovka-drupal-na-hosting.html

http://unihost.com/help/ru/transfer_drupal_on_host/

http://www.templatemonster.com/help/ru/drupal-how-to-move-your-website-from-one-domain-to-another.html

http://unihost.com/help/ru/transfer_drupal_on_host/

http://www.templatemonster.com/help/ru/drupal-how-to-move-your-website-from-one-domain-to-another.html

http://area53.ru/drupal/kak-perenesti-sayt-drupal-na-hosting-ru-center.html

http://unihost.com/help/ru/transfer_drupal_on_host/

http://www.ipipe.ru/info/ustanovka-drupal-na-hosting.html

http://3cms.org/saietostroenie/ustanovka-drupal-7-na-xosting/

http://www.ipipe.ru/info/ustanovka-drupal-na-hosting.html

http://afirewall.ru/kak-ustanovit-drupal-7-ustanovka-drupal-7-na-xosting-ru-center-nic-ru

http://www.ipipe.ru/info/ustanovka-drupal-na-hosting.html

http://ru.d-ws.biz/articles/install-drupal-7.shtml

http://www.templatemonster.com/help/ru/drupal-how-to-move-your-website-from-one-domain-to-another.html

http://drupal-admin.ru/blog/%D1%80%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5-%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B8-%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-drupal-%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2

http://www.templatemonster.com/help/ru/drupal-how-to-move-your-website-from-one-domain-to-another.html

http://drupal-admin.ru/blog/%D1%80%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5-%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B8-%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-drupal-%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2

http://www.templatemonster.com/help/ru/drupal-how-to-move-your-website-from-one-domain-to-another.html

http://drupal-admin.ru/blog/%D1%80%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5-%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B8-%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-drupal-%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2

http://unihost.com/help/ru/transfer_drupal_on_host/

http://dkws.net/archives/731

http://area53.ru/drupal/kak-perenesti-sayt-drupal-na-hosting-ru-center.html

http://www.wisecat.ru/khozyaike-na-zametku/drupal/perenos-drupal-s-denvera-na-khosting

http://www.wisecat.ru/khozyaike-na-zametku/drupal/perenos-drupal-s-denvera-na-khosting

http://onedrupal.com/osnovy-drupal/ustanovka-drupal

http://americanhost.ru/page/hosting-s-vozmozhnostju-otpravki-bolshogo-kolichestva-pisem

http://www.clickon.ru/blog/kak-organizovat-rassylku-so-svoego-sajt/

http://www.hostinger.ru/besplatnyj-hosting

http://e-planet.ru/

http://vk.com/enginegamespanel

http://www.hostinger.ru/rukovodstva/chto-takoe-cpanel-panel-upravlenija-hosting/

http://vk.com/enginegamespanel

http://c-s.net.ua/forum/topic50626.html

http://vk.com/enginegamespanel

http://c-s.net.ua/forum/topic50626.html

http://dwweb.ru/page/more/034_epn_cms_magazina_ustanovka.html

http://www.101partnerka.ru/2017/06/online-magazin-aliexpress.html

http://eve-hosting.ru/

http://gta24host.ru/

http://herofastermp3.com/%D0%9A%D0%B0%D0%BA-%D0%B7%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%B8-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80-s-and-%D0%BD%D0%B0-%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3-evehost-youtube

http://online-videos.ru/watch/kak-zalit-i-nastroit-server-SAMP-na-khosting-EveHost/5NYcmfcjmME

http://eve-hosting.ru/

http://herofastermp3.com/%D0%9A%D0%B0%D0%BA-%D0%B7%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%B8-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80-s-and-%D0%BD%D0%B0-%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3-evehost-youtube

http://modx-evo.ru/web-mastering/modx/urok-17-perenos-sajta-na-hosting

http://www.reg.ru/support/hosting-i-servery/perenos_saitov/kak-perenesti-sayt-na-modx-na-drugoy-khosting

http://forum.getsimplecms.ru/viewtopic.php?id=428

http://bloggood.ru/wordpress/ne-rabotaet-plagin-dlya-vsplyvayushhej-formy-easy-fancybox.html/

http://forum.nic.ru/showthread.php?p=8109

http://www.maultalk.com/topic57395.html

http://playsector.ru/stati/2047-oshibki-novichka-pri-nastrojke-servera-samp

http://pawn-wiki.ru/index.php?/topic/33660-jail/page__view__new

http://lumpics.ru/setting-up-filezilla-server/

http://support.hostpro.ua/index.php?/Knowledgebase/Article/View/376

http://s-host.com.ua/blog/kak-zagruzit-sayt-na-hosting-cherez-filezilla.html

http://bloggermen.ru/zalivaem-sajt-na-xosting-s-pomoshhyu-ftp-menedzhera-filezilla/

http://wp-system.ru/sozdanie-sayta/hosting-i-domen/instruktsiya-kak-podklyuchit-filezilla-k-hostingu-po-ftp/

http://www.hostinger.ru/rukovodstva/nastroika-filezilla

http://www.hostinger.ru/rukovodstva/nastroika-filezilla

http://www.king-servers.com/knowledgebase/articles/kak-zalit-sayt-na-hosting.html

http://lumpics.ru/filezilla-can-not-connect-to-the-server/

http://wp-system.ru/sozdanie-sayta/hosting-i-domen/instruktsiya-kak-podklyuchit-filezilla-k-hostingu-po-ftp/

http://isif-life.ru/poleznye-programmy/filezilla-kak-polzovatsya-ftp-klientom-besplatno.html

http://www.hostinger.ru/rukovodstva/nastroika-filezilla

http://s-host.com.ua/blog/kak-zagruzit-sayt-na-hosting-cherez-filezilla.html

http://chironova.ru/kak-byistro-zagruzit-faylyi-na-hosting-i-obratno-cherez-ftp-klient-filezilla/

http://www.hostinger.ru/rukovodstva/kak-ispravit-oshibku-403-forbidden-error

http://26pk.ru/poleznoe/403-forbidden-chto-yeto-i-kak-ispravit

http://tradelikeapro.ru/kak-ustanovit-i-nastroit-vps-server-dlya-torgovli-na-foreks/

http://forex-total.ru/vps-server-dlya-foreks/rejting-luchshix-vps-serverov-dlya-foreks-besplatnye-vps-servery.html

http://sosnovskij.ru/pereehal-na-hosting-fozzy/

http://fozzy.com/

http://ru.000webhost.com/

http://www.hostinger.ru/besplatnyj-hosting

http://forum.php.su/topic.php?forum=1&topic=3920

http://king-dom.ru/php/fsockopen-php.html

http://winkomp.ru/ftp-server-na-domashnem-pk-bez-problem

http://fb.ru/article/65010/kak-sozdat-ftp-server-samostoyatelno

http://www.hostland.ru/ftp

http://prodvizhenie-site.ru/wordpress/kak-nastroit-ftp-dostup.html

http://adminvps.ru/blog/vse-chto-nuzhno-znat-o-ftp/

http://blog-95.ru/ftp-file-access/

http://semantica.in/blog/ftp.html

http://adminvps.ru/blog/vse-chto-nuzhno-znat-o-ftp/

http://www.web-article.com.ua/2008/kak-zalivat-fayli-po-ftp-na-server/

http://int-net-partner.ru/poleznye-programmy-i-servisy/kak-zagruzit-sajt-na-xosting-cherez-ftp.html

http://misha.blog/wordpress/domenyi-hosting-ftp-bazyi-dannyih.html

http://masterhost.ru/support/hosting/work-with-data/program

http://www.nic.ru/help/ftp-zagruzka-fajlov-na-server_6765.html

http://int-net-partner.ru/poleznye-programmy-i-servisy/kak-zagruzit-sajt-na-xosting-cherez-ftp.html

http://wp-system.ru/sozdanie-sayta/hosting-i-domen/instruktsiya-kak-podklyuchit-filezilla-k-hostingu-po-ftp/

http://www.reg.ru/support/hosting-i-servery/hosting-sajtov/nachalo-raboty-i-dostupy/kak-podklyuchitsya-poftp

http://wp-system.ru/sozdanie-sayta/hosting-i-domen/instruktsiya-kak-podklyuchit-filezilla-k-hostingu-po-ftp/

http://toster.ru/q/393725

http://host4game.ru/catalog/minecraft-dostupom_po_ftp-besplatnyy

http://1game.ua/faq/view/4

http://moonback.ru/page/free-ftp-hosting

http://start-luck.ru/obsluzhivanie-sayta/besplatnyj-ftp-hosting.html

http://host4game.ru/catalog/minecraft-dostupom_po_ftp-besplatnyy

http://1game.ua/faq/view/4

http://start-luck.ru/obsluzhivanie-sayta/besplatnyj-ftp-hosting.html

http://moonback.ru/page/free-ftp-hosting

http://moonback.ru/page/free-ftp-hosting

http://start-luck.ru/obsluzhivanie-sayta/besplatnyj-ftp-hosting.html

http://moonback.ru/page/free-ftp-hosting

http://start-luck.ru/obsluzhivanie-sayta/besplatnyj-ftp-hosting.html

http://winkomp.ru/ftp-server-na-domashnem-pk-bez-problem

http://unihost.com/blog/how-to-host-a-website-on-your-own-pc/

http://start-luck.ru/poleznyy-soft/fajlovyj-hosting.html

http://tavalik.ru/ssylka-na-ftp-server/

http://www.hostland.ru/ftp

http://moonback.ru/page/free-ftp-hosting

http://wp-system.ru/sozdanie-sayta/hosting-i-domen/ftp-cherez-total-commander/

http://www.nic.ru/help/nastrojka-populyarnyh-ftp-kli..(filezilla-far-total-commander-i-dr)_6766.html

http://topskript.net/master/host/3948-gamepl-v8-panel-upravleniya-igrovymi-serverami.html

http://cs-amba.ru/news/sliv_gamepl_v_8_besplatno/2018-01-09-4317

http://topskript.net/master/host/3948-gamepl-v8-panel-upravleniya-igrovymi-serverami.html

http://cs-amba.ru/news/sliv_gamepl_v_8_besplatno/2018-01-09-4317

http://topskript.net/master/host/3948-gamepl-v8-panel-upravleniya-igrovymi-serverami.html

http://cs-amba.ru/news/sliv_gamepl_v_8_besplatno/2018-01-09-4317

http://topskript.net/master/host/3948-gamepl-v8-panel-upravleniya-igrovymi-serverami.html

http://forum.servachoc.net/index.php?/files/category/4-%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D0%B8-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F/

http://host4game.ru/catalog/san_andreas_multiplayer

http://hostsamp.ru/

http://git-scm.com/book/ru/v1/Git-%D0%BD%D0%B0-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B5-Git-%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3

http://cccp-blog.com/koding/sozdayom-git-server-svoimi-rukami