Готовим Ubuntu/Debian к работе

Перейти вниз

Готовим Ubuntu/Debian к работе

Сообщение автор Akm16 в Пн Июн 04, 2012 2:30 pm

Готовим сервер на основе Debian/Ubuntu Linux OS.
Устанавливалось на основе шаблона установки системы debian-5.*-minimal от VDSPlanet.ru
Задача: В короткий срок с рабочего сервера с минимальной комплектацией установленных программ сделать сервер, готовый удовлетворить нужды начинающего пользователя: ftp, apache2 с php5, phpmyadmin, mysql, perl, python.

Входим на сервер
1. Входим на сервер через SSH (если доступ удаленный)

Первые шаги (apt-get)
2. Первым делом стоит сделать apt-get update - пояснение ниже.
В Debian/Ubuntu система портов устроена на основе apt-get.
Простейшие команды apt-get - это:
Код:
apt-get update - обновляет список доступных для установки файлов с удаленного сервера.
apt-get upgrade - обновляет все установленное программное обеспечение, если обновления есть в наличии.
apt-get install что-либо - устанавливает заданную программу
apt-get remove что-либо - удаляет заданную программу.
man apt-get - помощь по системе портов apt-get (на англ.)
Может возникнуть подобная ошибка при выводе команды apt-get update:
Код:
W: GPG error: http://ftp2.de.debian.org lenny Release:
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY  9AA38DCD55BE302B
W: There is no public key available for the following key IDs: 9AA38DCD55BE302B
W: You may want to run apt-get update to correct these problems
Лечится так: apt-get install debian-archive-keyring
После команды выше повторяем: apt-get update
Ошибки должны будут исчезнуть.

Установка важного пакета (build-essential)
3. Следующим шагом является обязательная установка build-essential: apt-get install build-essential - Данное установит такие пакеты как: gcc, g++, make, perl, patch и иные.

Ставим FTP сервер
4. Начнем с установки легкого FTP сервера на ваш Debian. Все быстро легко и просто. Установим такой FTP сервис, который не будет приносить нам головной боли в будущем - vsftpd. Его преимущество в том, что логин и пароль к SSH (root и др) идентичными логину и паролю на FTP.

Дополнительные установки
5. Установим некоторые необходимые пакеты, если таковые уже не установлены:
Код:
apt-get install mc
apt-get install tcl8.5 tcl8.5-dev
apt-get install openssl libssl-dev
apt-get install libncurses5-dev
apt-get install ftp
apt-get install telnet
apt-get install traceroute
apt-get install nmap
Далее можете установить любые пакеты по желанию. если знакомы с данной процедурой.

Заходим на сервер через FTP/SSH (WinSCP)
6. Заходим на сервер через Norton-Commander-подобную среду используя или FTP или SSH. Это позволит Вам закинуть любой файл на ваш сервер. В списке File Protocol выбираем или FTP или SFTP (SSH). Логин root и соответственно пароль от этого пользователя.

Устанавливаем временную зону на сервере
7. Некоторым людям для использования тех или иных программ необходимо работать не только с точным временем, но и с определенными временными зонами. Например Москва, Европа или MSK и MSD. По умолчанию время на сервере установлено в UTC.

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

