Различия между версиями 2 и 3
Версия 2 от 2013-11-16 21:38:13
Размер: 4933
Редактор: Singularity
Комментарий:
Версия 3 от 2013-11-16 22:15:35
Размер: 7155
Редактор: Singularity
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 7: Строка 7:
Итак у вас есть ip сервера и пароль root-пользователя. У меня это будет IP и PASS соответственно.  Итак у вас есть ip сервера и пароль root-пользователя. У меня это будет IP и PASS соответственно.
Строка 12: Строка 12:
Для linux`a достаточно набрать в терминале {{{ssh root@IP}}} а затем на просьбу ввести пароль PASS.
На этом можно и ограничится и перейти к следующему пункту.
Для linux`a достаточно набрать в терминале {{{ssh root@IP}}} а затем на просьбу ввести пароль PASS.  На этом можно и ограничится и перейти к следующему пункту.
Строка 15: Строка 14:
Но если Вы не хотите вводить пароль каждый раз можно воспользоватся специальным скриптом который скопирует Ваш публичный ssh-ключ на сервер {{{ssh-сopy-id root@IP}}} после этого можно логинится просто по {{{ssh root@IP}}}.
Конечно если у Вас ssh-ключ(это файл ~/.ssh/id_rsa.pub),, если нет то https://help.github.com/articles/generating-ssh-keys
Но если Вы не хотите вводить пароль каждый раз можно воспользоватся специальным скриптом который скопирует Ваш публичный ssh-ключ на сервер {{{ssh-сopy-id root@IP}}} после этого можно логинится просто по {{{ssh root@IP}}}. Конечно если у Вас ssh-ключ(это файл ~/.ssh/id_rsa.pub),, если нет то https://help.github.com/articles/generating-ssh-keys
Строка 19: Строка 17:
Строка 21: Строка 20:
    hostname IP      hostname IP
