.
17 августа 2007

Настраиваем «Дедик» (выделенный сервер)

posted in NIX |

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

Итак — из письма имеем айпишник и рутовый пароль ...

1. Знакомство с системой

Настраиваем в putty соединение на наш IP — коннектимся.

Законнектиться не получилось :( мой рутовый пасс не воспринимает — отписываем тикет в тех. поддержку кейвеба — через 9 hrs 41 mins получаю ответ с тем же паролем, но пояснением что «Пароль сброшен.»

Коннектимся — на этот раз удачно.

Первым делом меняем рутовый пасс командой passwd.

Далее пускаем оболочку mc. Запустился, но псевдографика какая то косяковая — гасим, идём в putty настройка соединения — windiws/translation/ — ставим usb-8. Теперь с mc всё окей.

Для информации выложу удобные хот-кеи при работе с mc:

Alt+S — Самый удобный хоткей :) После нажания этого сочетания вводим первые буквы интересуемого нас файла и курсор позиционируется на этом файле.

Alt+P — последняя набранная команда в ком.строке

Ctr+O — экран стандартного вывода

Alt+Enter — копируется в комм.строку текущее имя файла

Ctr+X + C — выставляем права на файл (аналог chmod но поудобнее)

(это основные которыми я пользуюсь, может конечно что то и упустил). Поехали далее:

Поинтересуется, что же за железо мне подогнали.

Глянем содержимое /proc/cpuinfo

«... Dual-Core AMD Opteron ...» — то что и заказывал — двухядерный серверный АМД

/proc/meminfo

«... total 1945416 kb free 1280320 kb» — 2 гига оперативы

на всякий глянем информацию о винте — как побили на разделы (а то был блин прецедент один — под систему оставили хрен да маленько ... со всеми вытекающими ...) комманда df -h

/dev/sda1 285G / 1%

tmpfs 950V /dev/shm

Ну вроде все путем — всё свободное отвели под корень, занято 1%.

Смотрим информацию о ядре uname -a и операционной системе — файл /etc/redhat-release

Red Hat Enterprice Linux Server release 5 (Tikanga)

Попутно глянем текущую загрузку top — тут всё в порядке la 0.00 0.00 0.00 и текущая загрузка cpu (s): 0,0%

для более детального изучения запущенных процессов создаём скриптик shnow.sh (ставим права на запуск 744) следующего содержания

#!/bin/bash

ps -waux --cols 300 >ps-$(date +%Y%m%d)

ну и после запуска оного изучаем запущенные процессы уже в файле (имхо так удобнее)

Информация о установленных сервисах и уровнях их запуска chkconfig --list, а так же изучаем содержимое /etc/init.d/

2. Установка webmin

Не имея панели рекомендую поставить удобную админ утилиту webmin — много чего можно удобно порулить с её помощью. Заходим на офсайт смотрим последнюю версию, тянем rpm

wget http://prdownloads.sourceforge.net/webadmin/webmin-1.360-1.noarch.rpm

устанавливаем его rpm -ihv webmin-1.360-1.noarch.rpm

после установки нам любезно сообщают порт управления 10000 (по умолчанию), но попытка зацепиться на http://xxx.xxx.xxx.xxx:10000 оказалась безуспешной.

Проверяем запущен ли ? /etc/init.d/webmin status говорит, что запущен.

Похоже рубит фаервол ... гасим /etc/init.d/iptables stop проверяем — о.к.

фаервол пока запускаем назад /etc/init.d/iptables start и делаем дырочку на 10000 порт:

смотрим где лежит конфиг для фаервола в скрипте запуска оного /etc/init.d/iptables

получаем /etc/sysconfig/iptables — сюда и добавляем правило по десятитысячному порту:

в моём случае это такая строчка в блок :RH-Firewall-1-INPUT — [0:0]

-A RH-Firewall-1-INPUT -p tcp --dport 10000 -j ACCEPT

(так же неплохо бы сюда добавить все айпишники с которых будет разрешен доступ)

всё — рестрартим service iptables restart — ура вебмин работает ! заходим под рутовым паролем и ставим русский язык — на этом пока всё (ещё к вебмину вернёмся)

3. Установка и настройка AMP (Apache MySQL PHP)

Мускул и PHP не нашел, а Апач какой то уже стоит (был в сервисах — правда не запущен) посмотрим какой.

Делаем в фаерволе дырочку под 80 порт (по аналогии с 10000), стартуем службу service httpd start и обращаемся браузером по айпишнику сервера http://IP — получаю дефолтную страницу апачей 2.0 — апач работает, версия 2.0 — дальнейшую настройку будем выполнять уже по конфигам. Сразу (пока не забыли) воткнём апач в автозагрузку 3его уровня chkconfig --level 3 httpd on проверим chkconfig --list httpd — всё окей.

С апачем пока всё — настройками займёмся позже.

Ставим mysql

Сливаем с офсайта последнюю стабильную версию мускула — в моём случае это mysql-5.0.45.tar.gz (с рпм-а не захотел устанавливаться — разбираться не стал)

