Разворачивание Debian сервера

30 октября 2014 Юникс

Обычно Debian уже установлен на арендуемой площадке, напрмиер, если речь про Digital Ocean или Hetzner.

Обновление

apt-get update && apt-get upgrade

update - обновить информацию о пакетах, содержащихся в репозиториях.
upgrade - обновление пакетов, для которых в репозитории доступны новые версии.

Добавление пользователя

Пароль придумать и сохранить в соответствующей документации

adduser admin --home /home/admin

Запрет доступа из-под root

vi /etc/ssh/sshd_config

Отредактировать чтобы было PermitRootLogin no

/etc/init.d/ssh restart

Установка sudo

apt-get -y install sudo

Прописать в конфиге доступ без пароля (вопрос безопасности?!)

vi /etc/sudoers

Внести необходимые дополнения

# User privilege specification
root   ALL=(ALL) ALL
admin  ALL=(ALL) NOPASSWD: ALL

%%sudo  ALL=NOPASSWD: ALL
%%admin ALL=NOPASSWD: ALL

Прописать ssh-доступ по ключу

Для генерации ключей нужно выполнить

ssh-keygen

Оболочка сообщит, где сохранены сгенерированные ключи

Your identification has been saved in ~/.ssh/id_rsa
Your public key has been saved in ~/.ssh/id_rsa.pub

Копируем публичный ключ на удалённый сервер

scp ./.ssh/id_rsa.pub admin@8.8.8.8:id_rsa.pub

Далее заходим на указанный сервер

ssh admin@8.8.8.8

После чего выполняем последовательность команд, складывающую ключ, куда надо

mkdir -p .ssh
chmod 700 .ssh
cd .ssh
cat ../id_rsa.pub >> authorized_keys
cat authorized_keys
chmod 600 authorized_keys
rm ../id_rsa.pub

Vim

sudo apt-get -y install vim

vi ~/.vimrc

syntax on
au BufNewFile,BufRead *.html.ep set filetype=html

Псевдонимы команд и раскраска терминала

Это повышает комфорт работы с терминалом

vi /home/admin/.bash_profile

export PS1='\[\033[0;31m\]\u\[\033[0;33m\]@\[\033[0;36m\]\h \[\033[0;33m\]\w \[\033[0;35m\]\$ \[\033[00m\]'

eval "`dircolors`"

alias ls='ls $LS_OPTIONS'
alias la='ls $LS_OPTIONS -lA'
alias ..='cd ..'

export HISTFILESIZE=99999999
export HISTSIZE=99999999
export HISTCONTROL="ignoreboth"

export LS_OPTIONS='--color=auto -h'

alias gs='git status '
alias ga='git add '
alias gb='git branch '
alias gc='git commit -m'
alias gca='git commit -a -m'
alias gac='git commit -a -m'
alias gd='git diff'
alias go='git checkout '
alias gk='gitk --all&'
alias gx='gitx --all'

alias got='git '
alias get='git '

Указать hostname

Если например у сервера такое имя dorothy.movealong.org, то dorothy cледует указать в качестве hostname

sudo vi /etc/hostname

sudo hostname server1

hostname

Далее в /etc/hosts прописывается полное имя

sudo vi /etc/hosts

69.56.173.86 dorothy.movealong.org dorothy

https://www.movealong.org/hostname.html

Настроить cron

Отделить лог cron'а

sudo vi /etc/rsyslog.conf

Раскомментировать строку cron.* /var/log/cron

Прописать почту для информирования об ошибках

vi /etc/crontab

MAILTO=mail@mail.ru

sudo service rsyslog restart

sudo service cron restart

MySQL, Apache, Nginx, GIT

Пароль придумать и сохранить в соответствующей документации

apt-get install mysql-server mysql-client

Прописать InnoDB File-Per-Table Mode: To make file-per-table mode the default for a MySQL server add this line to the [mysqld] section of my.cnf:

vi /etc/mysql/my.cnf

[mysqld]
innodb_file_per_table

Прописывать аккаунт в mysqlworkbench

apt-get install apache2

a2enmod rewrite

apt-get install nginx

apt-get install git-core git-doc

Права доступа для хранилища веб-сервера

