Настраиваем сервер для LiveStreet. Часть I. Введение, хостинг и PuTTY.

Учитывая, что сообщество проявило вот тут livestreet.ru/blog/questions/14593.html#comment233221 не нулевую активность. И точно есть, хотя бы, несколько человек которым эта тема интересна. Начинаю цикл заметок про «что и как устанавливать и настраивать».

Вступительное замечание:

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

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


Начальные предположения:
1. У вас есть «домашний» компьютер с Windows и доступом в сеть.
2. У вас есть желание заполучить свой выделенный(Dedicated) или виртуальный(VPS) сервер для того, чтобы запустить на нём сайт основанный на LiveStreet
3. У вас есть доменное имя для вашего сайта и доступ к настройкам DNS у вашего регистратора домена.

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

С выбором OS ошибиться трудно. Нам нужен Debian Linux 6 “squeeze”, и я не знаю ни одного хостера который бы не предлагал эту опцию.

Замечание: Debian — потому что я его знаю. И это основная причина. Всё о чем я буду писать в рамках этих инструкций, будет относится именно к этой OS.

А вот что такое «минимальная» конфигурация — это размытое понятие. Чтобы не создавать себе не нужных трудностей, лучше уточнить у хостера что они понимают под этим, и если что-то не так, прямо при заказе указать в особых пожеланиях то, что нужно изменить. Заодно оцените уровень поддержки, пока не поздно.

Что нам нужно.
  • Максимально «чистая» OS: никакого лишнего софта, никаких LAMP. Там должен быть голый Linux с SSH (ну SSH то там по любому будет, можете не спрашивать, иначе к серверу будет просто невозможно доступиться удалённо)
  • Корневая файловая система должна быть ext4
  • Character set системы по умолчанию должен быть UTF-8

Замечание: У нормальных хостеров это всё так и будет, но за спрос не бьют в нос. Лучше уточнить.

Если хостер при заказе спрашивает имя хоста — указывайте свой основной домен без www. Некоторый софт использует это как значение по умолчанию (почта, например). Перенастроить не сложно, я этого коснусь. Но зачем, если сделают сразу.

ОК. У вас есть сервер. Это значит что вам выдали(хостер на почту прислал) IP и пароль для root. Можно приступать.

Первое что нам будет нужно это доступ к серверной консоли через SSH. И делать мы будем это с помощью программки PuTTY.

Качаем файлик putty.exe. Кидаем в какую-нибудь папку. Установки утилита не требует. Запускаем и настраиваем.

PuTTY #1

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

PuTTY #2

Выбираем Linux, чтобы правильно работали функциональные клавиши в тех программах которые их понимают (например mc). Больше ничего не меняем.

PuTTY #3

Задаём размеры, собственно, окна PuTTY и количество строк консоли которые будут сохранятся.

PuTTY #4

Задаём кодировку для нашего сервера UTF-8

PuTTY #5

Задаём тип терминала linux, чтобы псевдографика отображалась правильно (опять же, например, в mc или aptitude).

PuTTY #6

Возвращаемся на основной экран, Save наши настройки (позже, при заходе, просто выбрать наше имя, под котором мы сохранили их, из списка и нажать Load). Ну и Open — осуществиться соединение с нашим сервером, откроется чёрная консоль и нужно будет ввести логин и пароль.

Замечание: Самый важный навык при работе с PuTTY это работа с буфером обмена (clipboard). Текст, который вы поместили в буфер обмена в Windows можно сбросить в PuTTY просто нажав правую кнопку мыши на этом черном окне. То что вы выделили мышью в PuTTY сразу же оказывается в буфере обмена. Это опять можно сбросить туда же правой кнопкой, или в любую Windows программу обычным образом.

В открывшейся консоли, после успешного создания соединения, спросят Login — вводим root и нажимаем ENTER. После чего спросят пароль (характерная особенность UNIX систем — при вводе пароля не будет никаких визуальных подсказок, никаких «звёздочек») вводим его (или, хи хи, копируем его из письма от хостера в буфер обмена и сбрасываем в консоль правой кнопкой мыши) и опять нажимаем ENTER.

Результат будет выглядеть примерно так:
PuTTY #6

Всё, теперь вы в консоли сервера. Чтобы покинуть это мрачное место нужно набрать exit и нажать ENTER.

В заключение первой главы, я добавлю что вам так же нужно озаботится какой-то утилитой для копирования файлов на сервер по протоколу SFTP. Например WinCSP или FileZilla. Настройку этих программ описывать не буду она чрезвычайно проста. Для конфигурации SFTP соединения, на данном этапе, можно использовать тот же самый IP своего сервера и тот же самый root c паролем.

