Установка бесплатной панели VHCS на Fedora Core 3
просмотреть
 
отследить
 
VHCS - это, со слов разработчиков, профессиональная панель управления для виртуального хостинга.
 Рассмотрим ее установку на Fedora Core 3.
Внимание! Так как это не коммерческая разработка, а система с открытым исходным кодом, то возможны разнообразные проблемы вплоть до выхода операционной системы из строя. Действуйте на свой страх и риск.
Подготовка.
 Так как VHCS переписывает все задачи крона, необходимо их сохранить:
 crontab -l > crontabbackup-vhcs.cron
 Далее необходимо установить apt-get с http://apt.freshrpms.net/ и обновить систему:
 
 wget http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/3/apt/apt-0.5.15cnc6-1.1.fc3.fr.i386.rpm
 rpm -Uvh apt-0.5.15cnc6-1.1.fc3.fr.i386.rpm
 apt-get update
 apt-get dist-upgrade
 
 Установим необходимое ПО:
 apt-get install httpd php postfix mysql-server proftpd php-mysql php-pear php-imap php-gd ncftp bind
Установка.
 Установка должна проходить с отключенным SELinux, иначе панель выдаст кучу предупреждений и будет работать нестабильно.
Активируем дисковые квоты:
 Необходимо в файле /etc/fstab вписать поддержку квот для разделов, где расположен /home - для Fedora Core 3 это обычно /dev/VolGroup00/LogVol00/
 Эта опция выглядит так: defaults,usrquota.
 Далее необходимо создать собственно файл дисковых квот и инициализировать его:
 touch /aquota.user
 chmod 600 /aquota.user
 mount -o remount /
 quotacheck -avugm
 
 
 
 
 Установка и настройка Yum
 Все необходимые пакеты для vhcs хранятся в репозитарии yum на http://apt.sw.be.
 В файл /etc/sysconfig/rhn/sources необходимо добавить:
 yum dag http://apt.sw.be/fedora/3/en/$ARCH/dag
 А в файл /etc/yum.repos.d/dag.repo:
 [dag]
 name=Dag RPM Repository for Fedora Core
 baseurl=http://apt.sw.be/fedora/$releasever/en/$basearch/dag
 enabled=1
 wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
 rpm --import RPM-GPG-KEY.dag.txt
 yum update
 yum remove vsftpd
 yum upgrade
 yum install \
 libmcrypt libmcrypt-devel expect libxslt-devel libjpeg-devel libpng-devel \
 freetype-devel cyrus-imapd cyrus-imapd-devel libc-client-devel \
 php-imap php-pgsql postgresql-devel php-snmp net-snmp-devel \
 mysql-admin httpd-devel \
 cyrus-sasl cyrus-sasl-plain postfix \
 lynx
 yum install lynx postfix mysql mysql-devel libmcrypt libmcrypt-devel \
 expect libxslt-devel libjpeg-devel libpng-devel \
 freetype-devel php-imap cyrus-imapd cyrus-imapd-devel \
 libc-client-devel php-imap php-pgsql postgresql-devel php-snmp \
 net-snmp-devel
ProFTPD
 ProfTPD необходим с поддержкой опций, которые не входят в тот, что идет пакетом. Поэтому надо доустановить из исходников:
 
 cd /usr/local/
 wget ftp://ftp.ibiblio.org/pub/mirrors/proftpd/distrib/source/proftpd-1.2.10.tar.gz
 tar zxvf proftpd-1.2.10.tar.gz
 mv proftpd-1.2.10 proftpd
 cd /usr/local/proftpd
 ./configure \
 --sysconfdir=/etc \
 --localstatedir=/var \
 --prefix=/usr \
 --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql \
 --with-includes=/usr/include/mysql \
 --with-libraries=/usr/lib/mysql
 make && make install
 
 После установки в конфигурационном файле надо установить User и Group в ftp/ftp и прописать полное имя сервера в /etc/hosts, иначе proftpd не стартует.
Модули для Perl
 Необходимо установить определенные модули из CPAN:
 perl -MCPAN -e shell, после настройки CPAN установить модули: install MIME::Entity MIME::Parser MIME::Base64 Crypt::CBC Crypt::Blowfish Term::ReadPassword
Установка OpenSSL
 cd /usr/local/
 wget http://www.openssl.org/source/openssl-0.9.7e.tar.gz
 tar xvfz openssl-0.9.7e.tar.gz
 mv openssl-0.9.7e openssl
 cd /usr/local/openssl/
 ./config ; make && make test && make install
 cp -p /usr/local/openssl/tools/c_rehash /usr/local/bin/c_rehash
 chmod a+x /usr/local/bin/c_rehash