chown -R admin:admin /var/www

Настройка Apache

vi /etc/apache2/ports.conf

NameVirtualHost *:8080
Listen 127.0.0.1:8080

vi /etc/apache2/apache2.conf

Дописать в конец

ServerName hostname.com

Настройка логов Apache за Nginx'ом

Luckily, nginx provides a HTTP X-Forwarded-For header containing the clients real IP address, although apache doesn’t pick it up by default. To allow apache to recognize the original client IP, we need to install the mod_rpaf module. On ubuntu, this is as simple as installing a package

apt-get install libapache2-mod-rpaf

Once you have installed mod_rpaf, you need to configure apache. Add something similar to the following to your apache config (alter the RPAFproxy_ips setting as appropriate to match the IP address(es) of your nginx server(s)

vi /etc/apache2/apache2.conf

<IfModule mod_rpaf.c>
  RPAFenable On
  RPAFsethostname On
  RPAFproxy_ips 127.0.0.1
</IfModule>

Установить mojolicious

apt-get install curl

apt-get install make

NET::SMTP::SSL

apt-get install libnet-smtp-ssl-perl

apt-get install libauthen-sasl-perl

curl get.mojolicio.us | sh

Установить перл-модули

HTML::Template

apt-get install libhtml-template-perl

MIME/Lite.pm

apt-get install libmime-lite-perl

Image/Magick.pm

apt-get install perlmagick

GD.pm

apt-get install libgd-gd2-perl

PDF::API2

apt-get install libpdf-api2-perl

Excel::Writer::XLSX

apt-get install libexcel-writer-xlsx-perl

LWP/UserAgent

apt-get install libwww-perl

Date/Calc.pm

apt-get install libdate-calc-perl

MIME::Base64

apt-get install libemail-mime-encodings-perl

Memcached + Cache/Memcached.pm

apt-get install memcached

apt-get install libcache-memcached-perl

Подключить временные зоны

mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root -p mysql

Настроить отправку почты

Для начала убедимся, что утилиту sendmail заменяет exim4 из базовой поставки Debian:

stat /usr/sbin/sendmail

Результат должен быть таким: File: `/usr/sbin/sendmail' -> `exim4'

Если это не так, необходимо установить exim4

apt-get install exim4

dpkg-reconfigure exim4-config

Среди предлагаемых параметров выбрать отличный от предустановленных только на первом экране: internet site; mail is sent and received directly using SMTP и на втором экране - имя хоста.

Прописать ключ для BitBucket

Из под обычного пользователя

ssh-keygen

cat ~/.ssh/id_rsa.pub

После чего добавить ключ в профайл

Установка проверки орфографии

Из под root

apt-get install hunspell

русский словарь: https://code.google.com/p/hunspell-ru/

wget https://bitbucket.org/Shaman_Alex/russian-dictionary-hunspell/downloads/ru_RU_UTF-8_20131101.zip

копируем словари в /usr/share/hunspell

apt-get install unzip

unzip ru_RU_UTF-8_20131101.zip

mv ru_RU.dic /usr/share/hunspell/

mv ru_RU.aff /usr/share/hunspell/

Установка Sphinx

узнаём версию дебиан:

Use the command:

/bin/uname -m

You will typically get: «i686» for 32-bit (maybe 'i586' is an possibility too?), and: «x86_64» for 64-bit.

lsb_release -a

cat /etc/debian_version

Из под root

скачиваем нужный пакет: http://sphinxsearch.com/downloads/release/

Debian 7 / 32:

wget http://sphinxsearch.com/files/sphinxsearch_2.1.4-release-1~wheezy_i386.deb

Debian 7 / 64:

wget http://sphinxsearch.com/files/sphinxsearch_2.1.6-release-1~wheezy_amd64.deb

apt-get install libpq5

Debian 7 / 32:

dpkg -i sphinxsearch_2.1.4-release-1~wheezy_i386.deb

Debian 7 / 64:

dpkg -i sphinxsearch_2.1.6-release-1~wheezy_amd64.deb

Автозапуск Sphinx

в файл

vi /etc/rc.local

добавить

mkdir -p /var/run/sphinxsearch
/etc/init.d/sphinxsearch start