Продолжение о том что со всем этим делать — в следующей части:
Часть II. Vim, файловая система, hostname.

P.S.
  • Прошу прощения за задержку с началом публикации, с этого момента планирую выдавать «главу» раз в 2-3 дня.
  • Это часть скучновата, но IMHO она нужна тоже для полноты картины.
http://steklo-profi.ru/obrabotka-stekla/photoprint.html — это современный способ оживить ваш интерьер. Профессиональный подход в обработке стекла, современные технологии и 10 лет гарантии!

50 комментариев

avatar
Ссылка на скачивание патти чуть битая получилась.
avatar
LS не любит символ "~" и как это обойти с лёту не могу придумать :)
avatar
<a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html ">Your text to link...</a>
avatar
Да… Чего-то протупил. Поправил, спасибо.
avatar
Зачетно.
avatar
я порекомендую еще попробовать kitty. Это форк putty, но с добавлением примочек типа восстановления сессий, автовыполнения команд при коннекте, встроенного sftp и прочего.
avatar
Не знал. Попробую. Спасибо. :)
avatar
Если еще учитывать, что во время настройки будет поставлен PMA, и настроен принимать подключения только локально, то лучше чтобы это был ssh туннель.
avatar
PMA = phpMyAdmin? Нет, его не будет. Не люблю и не понимаю. Описан будет SSH tunneling и локальный клиент.
avatar
Неинтересный вариант, но он подходит для случаев когда на сервере сайты и базы одного владельца. А если я захочу разместить сайт друга? Ему тоже придется туннель поднимать? А если нужно будет дать доступ к базе программисту для дебага?
avatar
А в чем проблема? Тунель обеспечивает безопасный доступ к серверу базы данных и только. Вы не можете ходить им в консоль. Вы не можете ходить им на SFTP. Это просто форма доступа. А что могут ваши друзья и клиенты делать с вашим сервером базы данных — решается с помощью прав юзеров базы данных.

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

А Недостаток только в том что нужно поставить программу на локальный комп и настроить. Что делается не просто просто, а до истерики просто.
avatar
Зато это быстро
Отнюдь. Вместо того, чтобы сказать урл к phpma, и доступы к базе сайта чтобы я мог удаленно отладить плагин, клиент будет искать инструкцию, как сделать доступ (ведь вы пишите для новичков, а они это запоминать не станут), как сгенерить мне ключ, искать пароль рута в письмах чтобы подключиться к консоли. Я то знаю, что это дело десяти минут, но у неподготовленного человека это затянется на продолжительное время и закончиться это одним из двух вариантов:
— Ой, давайте я подготовлю и вечером вам напишу
— Ой, вот вам пароль к серверу, сделайте все, что вам нужно (в большинстве случаев все заканчивается именно так)

А Недостаток только в том что нужно поставить программу на локальный комп и настроить
А я на отдыхе, вокруг море и одни компьютерный клуб на 50 километров с модемным доступом. «Поставить Mysql Workbench? Мужчина, тут ИГРОВОЙ клуб, не видите?»
avatar
Я не буду спорить. Хозяин барин. Но мне просто стало интересно — вы всерьёз собираетесь из клуба, или кафэ, с их компа к серверу ходить? Рассказать вам о кейлокерах? Не советую очень сильно.
avatar
Рассказать вам о кейлокерах?
Спасибо, о кейлогерах я знаю.
avatar
Тунель… Вы не можете ходить им в консоль. Вы не можете ходить им на SFTP. Это просто форма доступа.
ssh -D localhost:1234 username@xxx.xxx.xxx.xxx тот же самый шелл что и обычный ssh, по совместительству еще и локальный прокси до того же PMA. SFTP — Filezilla, все ок.
avatar
avatar
Я не очень понял что вы хотите сказать. Всё упирается в то как вы настроете учетную запись для тунелинга. Можно и нужно настраивать так чтобы кроме досупа к MySql он ничего не мог.
avatar
Если нужно разрешить принимать подключения к PMA только с локального ip или ip сервера, то дополнив правила .htaccess самого PMA, можно будет безболезненно заходить туда при помощи ssh туннеля, при этом будет более безопасно, т.к. для того чтобы зайти туда надо будет иметь определенный ip а значит и ssh подключение, соответственно помимо прокси еще можно будет пользоватся консолью(шелом) как и прежде.
avatar
Я все равно не понимаю зачем городить такой велосипед. PMA мне как разработчику и администратору не дает мне никаких преимуществ. И удобства тоже никакого. Плюс для работы с ним нужен как минимум php и HTTP сервер.