Установка PHP
 Установка PHP из исходников даст возможность включить пропущенные расширения, недоступные в RPM пакетах:
 cd /usr/local/
 wget http://us2.php.net/distributions/php-4.3.10.tar.bz2
 tar xjvf php-4.3.10.tar.bz2
 mv php-4.3.10 php
 cd php
 ./configure \
 --with-mysel --with-pgsql --with-mcrypt=/usr/lib \
 --build=i386-redhat-linux --target=i386-redhat-linux-gnu \
 --with-jpeg --with-openssl --with-png \
 --with-pear --with-calendar --with-xml \
 --with-ftp --with-freetype --with-bz2 --with-iconv \
 --sysconfdir=/etc --mandir=/usr/share/man \
 --enable-sockets --enable-calendar --enable-bcmath \
 --enable-ctype --enable-exif --enable-filepro \
 --enable-ftp --enable-memory-limit \
 --enable-sigchild --enable-magic-quotes \
 --enable-yp --enable-track-vars \
 --with-apxs2=/usr/sbin/apxs
 make ; make instal
 После можно удалить лишнее включение загрузки libphp4.so в /etc/httpd/conf/httpd.
Установка Postfix с поддержкой auth smtp
 cd /usr/local/
 wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.20.tar.gz
 tar xvfz cyrus-sasl-2.1.20.tar.gz
 mv cyrus-sasl-2.1.20 cyrus-sasl
 cd cyrus-sasl
 ./configure
 make && make install
 ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
 perl -pi.bak -e "s/saslauthd/auxprop/g" /usr/local/lib/sasl2/smtpd.conf
 wget http://postfix.energybeam.com/source/official/postfix-2.2.1.tar.gz
 tar xvfz postfix-2.2.1.tar.gz
 mv postfix-2.2.1 /usr/local/postfix
 cd /usr/local/postfix
 make makefiles CCARGS="-DUSE_SASL_AUTH -I/usr/local/include/sasl" \
 AUXLIBS="-L/usr/local/lib -lsasl2"
 make && make install
Courier - pop3d, imapd и authd
 cd /usr/local/
 wget http://unc.dl.sourceforge.net/sourceforge/courier/courier-authlib-0.55.tar.bz2
 tar xjvf courier-authlib-0.55.tar.bz2
 mv courier-authlib-0.55 courier-authlib
 cd /usr/local/courier-authlib
 ./configure --with-redhat --disable-root-check \
 --with-mailuser=courier --with-mailgroup=courier
 make && make install && make install-configure
 cd /usr/local
 wget http://unc.dl.sourceforge.net/sourceforge/courier/courier-0.49.0.tar.bz2
 tar xjvf courier-0.49.0.tar.bz2
 mv courier-0.49.0 courier
 cd /usr/local/courier
 ./configure --with-redhat --disable-root-check \
 --with-mailuser=courier --with-mailgroup=courier \
 --with-db=gdbm
 make && make install && make install-configure
 echo 'su -c "/usr/lib/courier/share/sqwebmail/cleancache.pl" bin' >> /etc/cron.hourly/courier.cron
 touch /usr/local/etc/authlib/userdb
 chown daemon /usr/local/etc/authlib/userdb
 chgrp daemon /usr/local/etc/authlib/userdb
 chmod 600 /usr/local/etc/authlib/userdb
 groupadd courier
 useradd -c 'Courier Mail Server' -d /dev/null -g courier -s /bin/false courier
 ln -s /usr/lib/courier/sbin/webmaild /etc/init.d
 echo '/usr/local/sbin/authdaemond' >> /etc/rc.local
 echo '/usr/lib/courier/sbin/courier start' >> /etc/rc.local
 echo '/usr/lib/courier/sbin/pop3d start' >> /etc/rc.local
 echo '/usr/lib/courier/sbin/imapd start' >> /etc/rc.local
 /etc/rc.local
Предустановочные патчи:
 Необходимо задать пароль mysql (пустой пароль оставлять нельзя).
 
 ln -s /usr/libexec/postfix /usr/lib/postfix
 ln -s /usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/libperl.so /lib/
 cp -p /usr/local/courier/rfc822/rfc822.h /usr/local/include/
 mysqladmin create vhcs2
 service named start
 ln -s /etc/httpd /etc/apache2
 adduser www-data
 
