Предыдущая статья в этой ветке Полезняшки в -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 🙂 – ниразу проблем не возникало)
Вроде всё – система готова к работе со всякого рода спамилками и прочими “добрыми” скриптами 🙂
11 комментариев на «“Настраиваем “Дедик” (выделенный сервер)”»
А зачем мускул компилировать вручную? Он ставится как всё остальное. И пароль лучше уже в мускул-консоли писать, а то он запишется в хистори.
запишется в хистори ??? неужели ?!
и как же её просмотреть?
Менять рута это жестко =)
Я своим юзерам категорически запрещаю менят рута, а вдруг чего случится, без тебя никто на сервак зайти не сумеет.
а зачем кому то без меня на мой сервак заходить ?
Хорошая статья, но по-моему недостаточно внимания уделено iptables. После такой настройки сервак будет открыт, и ничто не помешает злоумышленнику брутфорсить пароли по ftp/ssh.
По-хорошему, следует ограничить доступ по ssh/ftp с известных IP адресов и/или ограничить число коннектов к определенным портам в единицу времени, благо iptables это позволяет делать.
Согласен, но в таком маленьком обзоре всё не ухватишь…
По IPTables можно впринципе отдельный обзорчик написать
Самое обсуждаемое на блогах:
[…] сервер с LAMP системой (апач + мускул + пхп) плюс FTP и webmin Настраиваем “Дедик” (выделенный сервер) 2. Скриптец для авторегистрации доменов у […]
[…] некоторые старые посты просто офигенные) К примеру, Настройка выделенного сервера (я вообще в консоли нуб полный, но иногда vds вообще весь […]
спасибо за отличную инфу
Облагородить сервак под себя милое дело 😉
А менять рута очень полезно…