Если вы собираетесь хостинг организовывать для 100 человек — ради бога. Может это и имеет смысл. Не знаю, никогда такого не делал. И эти заметки что я начал писать, они не про то как сделать из сервера хостинг центр.
avatar
При чем тут разработчики и хостинг центр, я не пойму. Если мануал рассчитан на новичков, то, например можно представить ситуацию когда кто то, берет хостинг VDS/VPS/DS/Cloud при этом сам уходит с шареда и хочет сохранить базу, которая у него была на шареде, соответственно идя по пути наименьшего сопротивления было бы проще всего рассмотреть вариант, когда человек при помощи PMA, восстанавливает себе эту базу и т.д. разумеется вовсе не обязательно использовать правила для pma и давать доступ всем подряд или ограничится статическим ip, я лишь посоветовал как сделать лучше всего.
avatar
Я понял вашу точку зрения. И я с ней не согласен. :)

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

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

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

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

Повторюсь во время SSH туннеля помимо доступа, можно пользоватся и обычнойь консолью и устанавливать софт.
avatar
Всё зависит от потребностей. Чего спорить то.
phpmyadmin в основной части не нужен т.к добавит только дрявости к бд. К тому-же, с ним тоже есть тонкости, которые (снова судя по куче доков в инете) все игнорируют.
avatar
Представим ситуацию:

Человек ставит окружение по этому мануалу, все хорошо, лс запустился и работает. Спустя какое то время у человека начинают копится вопросы, например как сделать так, ему отвечают: через базу делай так и так. И тут он начинает гуглить как же в эту базу то внести изменения. Скорее всего он найдет тучу мануалов где описан порядок действий в PMA, он начнет искать как поставить PMA спустя N часов PMA будет установлен и что то мне подсказывает что будет доступен для всех, т.к. в рамках мануала не было описано как установить его безопасно.
avatar
У человека ставит окружение по этому мануалу никаких вопросов не возникнет потому, что что и как делать с базой будет описано в 4-ой части. Включая tunneling и HeidiSQL.
avatar
Почитал про клиент, всеь таки через тунель лучше, например, чтобы с работы зайти или от друзей, т.к. траффик зашифрованный. Надо мной например прикололись на работе и поставили очень жесткий вирус на винду) А с линуксом ничего сделать не смогли, хотя там через рекавери мод можно в легкую сменить пароль. В случае тунеля снифер пакетовь будет в обломе из за шифрованного трафика, а уж если совсем делать по уму то создавать пользователя с шеллом bin/false чтобы предотвратить вводь команд при ssh, и сгенерировать публичный ключ по которому можно будет подключатся не вводя пароля(защита от кейлогеров)

Летом спомощью снифера пакетов можно было отловить куки от vk.com если использовался обычный http и таким образом угнать сессию.
avatar
censured , Если так паранойя кушает, может вам это, вообще ходить через i2p? :)
avatar
Со сьемной квартиры, которую нашел и оплатил другой, не знакомый человек? :D
avatar
Зря вы так. Вы хоть почитайте что такое.
avatar
на мой взгляд удобнее было бы использовать WinSCP особенно новичкам, она запоминает как комманды так и сессии, не надо набирать сто раз одни ите же комманды, имеет фтп браузер посредстам SSH, да и процесс описан слишком брутально, новичкам сложно адаптироваться будет.
avatar
Эм, про запоминание команд не очень понял. Это консоль линукса запоминает, в том же PuTTY стрелками вверх-вниз можно листать то что раньше набивали. А сложность это вообще субъективно, с мой точки зрения если знать что делать то вся настройка-установка процесс предельно простой с последними дистрибутивами Linuх. Развитие система на месте не стоит.

Во всей этой теме самое сложное это найти и понять что делать. А это как правило вообще не Linux и не консоль. Это часы в обнимку с гуглом и яндексом. :)
avatar
Прошу прощения за небольшой оффтоп, но прочитав споры о том надо все-таки phpmyadmin рассматривать или не надо, хочу добавить глазами новичка в вопросах администрирования серверов — на данный момент это для меня достаточно темный лес и поэтому я вынужден использовать и isp и PMA, иначе решение самого простого вопроса будет занимать слишком много времени, а это с учетом того, что я дизайнерю, верстаю и учусь программить (иногда и так мозг взрывается, а если еще и полноценно админить, то вообще труба будет — пробовал, знаю о чем говорю).