разархивируем tar xzf mysql-5.0.45.tar.gz заходим в папку cd ./mysql-5.0.45 и устанавливаем всё строго по инструкции INSTALL-SOURCE

shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf —
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> bin/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql var
shell> bin/mysqld_safe --user=mysql &

меняем рутовый пароль # /usr/local/mysql/bin/mysqladmin -u root password 'new_pass'

правим настройки мускула в вебмине, стартуем и уже можем порулить юзерами и БД-шками :)

собственно с сервером mysql всё ...

Ставим PHP

Сливаем с офсайта последнюю стабильную версию в моём случае это php-5.2.3.tar.gz разворачиваем и пытаемся ставить по инструкции, а в инструкции при компиляции php нужно указывать путь до apxs ...

locate apxs ничего не дал, поблизости с бинарниками апача /usr/sbin/ тоже apxs не обнаружили ... поэтому принято решение о переустановке апача.

Ставим Apache

гасим старый апач service httpd stop

./configure --prefix=/usr/local/apache2 --enable-module=so

./make

./make install

страртуем для проверки ./bin/apacheclt -start запрашиваем серавак по айпишнику — должно отработать, на этом пока всё ...

Продолжаем ставить PHP

./configure --disable-debug --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-curl --enable-ftp --with-ftp --with-gd --with-zlib --enable-sockets --enable-memory-limit

не нашел libpng — ставим

wget http://mesh.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.16.tar.gz
tar -xvzf libpng-1.2.16.tar.gz
./configure
make
make install

повторяем конфиг для пхп — у меня прошел, далее make, make install

пробую запустить апач руками /usr/local/apache2/bin/apachectl start

получаю ошибку при загрузке нашего libphp5.so

cannot restore segment prot after reloc: Permission denied

погуглив нахожу решение — в /etc/sysconfig/selinux ставим SELINUX=disable

отрубили какую то приблуду ... :) ребутимся reboot и пробуем снова — вроде стартанул

для проверки лепим файл phpinfo.php и дёргаем его — выдаётся текстом.

Добавим в httpd.conf обработку php файлов AddType application/x-httpd-php .php а так же обработку index.php как индексного DirectoryIndex index.php

Снова дёргаем наш phpinfo.php — ура — получаем информацию о всяких разных интересных вещах :)

Теперь нужно сделать чтоб наш апач грузился автоматом — правим скрипт запуска старого аппача на наш /etc/init.d/httpd (все пути прописываем наши)

На этом вроде бы всё :)

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

Сливаем архив, разворачиваем, создаём конфиг — запускаем. Запустился — значит всё установили нормально.

4. Настройка FTP

Необходимость FTP доступа к серверу думаю объяснять не нужно :)

Скачиваем, устанавливаем proftpd. Делаем дырку в фаерволе по 21му порту. Для автозапуска готового скрипта в дистрибутиве не нашел поэтому погуглив юзаем такой:

#!/bin/sh

# ProFTPD files
FTPD_BIN=/usr/local/sbin/proftpd
FTPD_CONF=/usr/local/etc/proftpd.conf
PIDFILE=/usr/local/var/proftpd.pid

# If PIDFILE exists, does it point to a proftpd process?

if [ -f $PIDFILE ]; then
pid=`cat $PIDFILE`
fi

if [ ! -x $FTPD_BIN ]; then
echo «$0: $FTPD_BIN: cannot execute»
exit 1
fi

case $1 in

start)
if [ -n "$pid" ]; then
echo «$0: proftpd [PID $pid] already running»
exit
fi

if [ -r $FTPD_CONF ]; then
echo «Starting proftpd...»

$FTPD_BIN -c $FTPD_CONF

else
echo «$0: cannot start proftpd — $FTPD_CONF missing»
fi
;;

stop)
if [ -n "$pid" ]; then
echo «Stopping proftpd...»
kill -TERM $pid

else
echo «$0: proftpd not running»
exit 1
fi
;;

restart)
if [ -n "$pid" ]; then
echo «Rehashing proftpd configuration»
kill -HUP $pid

else
echo «$0: proftpd not running»
exit 1
fi
;;

*)
echo «usage: $0 {start|stop|restart}»
exit 1
;;

esac

exit 0

Обзываем proftpd, ставим права на запуск, кидаем его в /etc/init.d и делаем на него сим-линки

ln -s /etc/init.d/proftpd /etc/rc3.d/S82proftpd
ln -s /etc/init.d/proftpd /etc/rc0.d/K17proftpd

В вебмине заводим нового пользователя, ставим ему домашний каталог на DocomentRoot (туда откуда идёт обработка наших http запросов) и вуаля — цеплямся по ftp.

Работу с кроном так-же удобнее вести с вембина.

Для использования покупных скриптов необходимо ещё установить Zend Optimizer (качаем, ставим ./install.sh :) — ниразу проблем не возникало)

Вроде всё — система готова к работе со всякого рода спамилками и прочими «добрыми» скриптами :)

Яндекс.Метрика