Создание web сервера

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

UbuntuСравнив процессоры и определившись с форм-фактором материнской платы и корпусом MiniITX нашего будущего mini сервера? я преступаю к выбору операционной системы. Начитавшись, комментарии людей, которые собирали аналогичные сервера, народ отписывается, что у операционной системы Linux очень высокая стабильность, и это действительно так, но я для себя делаю выбор в сторону Linux, как доступная и БЕСПЛАТНАЯ система, сравнивая с Microsoft windows server, который обойдется от 30000 руб., что ощутимо по карману. В начале своего выбора я испытывал несколько операционных систем. И скажу, остался довольным, как Windows, так и Linux справлялись со своей работой, как надо, за 2 месяца тестирования ни одна из систем не зависала и обе показывали положительные результаты. Так что выбор в данной по части операционной системы остается за Вами. Лично для себя как я выделил 2 Linux системы, это Ubuntu server (на время написания этой статьи последний релиз 10.04) и CentOS (на время написания этой статьи последний релиз 5.5) .

linux-windows

Mini server будет запущен на Ubuntu server 10.04, как и многие другие сервера в моих проектах. Поэтому установка Ubuntu server будет расписана, как отдельная тема, и является универсальной, так же как и настройка сети на Ubuntu server. Настроив и перезагрузив сеть с новыми параметрами, необходимо произвести обновление ubuntu server, это завершающий этап по подготовке системы к развертыванию Web сервера.

ubuntu-instal

Устанавливаем модули Postfix, Courier, Saslauthd, MySQL, rkhunter, binutils (одна большая команда)

aptitude install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl getmail4 rkhunter binutils maildrop

в процессе установки мы должны ответить на некоторые вопросы:

New password for the MySQL "root" user: - вписываем новый пароль на MySQL
Repeat password for the MySQL "root" user: - подтверждаем пароль на MySQL
Create directories for web-based administration? - No
General type of mail configuration: - Internet Site
System mail name: - server1.example.com
SSL certificate required - Ok

Закоментируем строку bind-address = 127.0.0.1 подправив файл my.cnf:

nano /etc/mysql/my.cnf

[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
[...]

Перезагрузим MySQL:

/etc/init.d/mysql restart

Следующая команда покажет правильность нашей настройки

Убедимся, что сеть работает:

netstat -tap | grep mysql

показания будут выглядеть примерно так:

root@server1:~# netstat -tap | grep mysql
tcp        0      0 *:mysql                 *:*                     LISTEN      9732/mysqld
root@server1:~#

Для установки сертификатов по очереди выполним: (4 команды)

cd /etc/courier
rm -f /etc/courier/imapd.pem
rm -f /etc/courier/pop3d.pem
nano /etc/courier/imapd.cnf (смотри ниже)
nano /etc/courier/pop3d.cnf (смотри ниже)

В файлах imapd.cnf и pop3d изменим CN=localhost на CN=server1.example.com

[...]
CN=server1.example.com
[...]

Пересоздадим сертификаты командами: (2 команды)

mkimapdcert
mkpop3dcert

После чего перезагрузим службы:

Перезагрузка сертификатов courier-imap-ssl и courier-pop-ssl (2 команды)

/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop-ssl restart

Установим дополнения к почтовой службе:

Устанавливаем дополнительные программы (одна большая команда)

aptitude install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl

apacheТеперь установим компоненты: Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear, And mcrypt

Устанавливаем Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear, And mcrypt (одна большая команда)

aptitude install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libopenssl-ruby

На вопросы отвечаем следующим образом:

Web server to reconfigure automatically: - apache2
Configure database for phpmyadmin with dbconfig-common? - No

Запустим программы suexec, rewrite, ssl, actions и include, перезагрузка apache2, Установим FTP и квоты (4 команды)

a2enmod suexec rewrite ssl actions include
/etc/init.d/apache2 restart
aptitude install pure-ftpd-common pure-ftpd-mysql quota quotatool
nano /etc/default/pure-ftpd-common

подправим конфигурацию:

[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]

ftpПерезагрузим FTP и отредактируем файл fstab для этого необходимо в строке после слова errors=remount-ro добавить ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 как показано нижу

Перезагрузим FTP и поправим квоту (2 команды)

/etc/init.d/pure-ftpd-mysql restart
nano /etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
#            
proc            /proc           proc    nodev,noexec,nosuid 0       0
/dev/mapper/server1-root /               ext4    errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0       1
# /boot was on /dev/sda1 during installation
UUID=9eef7b6b-5688-456c-8fe2-05ae739e3635 /boot           ext2    defaults        0       2
/dev/mapper/server1-swap_1 none            swap    sw              0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0

Выполним все команды по порядку: (4 команды)

touch /aquota.user /aquota.group
chmod 600 /aquota.*
mount -o remount /
quotacheck -avugm
quotaon -avug

Установим DNS сервер так же выполнив по порядку команды:

Устанавливаем DNS (8 команд)

aptitude install build-essential autoconf automake1.9 libtool flex bison debhelper
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.11.tar.gz
tar xvfz jailkit-2.11.tar.gz
cd jailkit-2.11./debian/rules binarycd ..
dpkg -i jailkit_2.11-1_*.deb
rm -rf jailkit-2.11*
aptitude install fail2ban

Производим установку и настройку Web почты:

Устанавливаем модули Postfix, Courier, Saslauthd, MySQL, rkhunter, binutils (3 команды)

aptitude install squirrelmail
n -s /usr/share/squirrelmail/ /var/www/webmail
squirrelmail-configure

e-mail

В появившемся конфигурации почты:

 

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color on
S   Save data
Q   Quit

отвечаем следующим образом:

  1. D - Enter
  2. courier - Enter
  3. Enter
  4. S - Enter
  5. Q - Enter

finishРезультат нашей работы можно проверить перейдя с клиента в браузере по ссылке http://IP/webmail , где IP адрес нашего сервера в сети. После этого переходим к установке панели управления хостингом ISPconfig, выполнив последовательно команды:

Устанавливаем ISPConfig версии 3.0.2.2 (5 команд)

cd /tmp
wget http://downloads.sourceforge.net/ispconfig/ISPConfig-3.0.2.2.tar.gz?use_mirror=
tar xvfz ISPConfig-3.0.2.1.tar.gz
cd ispconfig3_install/install/
php -q install.php

Далее отвечаем на вопросы:

Select language (en,de) [en]: - ENTER
Installation mode (standard,expert) [standard]: - ENTER
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: -- ENTER
MySQL server hostname [localhost]: - ENTER
MySQL root username [root]: - ENTER
MySQL root password []: - наш пароль на MySQL
MySQL database to create [dbispconfig]: - ENTER
MySQL charset [utf8]: - ENTER
Country Name (2 letter code) [AU]: - ENTER
State or Province Name (full name) [Some-State]: - ENTER
Locality Name (eg, city) []: - ENTER
Organization Name (eg, company) [Internet Widgits Pty Ltd]: - ENTER
Organizational Unit Name (eg, section) []: - ENTER
Common Name (eg, YOUR name) []: - ENTER
Email Address []: - ENTER
ISPConfig Port [8080]: - ENTER

Наша панель установлена и доступна клиенту по адресу http://IP:8080/ , где IP адрес нашего сервера в сети. К только что, установленной панели можно получить доступ введя логин и пароль admin. Наши выделенные сервера обладают высокой производительностью благодаря подобранным качественным компонентам и высокоскоростному и стабильному каналу доступа в интернет.