Ввиду этого, у меня назрела просьба к тем, кто в курсе, как надо работать с PMA — напишите, пожалуйста топик, аналогичный этому, но по вопросам настройки PMA, оптимизации его работы с mysql и т.д. или дайте волшебную ссылку, где это расписано подробно — будет очень полезно и не только для меня.
  • dsg
  • 0
avatar
Для апача так:

Чтобы запретить доступ к PMA, но при этом оставить для ip сервера после установки PMA в Debian нужно добавить строку в фаиле /etc/phpmyadmin/apache.conf

...

<Directory /usr/share/phpmyadmin>
	Options FollowSymLinks
	DirectoryIndex index.php

	<IfModule mod_php5.c>
		AddType application/x-httpd-php .php

		php_flag magic_quotes_gpc Off
		php_flag track_vars On
		php_flag register_globals Off
		php_value include_path .
	</IfModule>

######### кусок который мы добавили #########
Order deny,allow
Deny from all
Allow from xxx.zzz.xxx.zzz(ip сервера)
######### кусок который мы добавили #########

</Directory>
...


Затем делаем ssh-туннель: ssh -D localhost:12345 имяпользователя@ip_сервера

теперь в браузере ставим работу через прокси: узел SOCKS: localhost порт:12345

Заходим domain.ru/pma_directory_name или ip_addres/pma_directory_name

+ livestreet.ru/blog/dev_documentation/14598.html#comment234295
avatar
Allow from xxx.zzz.xxx.zzz(ip сервера)

а если у сервера 2 ip используется?
avatar
Order deny,allow
Deny from all
Allow from 192.168.0.1
Allow from 192.168.0.2
avatar
спасибо, очень ценная информация. буду вникать
avatar
от себя добавлю полноценный домен 2-го уровня БЕСПЛАТНО можно получить на www.nic.tk
avatar
Пару лет назад, зарегистрировал домен там, тогда был просто бесплатный хостинг, на котором крутился вордпресс с сайтом на игровую тематику из 5 — 10 страниц. На следующий день домен отьехал, никаких писем ничего, просто перестал работать. Траффик на сайт вообще никакого не шло, я там просто практиковался.
avatar
Вчера релизнулась Debian 7.0 «Wheezy»… Что думаете, стоит или нет на ней разворачиваться? Правда селектел еще не подцепил стабильную версию, у них пока одна из тестовых сборок…
avatar
Можете и перейти, если у вас нет ничего критичного… Повод, как минимум меньшее мамонтообразие. Может и есть другие поводы, я пока не изучал чё там ещё есть…
Для меня например критично переводить, по крайне мере потому, что у меня есть такие вещи, которые в 7-ом дебиане сильно обновились, и требуют повторного изучения конфигурации, логов изменений и т.д. Самое основное, dovecot например. Плюс доп. фильтры от почты, которые сильно сомнительно, что с первого раза там заведутся, а документация по ним — исходники.
avatar
Если всё работает и никаких особых нужд нет, то зачем? Просто циферку больше в номере дистрибутива иметь — не повод. Ну и я бы выждал месяца три, до первых обновлений :)
avatar
Весь смысл в ext4
avatar
? ext4 прекрасно и с Debian 6.0 работает.
avatar
Я в том плане, что ext4 в 7 дебиане из коробке встает, а в 6 ext3… По крайней мере у селектела на облаках…
Щас психану и поставлю убунту :D
avatar
у Таймвеба на VDS Debian 6 тоже с ext3 при установке
Правда в техподдержке сказали как можно за пару минут конвертнуть в ext4
Вроде пока работает, норм
avatar
ext3 — по умолчанию, в родной кстановке Debian 6.0 — да. Но при заказе сервера надо просто хостеру сказать что вы хотите ext4 — и всё. Не знаю ни одного нормального хостера у которого такая просьба вызовет вопросы или трудности. Более того, очень многие хостеры это сами, по умолчанию, делают. Hetzner, например, сразу сами делают. Не дураки чай, и понимаю что ext3 своё отжил.
avatar
Селектел не могет сделать такого на облачных серверах… Предложили создать еще один диск уже на ext4 и клонировать туда старую систему через dd
avatar
Облачные сервера это шаред хостенг. Там очень много ограничений. Вся серия заметок посвящена настройке на VPS/Dedicated.
avatar
Ладно, будем пробовать мигрировать… Если не получится, то через dd уже…
avatar
А есть ли сейчас смысл создавать новые домены вообще? Проще помойму купить какой нить которому уже года 2 чтобы доверие было stekljannyj.ru/steklyannaya-vitrina/ хочу сделать что-то вроде такого сайта есть тут умельцы которые готовы взяться за такую работу? Ток у меня будет чистый сайт на данную тему.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.