Строка 31: Строка 30:
Строка 42: Строка 42:
и выполнить команды
Строка 43: Строка 44:
и выполнить команды
Строка 48: Строка 48:
Строка 50: Строка 49:
Это на случай если у вас как это было у меня будут ошибки ...
Просто команда которую можно просто скопировать
Это на случай если у вас как это было у меня будут ошибки ... Просто команда которую можно просто скопировать
Строка 54: Строка 52:
apt-get install locales  apt-get install locales
Строка 65: Строка 63:
Строка 67: Строка 64:
Строка 70: Строка 66:
apt-get install -y python-pip git-core mercurial bash-completion apt dpkg  apt-get install -y python-pip git-core mercurial bash-completion apt dpkg
Строка 73: Строка 69:
Строка 74: Строка 71:
К сожалению у меня предустановлен Apache2, а мне хотелось бы nginx
по этому я сначала снесу apache
{{{ sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
}}
удалю все что после него осталось {{{apt-get autoremove
}}}
а затем установлю nginx 
К сожалению у меня предустановлен Apache2, а мне хотелось бы nginx  по этому я сначала снесу apache  {{{ sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common }} удалю все что после него осталось {{{apt-get autoremove }}} а затем установлю nginx
Строка 87: Строка 78:
В репозитории очень старая версия nginx 0.7.67 хотя актуальная версия 1.5.6 !!!
Можно поставить более свежую
В репозитории очень старая версия nginx 0.7.67 хотя актуальная версия 1.5.6 !!! Можно поставить более свежую
Строка 93: Строка 84:
а в конец {{{/etc/apt/sources.list }}} добавить  а в конец {{{/etc/apt/sources.list }}} добавить
Строка 98: Строка 90:
а затем выполнив 
{{{#!highlight bash 
а затем выполнив

{{{#!highlight bash
Строка 103: Строка 96:
= Установка postgres =
Это делается примерно так
Строка 104: Строка 99:
= Установка postgres =
Это делается примерно так

{{{#!highlight bash
{{{#!highlight bash
Строка 117: Строка 109:
= Добавляем еще одного пользователя =
Добавляем еще одного пользователя web ибо держать удаленный доступ к серверу из под рута не красиво(ну и не безопасно). У меня это будет web вы можете сменить его на что угодно
Строка 118: Строка 112:
{{{#!highlight bash
useradd -m web -s /bin/bash
}}}
Ставим пароль для свежосозданого пользователя {{{passwd web}}} который лучше где-то записать.
Строка 119: Строка 117:
== Убираем запрос пароля для команды sudo ==
Это не очень безопасно так что это лучше не делать :) В конец {{{/etc/sudoers}}} добавить {{{%web ALL=(ALL) ALL}}} где web это имя пользователя.
Строка 120: Строка 120:
== Вход по ssh ==
{{{#!highlight bash
su web -
cd ~
mkdir ~/.ssh
sudo cp /root/.ssh/authorized_keys /home/web/.ssh
sudo chown -R web: /home/web/.ssh
sudo chmod -R go-w /home/web
exit
}}}
это для того что бы подключатся к серверу без пароля {{{ssh web@IP}}} так же можно добавить в {{{~/.ssh/config}}} еще одну запись.
Строка 121: Строка 132:
== Немного безопасности ==
{{{sudo nano /etc/ssh/sshd_config}}} меняем там {{{PermitRootLogin no}}} -- запрещает логин рутом {{{Port 2200}}} -- смена порта с 22 что-нибудь не стандартное {{{Protocol 2}}} -- выставим более защищенную версию протокола SSH Сохраняем и выходим. {{{ctrl+o ctrl+x}}} Теперь надо что-бы настройки применились
Строка 122: Строка 135:
{{{#!highlight bash
sudo /etc/init.d/ssh restart
}}}
{{{#!highlight bash
}}}
= Установка питон пакетов =
{{{#!highlight bash
pip install virtualenvwrapper supervisor
}}}
Настройка virtualenvwrapper
Строка 123: Строка 146:
{{{#!highlight bash
Строка 124: Строка 148:



{{{#!highlight bash
cat >> ~/.bashrc << EOF
export WORKON_HOME=$HOME/venvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh
EOF
Строка 129: Строка 154:
{{{#!highlight bash
}}}
{{{#!highlight bash
}}}

Базовая настройка VDS для Django

Этот мануал рассказывает как настроить сервер для django c нуля. Ну или для другого python приложения. Я проверял команды на Debian6-32bit хотя должно работать на любом debian-based дистрибутиве.

Итак у вас есть ip сервера и пароль root-пользователя. У меня это будет IP и PASS соответственно.

Как зайти на сервер?

Для windows пользователей надо пользоваться надо использовать putty или что-то в этом духе.

Для linux`a достаточно набрать в терминале ssh root@IP а затем на просьбу ввести пароль PASS. На этом можно и ограничится и перейти к следующему пункту.

Но если Вы не хотите вводить пароль каждый раз можно воспользоватся специальным скриптом который скопирует Ваш публичный ssh-ключ на сервер ssh-сopy-id root@IP после этого можно логинится просто по ssh root@IP. Конечно если у Вас ssh-ключ(это файл ~/.ssh/id_rsa.pub),, если нет то https://help.github.com/articles/generating-ssh-keys

Для совсем ленивых есть вариант добавить в файл ~/.ssh/config

   1 host servername
   2     hostname IP
   3     port 22
   4     user root

он для того что бы логинится просто командой ssh servername.

Обновления Debiana до 7 версии

Если у вас другой дистрибутив это не обязательно.

В файле  /etc/apt/sources.list  надо все удалить и добавить следующее:

   1 deb http://ftp.us.debian.org/debian/ wheezy main
   2 deb-src http://ftp.us.debian.org/debian/ wheezy main
   3 
   4 deb http://security.debian.org/ wheezy/updates main
   5 deb-src http://security.debian.org/ wheezy/updates main
   6 
   7 # wheezy-updates, previously known as 'volatile'
   8 deb http://ftp.us.debian.org/debian/ wheezy-updates main
   9 deb-src http://ftp.us.debian.org/debian/ wheezy-updates main

и выполнить команды

   1 apt-get update
   2 apt-get dist-upgrade

Установка локалей

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

   1 apt-get install locales
   2 
   3 echo "LANG=en_US.UTF-8" > /etc/default/locale
   4 cat > /etc/locale.gen << EOF
   5 en_US.UTF-8 UTF-8
   6 ru_RU.UTF-8 UTF-8
   7 uk_UA.UTF-8 UTF-8
   8 EOF
   9 
  10 locale-gen

Установка базовых пакетов

   1 apt-get update
   2 apt-get install -y python-pip git-core mercurial bash-completion apt dpkg

скорей всего вам может понадобится еще python-dev

Установка веб-сервера

К сожалению у меня предустановлен Apache2, а мне хотелось бы nginx по этому я сначала снесу apache  sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common }} удалю все что после него осталось {{{apt-get autoremove  а затем установлю nginx

   1 apt-get install -y nginx
   2 service nginx restart

Nginx c официально репозитория

В репозитории очень старая версия nginx 0.7.67 хотя актуальная версия 1.5.6 !!! Можно поставить более свежую

   1 wget http://nginx.org/keys/nginx_signing.key
   2 apt-key add nginx_signing.key

а в конец /etc/apt/sources.list  добавить

   1 deb http://nginx.org/packages/ubuntu/ codename nginx
   2 deb-src http://nginx.org/packages/ubuntu/ codename nginx

а затем выполнив

   1 apt-get update
   2 apt-get install -y nginx

Установка postgres

Это делается примерно так

   1 apt-get install postgresql libpq-dev postgresql-contrib python-psycopg2
   2 passwd postgres
   3 su - postgres
   4 createdb djangodb
   5 createuser djangouser
   6 psql djangodb
   7 #dropdb djangodb
   8 GRANT ALL ON DATABASE djangodb TO djangouser;

Добавляем еще одного пользователя

Добавляем еще одного пользователя web ибо держать удаленный доступ к серверу из под рута не красиво(ну и не безопасно). У меня это будет web вы можете сменить его на что угодно

   1 useradd -m web -s /bin/bash

Ставим пароль для свежосозданого пользователя passwd web который лучше где-то записать.

Убираем запрос пароля для команды sudo

Это не очень безопасно так что это лучше не делать :) В конец /etc/sudoers добавить %web ALL=(ALL) ALL где web это имя пользователя.

Вход по ssh

   1 su web -
   2 cd ~
   3 mkdir ~/.ssh
   4 sudo cp /root/.ssh/authorized_keys /home/web/.ssh
   5 sudo chown -R web: /home/web/.ssh
   6 sudo chmod -R go-w /home/web
   7 exit

это для того что бы подключатся к серверу без пароля ssh web@IP так же можно добавить в ~/.ssh/config еще одну запись.

Немного безопасности

sudo nano /etc/ssh/sshd_config меняем там PermitRootLogin no -- запрещает логин рутом Port 2200 -- смена порта с 22 что-нибудь не стандартное Protocol 2 -- выставим более защищенную версию протокола SSH Сохраняем и выходим. ctrl+o ctrl+x Теперь надо что-бы настройки применились

   1 sudo /etc/init.d/ssh restart

   1 

Установка питон пакетов

   1 pip install virtualenvwrapper supervisor

Настройка virtualenvwrapper

   1 cat >> ~/.bashrc << EOF
   2 export WORKON_HOME=$HOME/venvs
   3 export PROJECT_HOME=$HOME/Devel
   4 source /usr/local/bin/virtualenvwrapper.sh
   5 EOF

   1 

   1 

VDS (последним исправлял пользователь Singularity 2013-11-16 22:19:21)