Установка VHCS2
 Необходимо скачать дистрибутив с http://www.vhcs.net, распаковать его и изменить в файле vhcs2.conf следующие параметры:
 SERVER_HOSTNAME = Имя сервера
 BASE_SERVER_IP = Основной IP
 DATABASE_PASSWORD = Пароль mysql
 BIND_CONF_FILE = /etc/named.conf
 BIND_DB_DIR = /var/named/chroot/var/named
 BIND_DB_DIR = /var/named/chroot/var/named
 APACHE_CMD = /etc/rc.d/init.d/httpd
 APACHE_NAME = httpd
 APACHE_LOG_DIR = /var/log/httpd
 APACHE_USERS_LOG_DIR = /var/log/httpd/users
 APACHE_BACKUP_LOG_DIR = /var/log/httpd/backup
 APACHE_CONF_FILE = /etc/httpd/sites-available/vhcs2.conf
 APACHE_USER = apache
 APACHE_GROUP = apache
 MTA_SASLDB_FILE = /etc/sasldb2
 MTA_SASLDB_PASSWD2 = /usr/sbin/saslpasswd2
 CMD_MAKEUSERDB = /usr/local/sbin/makeuserdb
 CMD_NAMED = /etc/init.d/named
 CMD_HTTPD = /etc/init.d/httpd
 MAIL_TRAFF_LOG = maillog
 После чего приступаем к собственно установке:
 
 make ; make install
 cp -R /tmp/vhcs2 /
 cd /var/www/vhcs2/engine/setup/
 ./vhcs2-setup
 
 Теперь vhcs будет установлен в диалоговом режиме.
 Вход в панель http://сервер/vhcs2/
 Однако входить еще рано, необходимо установить постпатч:
Установка постпатча
 echo 'include /etc/httpd/sites-available/vhcs2.conf' >> /etc/httpd/conf/httpd.conf
 cd /etc/vhcs2/bind/parts/
 cp -p cfg_entry.tpl cfg_entry.tpl.bak
 perl -pi.bak -e "s/\{DB_DIR\}\/\{DMN_NAME\}\.db/\{DMN_NAME\}\.db/g" cfg_entry.tpl
 perl -pi.bak -e "s/0700/0755/g" /var/www/vhcs2/engine/vhcs2-*
 
 Также необходимо инициализировать базу sasl. Просто добавим пользователя test:
 saslpasswd2 test
 И, наконец, создаем свой скрипт для рестарта панели:
Init скрипт /etc/init.d/vhcs2
 
 #!/bin/sh
 # description: Start or stop the vhcs2 daemon
 #
 ### BEGIN INIT INFO
 # Provides: vhcs2
 # Required-Start: $network $syslog
 # Required-Stop: $network
 # Default-Start: 2 3 5
 # Default-Stop: 0 1 6
 # Description: Start or stop the vhcs2 daemon
 ### END INIT INFO
 
name='vhcs2'
 lockfile=/var/lock/subsys/vhcs2
 confFile=/etc/vhcs2/vhcs2.conf
 pidFile=/var/log/vhcs2/vhcs2.pid
 daemon=/var/www/vhcs2/daemon/vhcs2_daemon
 name=vhcs2_daemon
case "$1" in
 'start')
 $daemon >/dev/null 2>&1 /dev/null 2>&1
 fi
 ;;
 'stop')
 pidfile=`grep "^pidfile=" $confFile | sed -e 's/pidfile=//g'`
 kill `cat $pidfile`
 RETVAL=$?
 if [ "$RETVAL" = "0" ]; then
 rm -f $lockfile
 fi
 ;;
 'status')
 pidfile=`grep "^pidfile=" $confFile | sed -e 's/pidfile=//g'`
 if [ "$pidfile" = "" ]; then
 pidfile=$pidFile
 fi
 if [ -s $pidfile ]; then
 pid=`cat $pidfile`
 kill -0 $pid >/dev/null 2>&1
 if [ "$?" = "0" ]; then
 echo "$name (pid $pid) is running"
 RETVAL=0
 else
 echo "$name is stopped"
 RETVAL=1
 fi
 else
 echo "$name is stopped"
 RETVAL=1
 fi
 ;;
 'restart')
 $stop && $start
 RETVAL=$?
 ;;
 *)
 echo "Usage: $0 { start | stop | restart }"
 RETVAL=1
 ;;
 esac
 exit $RETVAL
Установка бесплатной панели управления хостингом завершена.