adduser test - добавит пользователя test с домашней папкой в /home/test
Код:
root@locahost:~# adduser test
Adding user `test' ...
Adding new group `test' (1000) ...
Adding new user `test' (1000) with group `test' ...
Creating home directory `/home/test' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:        --- необходимо ввести пароль и нажать Enter и затем повторить пароль еще раз.
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for test
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y
Пользователь добавлен.
Теперь на сервер Вы можете заходить под этим пользоваелем, а в любой момент, когда захотите войти под root/суперпользователем, наберите команду su. Вас попросят ввести пароль и Вы уже root. Пример ниже:
Код:
test@localhost:~$ su
Password:
root@localhost:~#
Дополнительно:
Изменение пользователя происходит также просто:
Код:
usermod [параметры] username
Примеры
Код:
usermod -d /home/documents/test test #изменит пользователю test домашнюю папку
usermod -l joe test # изменит имя пользователя test на joe (а не наоборот)
Изменение пароля:
Код:
passwd username
Например:
Код:
passwd test

Меняем локализацию сервера с английского на русский (по желанию)
9. По необходимости меняем локализацию сервера с английского на русский. Сразу заметим, что найти решение любых проблем вашей системы с русифицированным сервером намного сложнее, так как это блокирует разносторонность ответов в поисковых системах. Мы настоятельно рекомендуем Вам не менять локаль на русский, но если совсем туго с английским, это Ваш выход.
Код:
apt-get install locales  -  на все вопросы вносим Y.
vi /etc/environment - открываем файл на редактирование и удаляем из него любые записи и вносим одну: LANG="ru_RU.UTF-8"
Помощь по использованию vi находится здесь: Vi или откройте файл через WinSCP
Редактируем файл /etc/locale.gen тем же vi: vi /etc/locale.gen - В списке находим ru_RU.UTF-8 UTF-8 и удаляем
значек # перед записью. Сохраняем файл.
locale-gen - запускаем команду для генерации локали. Пример ниже:
    root@test:~# locale-gen
    Generating locales (this might take a while)...
      ru_RU.UTF-8... done
    Generation complete.
Перезаходим на сервер. В клиенте, который Вы используете для связи с сервером делаем следующее (большинство людей
использует Putty: SSH):
После того как Вы вошли на сервер, кликните на верхнюю часть окна Putty правой кнопкой мыши, выше черного. Выберите
Change Settings -> Window - Translation -> из списка выберите UTF-8 и нажмите Apply внизу.
Теперь Вы сможете видеть русский язык в окне связи с сервером при выполнении различных команд.

Важное замечание по безопасности
10. Почти всегда сразу после установки сервера начинается подбор паролей по стандартному порту(22) протокола ssh к вашему серверу. Если не дай Бог Вы поставите стандартный, известный "подборщикам" пароль, ваш сервер захватят и удалят все важные файлы.
Самый простой способ - заставить работать SSH на нестандартном порту.
Приведем самую важную часть:
Код:
nano  /etc/ssh/sshd_config
Найдите строку (почти в самом начале):
Код:
Port 22
Смените число 22 на любое которое вам нравится до бесконечности (желательно, не более 65535). Перезапустите ssh:
Код:
/etc/init.d/ssh restart
Настоятельно рекомендуем выполнить все рекомендации из статьи выше.

Установка сервера баз данных MySQL
11. Установка на настройка mysql для использования минимального количества памяти.
Если у вас маломощный сервер (до 64MB оперативной памяти) рекомендуется уменьшить расход памяти mysql за счет производительности.
Иными словами 1. Сделать так, чтобы mysql не съело всю память на сервере при старте. 2. Уменьшить потребление памяти на будущее.
Чтобы mysql cразу после установки не зарезервировал всю свободную память, создаем папку и затем файл (действия совершаем под root/суперпользователем):
Код:
mkdir /etc/mysql/ - создаем папку
touch /etc/mysql/my.cnf - создаем файл
nano /etc/mysql/my.cnf - открываем файл на редактирование
Вносим в файл текст, представленный ниже и сохраняем:
Код:
[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0
#  Basic Settings
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir        = /usr
datadir        = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/english
skip-external-locking
bind-address            = 127.0.0.1
#
# * Fine Tuning
#
key_buffer              = 16M
max_allowed_packet      = 2M
thread_stack            = 64K
thread_cache_size      = 4
###
myisam-recover          = BACKUP
query_cache_limit      = 2M
query_cache_size        = 32M
max_binlog_size        = 100M
[mysqld]
skip-bdb
skip-innodb
[mysqldump]
quick
quote-names
!includedir /etc/mysql/conf.d/
Ставим сам mysql:
Код:
apt-get install mysql-server mysql-client libmysqlclient15-dev
Во время установки появится окно установки mysql пароля. Введите необходимый пароль. Tab - Enter. Подтвердите и снова Tab + Enter.
Во время установки у Вас спросят что делать с /etc/mysql/my.cnf. Вам необходимо указать, чтобы использовался тот, что уже есть на сервере. Иначе конфиг будет перезаписан, и сервер с количеством оперативной памяти меньше 140Mb зависнет. Это связано с конфигурацией mysql. которая устанавливается по умолчанию при установке mysql сервера.
Далее:
Обезопасим mysql стандартный утилитой mysql_secure_installation
Код:
mysql_secure_installation
Примерные вопросы, которые будут задаваться пользователю:
Код:
root@test:~# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
    SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
.............
Enter current password for root (enter for none):  # введите mysql пароль, установленный вами выше.
Set new root password? [Y/n]  # задать новый пароль суперпользователя? Жмем Y (да) и
New password:                # вводим пароль
Re-enter new password:  # и его проверку
Remove anonymous users? [Y/n] # Удалить анонимных пользователей? Да.
Disallow root login remotely? [Y/n] # запретить удаленных вход под суперпользователем? Да (обязательно!)
Remove test database and access to it? [Y/n] # удалить тестовую БД? Да.
Reload privilege tables now? [Y/n]  # перезагрузить привилегии? Да.
Перезапускам mysql:
Код:
/etc/init.d/mysql restart
Теперь MySQL использует не больше 35Mb оперативной памяти, по сравнению с 140Mb, указанными выше мы спасли вам 100Mb оперативки.

Установка веб сервера Apache2 и PHP 5
12. Ставим сам Apache 2:
Для сохранения памяти на сервере apache ставится именно с apache2-mpm-prefork, а не с apache2-mpm-worker.
Код:
apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
А также php5 и самые необходимые для начала работы с сервером модулей php5:
Код:
apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-mysql php5-gd php5-mcrypt php5-xmlrpc
Сократим нагрузку, соответственно уменьшим потребление памяти (применимо к серверам с малым объемом оперативной памяти).
Код:
nano /etc/apache2/apache2.conf
Привожу измененный кусок. Находим похожий в /etc/apache2/apache2.conf и изменяем.
Код:
<IfModule mpm_prefork_module>
  StartServers          1
  MinSpareServers      1
  MaxSpareServers      2 # можно поставить и больше, с соответственно большим расходом памяти.
  MaxClients          50
  MaxRequestsPerChild 4000
</IfModule>
Перезапускам Apache:
Код:
/etc/init.d/apache2 restart

Настройка Apache
Условные обозначения: ip-адрес 123.123.123.123.
Доменное имя, на которое отзывается данный IP: test.test.ru
Обнуляем дефолтный файл.
Код:
rm -f  /etc/apache2/sites-enabled/*
Рекомендуем придерживаться вложенной структуры и размещать сайты в папке /home/<имяПользователя>/<домен>
Код:
mkdir /home/test/123.123.123.123
mkdir /home/test/test.test.ru
mkdir /home/test/~logs/
Пишем в конфиг
Код:
nano /etc/apache2/httpd.conf
следующие директивы
Код:
NameVirtualHost *:80
ErrorLog /home/web/site/error.log
CustomLog /home/web/site/access.log combined
ServerAdmin vdsadmin@lazutov.ru
<VirtualHost *:80>
 DocumentRoot "/home/test/123.123.123.123"
 ServerName "123.123.123.123"
 ServerAlias "123.123.123.123"
 php_admin_value memory_limit 32M
 CustomLog /home/test/~logs/123.123.123.123.log combined
</VirtualHost>
<VirtualHost *:80>
 DocumentRoot "/home/test/test.test.ru"
 ServerName "test.test.ru"
 ServerAlias "test.test" "www.test.test.ru"
 php_admin_value memory_limit 64M
 CustomLog /home/test/~logs/test.test.ru.log combined
</VirtualHost>
Аналогично можно добавлять домены и под домены. Не забывайте перезагружать веб-сервер после внесения изменений
Код:
/etc/init.d/apache2 restart

Установка phpMyAdmin
14. Для, тех, кто хочет закончить настройку побыстрее: вы можете выполнить все действия ниже в одно действие.
Код:
apt-get install phpmyadmin
Вас спросят:
Код:
Выберите веб-сервер, который будет автоматически настроен для запуска phpMyAdmin.
Веб-сервер для автоматической перенастройки:                                   
[ ] apache2    - Выбираем именно apache2!
Жмем пробел чтобы поставить галочку и Tab + Enter.
Код:
phpMyAdmin доступен по адресу: http://ip.адрес.вашего.сервера/phpmyadmin/

Заключение и общие пояснения
Ваш сервер готов к работе.
Исходя из написанной выше статьи Вы можете и понимаете:
1. Как устанавливать дополнительные пакеты системы и обновлять их архив.
2. Умеете добавлять пользователя на сервер. Соответственно и заходить им на сервер использую или FTP или SFTP (SSH) соединение.
3. Умеете и понимаете как работать с локализацией в Linux
4. Понимаете как поставить Apache, PHP, MySQL. Знаете как зайти в phpMyAdmin для работы с базами данных MySQL.
5. Умеете добавить доменное имя на свой сервер (VirtualHost).
6. Знаете как сменить часовой пояс своего сервера/VDS.
Данная статья делалась на основе шаблона debian-5.0.3-i386-minimal. Подтверждена работоспособность на Debian 5 и Ubuntu 8 и выше.

Источник: Готовим Ubuntu/Debian к работе


avatar
Akm16
Admin

Сообщения : 242
Оценка : 733
Карма : 0
Дата регистрации : 2012-02-26
Возраст : 28
Откуда : Отсюда

Посмотреть профиль http://firgo.ru

Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения