Веб-сервер на коленке за полчаса

19 Feb 2013 | Автор: dd |

Нашел тут статейку, что кропал в начале 2012 года, но почему то до сих пор не запостил, так что как грится, привожу “без купюр”.

Возникла необходимость скоренько поднять на коленке веб сервер, в связи с чем понял что на филигранную отточку конфигов во фре у меня нет ни времени ни желания, поэтому решил что это будет CentOS 5.8, ибо на данный момент это последняя сборка.

Предполагаю, что со всеми сервисами вы более менее знакомы, поэтому все будет описано довольно кратко, ибо разбирать в процессе мануала тонкие настройки мускуля или апача- не вижу смысла.

Ставить операционку CentOS никаких проблем и секретов нет, так что просто поднимаем машину отключив все кроме X Windows, патчим её и приступаем к настройке сервака. Также в процессе настройки отключаем все фичи безопасности, типо фаервола и  SELinux, ибо вещи это хорошие, но лучше их включить позже.

Настраиваем все что нам надо: /etc/hosts с именами, сетку со статикой.

Открываем Kmenu -> Applications -> Add/Remove Software где по вкладке Browse выбираем:
CentOS Extras: Yum
Applications: Editors, Text-based Internet
Base System: Administration Tools, Base, System Tools
Development: Development Libraries, Development Tools, Ruby
Languages: Russian Support, British Support
Servers: DNS Name Server, FTP Server, Mail Server, MySQL Database, Server Configuration Tools, Web Server

Теоретически все эти настройки можно произвести из установки и не ставя X Windows, но по мне из винды работать проще, тем более что в случае необходимости их можно загасить. К тому же на момент установки меня уже мутило от настройки аналогичного сервака под фрей, так что оставляем как есть.

При попытке установить все эти прелести система, при проверке зависимостей, ругнулась мне следующим образом “php53-common conflict with php-common“. Это известный баг центосины и лечится он принудительной установкой пхп53
# yum -y install php53-devel
в моем же случае это вылечилось отключением Horde, которой требуется именно php-common. После этого на пару часов можно идти курить бамбук, что все таки гораздо более юзерфрендли, нежели даже /usr/ports ftw.

Но если говорить об отсутствии Х, то тогда пакеты будут ставиться набором команд:
Апаем установленные пакеты
# yum update
Устанавливаем MySQL
# yum install mysql mysql-devel mysql-server
Ставим Apache с php
# yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel
Дела почтовые и всякий разный необходимый фарш:
# yum install fetchmail wget bzip2 unzip zip nmap openssl lynx fileutils ncftp gcc gcc-c++
Postfix с SMTP-AUTH и TLS
# yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain postfix dovecot

Ставим DNS сервер
# yum install bind-chroot
Поднимаем NTP сервер
# yum install ntp
Ставим веб-морду для почтаря:
# yum install squirrelmail

Добавляем ключики GPG  для пакетов:
# rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY*
Приводим в рабочее состояние MySQL, задав ему пароль для рута:
# /usr/bin/mysqladmin -u root password ‘new-password’
Создаем загрузочный линк для мускуля и поднимаем его:
# /sbin/chkconfig –levels 235 mysqld on
# /etc/init.d/mysqld start

Добиваем по вкусу конфиг для мускуля /etc/my.cnf, или по крайней мере создаем его если он отсутствует, после чего переходим к настройке апача
# vi /etc/httpd/conf/httpd.conf
Крутить можно много и натужно, имхо добиваем одну директиву:
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl
После чего ставим апач на стартап:
# /sbin/chkconfig –levels 235 httpd on
и стартуем:
/etc/init.d/httpd start

Поскольку планируется прикручивать на сервак ISPConfig, то мы бум настраивать php на сайт, для того чтобы разрешать кому то его использовать, а кому то нет. В  моей ситуации, так как я поднимаю сервер под один сайт, он не нужен, но раз уж я тут распинаюсь, то распишу. Если же этого не сделать, то глобальная настройка PHP будет работать для всех сайтов, не зависимо от того, что вы там обозначили в ISPConfig. Чтобы отключить PHP Global в файле /etc/httpd/conf.d/php.conf комментим две директивы:
#AddHandler php5-script .php
#AddType text/html .php

после чего рестартим апач:
/etc/init.d/httpd restart

Переходим к FTP: Как пишут знающие люди, ISPConfig корректнее работает с ProFTPd (я это активно поддерживаю всеми руками, так как сам лю proftpd), нежели с vsftpd, идущим в стандартной поставке, поэтому выносим его
# yum remove vsftpd
и ставим нашего старого знакомого ProFTPd
# cd /tmp/
# wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3.tar.gz
# tar xvfz proftpd-1.3.3.tar.gz
# cd proftpd-1.3.3
# ./configure –sysconfdir=/etc
# make && make install
# rm -Rf /tmp/proftpd-1.3.3

Создаем линк на бинарник
ln -s /usr/local/sbin/proftpd /usr/sbin/proftpd
и создаем файло запуска сервака /etc/init.d/proftpd
######## /etc/init.d/proftpd ############
#!/bin/sh
# $Id: proftpd.init,v 1.1 2004/02/26 17:54:30 thias Exp $
# proftpd        This shell script takes care of starting and stopping proftpd.
# chkconfig: – 80 30
# description: ProFTPD is an enhanced FTP server
# processname: proftpd
# config: /etc/proftp.conf
# pidfile: /var/run/proftpd.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x /usr/sbin/proftpd ] || exit 0
RETVAL=0
prog=”proftpd”
start() {
echo -n $”Starting $prog: ”
daemon proftpd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd
}
stop() {
echo -n $”Shutting down $prog: ”
killproc proftpd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd
}
# See how we were called.
case “$1″ in
start)
start
;;
stop)
stop
;;
status)
status proftpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/proftpd ]; then
stop
start
fi
;;
reload)
echo -n $”Re-reading $prog configuration: ”
killproc proftpd -HUP
RETVAL=$?
echo
;;
*)
echo “Usage: $prog {start|stop|restart|reload|condrestart|status}”
exit 1
esac
exit $RETVAL

######## /etc/init.d/proftpd ############
Делаем его исполняемым
# chmod 755 /etc/init.d/proftpd
После чего в конфиге сервака /etc/proftpd.conf меняем владельца
User           nobody
Group        nobody

также для повышения безопасности в конфиг можно раскомментировать и добавить следующие строки:
DefaultRoot ~
IdentLookups off
ServerIdent on “FTP Server ready.”

Прописываем автозарузку сервера FTP и стартуем его
# /sbin/chkconfig –levels 235 proftpd on
# /etc/init.d/proftpd start

Настраиваем NTP сервер
# /sbin/chkconfig –levels 235 ntpd on
# /sbin/ntpdate -q ntp0.zenon.net
# /etc/init.d/ntpd start

Доливаем всякий разный фарш, который не шел в стандартной поставке:
Ставим систему Webalizer
# yum install webalizer
Инсталим perl для всяких разностей, например spamassasin
# yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1

Переходим к установке ISPConfig
# cd /tmp/
# wget http://prdownloads.sourceforge.net/ispconfig/ISPConfig-3.0.4.5.tar.gz
# tar xzvf ISPConfig-3.0.4.5.tar.gz
# cd ispconfig3_install/install/
# php -q install.php

После чего отвечаем на кучу всяких вопросов и если все проходит гладко, логинимся http://server_ip:8080/ c одинаковым именем пользоваля и паролем admin:admin

У меня при установке скрипт ISPConfig  матюгнулся ошибкой “No PHP MySQL functions available. Please ensure that the PHP MySQL module is loaded.“, так что пришлось доставить php53-mysql:
# yum install  php53-mysql

VN:F [1.9.21_1169]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.21_1169]
Rating: 0 (from 0 votes)

Теги: , ,

Ваш отзыв