ХОСТИНГ НА FREEBSD 9.0
УСТАНОВКА FREEBSD
Установка FREEBSD 9.0 легко производится с помощью новой утилиты bsdinstall и не требует особых усилий. Что бы начать установку с помощью данной утилиты, выбираем Install. Затем выбираем настройки клавиатуры, например koi8-r. В качестве hostnsme указывается полное имя хоста с доменом в формате FQDN (сокр. от англ. Fully Qualified Domain Name), например server.example.com. При выборе системных компонентов указываем lib32 (если устанавливается amd64 версия операционной системы), для поддержки 32-битных программ, и ports, для установки коллекции портов. Выбираем сетевую карту. Статический адрес IPv4 для сетевой карты проще указать при установке системы, а IPv6 лучше сразу отключить. В поле Search указываем домен сервера, например example.com. В качестве первого сервера DNS указываем 127.0.0.1, что бы сервер в дальнейшем признавал собственный DNS-сервер. При настройке диска выбираем Guided для создания разделов с помощью мастера. Выбираем Entire Disk, что бы использовать весь диск. Соглашаемся с потерей всех данных на диске. В следующем окне выбираем Finish, что бы согласиться с предложенной конфигурацией и затем Commit, что бы записать изменения на диск. После этого ждем, пока программа сделает необходимую разметку и скопирует все файлы на жесткий диск. Затем задаем пароль root-пользователя. В настройках системного времени лучше отрицательно ответить на вопрос о настроенности компьютера по UTC в любом случае и затем выбрать регион страну и часовой пояс. В качестве дополнительных сервисов указываем sshd, что бы после установки сразу же иметь возможность удаленно подключиться к серверу по ssh и ntpd, что бы сервер сам сверял и обновлял системное время в соответствии с всемирными серверами времени. После этого обязательно нужно создать нового пользователя, так как у пользователя root по умолчанию нет удаленного доступа, и по ssh подключаться будет некому. В качестве основной группы необходимо указать wheel, что бы пользователю была доступна команда su для получения прав уровня root. Все остальные настройки могут иметь значения по умолчанию. После создания пользователя выбираем Exit и нажимаем Enter. На этом базовая установка и настройка системы закончена. Отказываемся от предложения запустить shell и перезагружаем компьютер, выбрав Reboot. Во время перезагрузки нужно извлечь диск, с которого производилась установка, или изменить настройки загрузки в bios компьютера. В противном случае установка начнется заново.
ОБНОВЛЕНИЕ И НАЧАЛЬНЫЕ НАСТРОЙКИ ОПЕРАЦИОННОЙ СИСТЕМЫ
Обновление системы
freebsd-update fetch upgrade
freebsd-update install
Обновление портов
portsnap fetch extract
Обновление портов в последующем
portsnap fetch update
Опции make.conf
Поскольку у нас серверная конфигурация, то стоит добавить следующие опции в файл /etc/make.conf:
WITHOUT_X11=YES
WITHOUT_JAVA=YES
WITHOUT_IPV6=YES
Установка portupgrade
Для установки утилиты portupgrade выполните следующие команды:
cd /usr/ports/ports-mgmt/portupgrade/
make install clean
Для обновления всех установленных программ обновите коллекцию портов при помощи команды portsnap и запустите следующую команду:
portupgrade –u -a
Всю информацию о портах можно найти здесь:
Для просмотра ссылок Вы должны быть авторизованы на форуме.
УСТАНОВКА WEBMIN:
Webmin – это удобное GUI для первого знакомства с администрированием серверов под *nix. Этим инструментом с Web-интерфейсом можно почти полностью настроить систему. Добавлять пользователей, управлять сетью, создавать почтовые ящики и многое другое через удобный Web интерфейс. Конечно, надо понимать, что для тонкой настройки не обойтись без командной строки, но Webmin очень Вам в этом поможет.
Установка Webmin:
cd /usr/ports/sysutils/webmin/
make install clean
Редактируем файл /etc/rc.conf, добавляем в конец
webmin_enable="YES"
Для установки всех необходимых конфигов и т.д. (порт указываем 443, юзер – root, ssl - yes)
/usr/local/lib/webmin/setup.sh
Сразу после установки запустим Webmin
/usr/local/etc/rc.d/webmin start
Для доступа к Webmin в браузере набираем
Для просмотра ссылок Вы должны быть авторизованы на форуме.
Установка Usermin:
cd /usr/ports/sysutils/usermin/
make install clean
Редактируем файл /etc/rc.conf, добавляем в конец
usermin_enable="YES"
Для установки всех необходимых конфигов и т.д. (порт указываем 447, юзер – root, ssl - yes)
/usr/local/lib/usermin/setup.sh
Сразу после установки запустим Usermin
/usr/local/etc/rc.d/usermin start
Для доступа к Usermin в браузере набираем
Для просмотра ссылок Вы должны быть авторизованы на форуме.
В настройках Wermin указываем:
Каталог конфигурации Usermin: /usr/local/etc/usermin
УСТАНОВКА MYSQL
portupgrade -N cmake-2.8.7 A cross-platform Makefile generator Devel
10-01-2012
portupgrade -N mysql-client-5.5.20 Multithreaded SQL database (client) Databases
14-01-2012
portupgrade -N mysql-server-5.5.20 Multithreaded SQL database (server) Databases
14-01-2012
portupgrade -N libnss-mysql-1.5_3 NSS module using a MySQL database for backend Net
20-03-2011
portupgrade -N p5-DBD-mysql55-4.019 MySQL 5.5 driver for the Perl5 Database Interface (DBI) Databases
24-05-2011
After the packages compiling, with Webmin click on the Icon Servers then MySQL Database Server then click on the Module Config tab and parametrize following both lines:
Path to MySQL databases directory /var/db/mysql
MySQL configuration file /usr/local/etc/my.cnf
Copy the my.cnf File in the directory /usr/local/etc
# FreeBSD /usr/local/etc/my.cnf
[mysqld]
datadir = /var/db/mysql
socket = /tmp/mysql.sock
user=mysql
[mysqld_safe]
log-error = /var/log/mysqld.log
Remark: Generate the MySQL Databases
cd /usr/local/bin
mysql_install_db --user=mysql --basedir=/usr/local
Option--databasedir=/var/db/mysql
If the MySQL log file does not exist:
touch /var/log/mysqld.log
Remark : Allows always to start MySQL – /usr/local/libexec/mysqld --skip-grant &
Either with Webmin as described previously or to edit the File /usr/local/etc/rc.d/mysql-server
Modify the syntax of the line following as below:
: ${mysql_enable="YES"}
MySQL-5.5 will be automatically launched by the rc.conf File.
With Webmin launch MySQL and click on the Icon Change Administration Password to change the Administrator Password of MySQL.
УСТАНОВКА NGINX
Установка Nginx:
# cd /usr/ports/www/nginx ; make install clean
Options for nginx 1.0.11,1
[ ] DEBUG Enable nginx debugging
[ ] DEBUGLOG Enable debug log (--with-debug)
[ ] FILE_AIO Enable file aio
[ ] IPV6 Enable IPv6
[ ] GOOGLE_PERFTOOLS Enable google perftools module
[X] HTTP_MODULE Enable HTTP module
[X] HTTP_ADDITION_MODULE Enable http_addition module
[X] HTTP_CACHE_MODULE Enable http_cache module
[X] HTTP_DAV_MODULE Enable http_webdav module
[X] HTTP_FLV_MODULE Enable http_flv module
[X] HTTP_GEOIP_MODULE Enable http_geoip module
[X] HTTP_GZIP_STATIC_MODULE Enable http_gzip_static module
[X] HTTP_IMAGE_FILTER_MODULE Enable http_image_filter module
[X] HTTP_MP4_MODULE Enable http_mp4 module
[X] HTTP_PERL_MODULE Enable http_perl module
[X] HTTP_RANDOM_INDEX_MODULE Enable http_random_index module
[X] HTTP_REALIP_MODULE Enable http_realip module
[X] HTTP_REWRITE_MODULE Enable http_rewrite module
[X] HTTP_SECURE_LINK_MODULE Enable http_secure_link module
[X] HTTP_SSL_MODULE Enable http_ssl module
[X] HTTP_STATUS_MODULE Enable http_stub_status module
[X] HTTP_SUB_MODULE Enable http_sub module
[X] HTTP_XSLT_MODULE Enable http_xslt module
[ ] MAIL_MODULE Enable IMAP4/POP3/SMTP proxy modul
[ ] MAIL_IMAP_MODULE Enable IMAP4 proxy module
[ ] MAIL_POP3_MODULE Enable POP3 proxy module
[ ] MAIL_SMTP_MODULE Enable SMTP proxy module
[ ] MAIL_SSL_MODULE Enable mail_ssl module
[X] WWW Enable html sample files
[ ] CACHE_PURGE_MODULE 3rd party cache_purge module
[ ] ECHO_MODULE 3rd party echo module
[ ] HEADERS_MORE_MODULE 3rd party headers_more module
[ ] HTTP_ACCEPT_LANGUAGE 3rd party accept_language module
[ ] HTTP_ACCESSKEY_MODULE 3rd party http_accesskey module
[ ] HTTP_AUTH_PAM_MODULE 3rd party http_auth_pam module
[ ] HTTP_AUTH_REQ_MODULE 3rd party http_auth_request module
[ ] HTTP_EVAL_MODULE 3rd party eval module
[ ] HTTP_FANCYINDEX_MODULE 3rd party http_fancyindex module
[ ] HTTP_GUNZIP_FILTER 3rd party http_gunzip_filter modul
[ ] HTTP_MOGILEFS_MODULE 3rd party mogilefs module
[ ] HTTP_MP4_H264_MODULE 3rd party mp4/h264 module
[ ] HTTP_NOTICE_MODULE 3rd party notice module
[ ] HTTP_PUSH_MODULE 3rd party push module
[ ] HTTP_REDIS_MODULE 3rd party http_redis module
[ ] HTTP_RESPONSE_MODULE 3rd party http_response module
[ ] HTTP_SUBS_FILTER_MODULE 3rd party subs filter module
[ ] HTTP_UPLOAD_MODULE 3rd party upload module
[ ] HTTP_UPLOAD_PROGRESS 3rd party uploadprogress module
[ ] HTTP_UPSTREAM_FAIR 3rd party upstream fair module
[ ] HTTP_UPSTREAM_HASH 3rd party upstream hash module
[ ] HTTP_UPSTREAM_KEEPALIVE 3rd party upstream keepalive modul
[ ] HTTP_ZIP_MODULE 3rd party http_zip module
[ ] CHUNKIN_MODULE 3rd party chunkin module
[ ] GRIDFS_MODULE 3rd party gridfs module
[ ] LUA_MODULE 3rd party lua module
[ ] MEMC_MODULE 3rd party memc (memcached) module
[ ] PASSENGER_MODULE 3rd party passenger module
[ ] POSTGRES_MODULE 3rd party postgresql module
[ ] REDIS2_MODULE 3rd party redis2 module
[ ] SET_MISC_MODULE 3rd party set_misc module
[ ] SLOWFS_CACHE_MODULE 3rd party slowfs_cache module
[ ] SRCACHE_MODULE 3rd party srcache module
[ ] SUPERVISORD_MODULE 3rd party supervisord module
[ ] SYSLOG_SUPPORT 3rd party syslog support
[ ] UDPLOG_MODULE 3rd party udplog (syslog) module
[ ] XRID_HEADER_MODULE 3rd party x-rid header module
[ ] XSS_MODULE 3rd party xss module
Автозагрузка Nginx
Добавляем эту строку в файл /etc/rc.conf
nginx_enable=”YES”
УСТАНОВКА PHP-FPM
Установка PHP:
# cd /usr/ports/lang/php5 ; make install clean
Options for php5 5.3.8
[X] CLI Build CLI version
[X] CGI Build CGI version
[X] FPM Build FPM version (experimental)
[ ] APACHE Build Apache module
[ ] AP2FILTER Use Apache 2.x filter interface (experimental)
[ ] DEBUG Enable debug
[X] SUHOSIN Enable Suhosin protection system
[X] MULTIBYTE Enable zend multibyte support
[ ] IPV6 Enable ipv6 support
[X] MAILHEAD Enable mail header patch
[X] LINKTHR Link thread lib (for threaded extensions)
Установка дополнений PHP:
# cd /usr/ports/lang/php5-extensions ; make install clean
Компилируем и устанавливаем все дополнения (на всякий случай), за исключением заведомо не нужных, например библиотеки тех баз данных которые никогда не используются. Однако, если очень хочется установить абсолютно все, то скорее всего придется столкнуться с ошибкой: «Please do not build firebird as ‘root’ because this may cause conflicts with SysV semaphores of running services». В таком случае нужно запустить сборку сервера firebird командой make -DPACKAGE_BUILDING && make install && make clean и тогда ошибка пропадет. После чего продолжить сборку php5-extensions.
Настройка дополнений PHP:
# ee /usr/local/etc/php/extensions.ini
Комментируем ненужные модули:
extension=bcmath.so
extension=bz2.so
extension=calendar.so
; extension=ctype.so
; extension=curl.so
; extension=dba.so
extension=dom.so
; extension=exif.so
; extension=fileinfo.so
extension=filter.so
; extension=fribidi.so
extension=ftp.so
extension=gd.so
; extension=gettext.so
; extension=gmp.so
; extension=hash.so
extension=iconv.so
;extension=imap.so
;extension=interbase.so
extension=json.so
; extension=ldap.so
extension=mbstring.so
extension=mcrypt.so
; extension=mssql.so
extension=mysql.so
extension=mysqli.so
; extension=openssl.so
; extension=pcntl.so
; extension=pdf.so
; extension=pdo.so
; extension=pdo_sqlite.so
; extension=pgsql.so
; extension=phar.so
; extension=posix.so
extension=session.so
; extension=pspell.so
; extension=readline.so
; extension=recode.so
; extension=shmop.so
extension=simplexml.so
; extension=snmp.so
; extension=soap.so
extension=sockets.so
; extension=sqlite.so
; extension=sqlite3.so
; extension=sybase_ct.so
; extension=sysvmsg.so
; extension=sysvsem.so
; extension=sysvshm.so
; extension=tidy.so
extension=tokenizer.so
extension=xml.so
; extension=wddx.so
extension=xmlreader.so
; extension=xmlrpc.so
extension=xmlwriter.so
extension=xsl.so
;extension=yaz.so
extension=zip.so
extension=zlib.so
extension=memcache.so
extension=eaccelerator.so
Крайние две строчки необходимо добавить после установки memcache и eaccelerator (если сами модули не сделают этого).
Добавляем строку 'php_fpm_enable=”YES"' в файл '/etc/rc.conf'.
УСТАНОВКА УСКОРИТЕЛЕЙ И УТИЛИТ
Создаем нового /nologin пользователя web:
# adduser web
Установка MEMCACHE:
# cd /usr/ports/databases/pecl-memcache ; make install clean
Установка EACCELERATOR:
# cd /usr/ports/www/eaccelerator ; make install clean
Создаем папку, где eAccelerator будет хранить свой кэш, задаем владельца www и устанавливаем права:
# mkdir /tmp/eaccelerator ; chmod 0777 /tmp/eaccelerator
Установка phpMyAdmin:
cd /usr/ports/databases/phpmyadmin ; make install clean
Установка дополнительного программного обеспечения:
portupgrade -N logrotate-3.7.9 Daemon to rotate, compress, remove and mail system log files Sysutils
27-08-2010
portupgrade -N proftpd-1.3.4a_1 Highly configurable ftp daemon Ftp
20-02-2012
portupgrade -N proftpd-mod_sql_mysql-1.3.4a_1 MySQL module for ProFTPD Ftp
20-02-2012
portupgrade -N webalizer-2.23.5 A web server log file analysis program Www
18-04-2011
УСТАНОВКА ПОЧТОВОГО СЕРВЕРА
Установка Postfix
Идем в порты:
mx# cd /usr/ports/mail/postfix
mx# make config
В дополнение к предложенным опциям включаем DOVECOT и MYSQL:
┌────────────────────────────────────────────────────────────────────┐
│ Options for postfix 2.8.2,1 │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │[X] PCRE Perl Compatible Regular Expressions │ │
│ │[ ] SASL2 Cyrus SASLv2 (Simple Auth. and Sec. Layer) │ │
│ │[X] DOVECOT Dovecot 1.x SASL authentication method │ │
│ │[ ] DOVECOT2 Dovecot 2.x SASL authentication method │ │
│ │[ ] SASLKRB5 If your SASL req. Kerberos5 select this option │ │
│ │[ ] SASLKMIT If your SASL req. MIT Kerberos5 select this optio│ │
│ │[ ] TLS Enable SSL and TLS support │ │
│ │[ ] BDB Berkeley DB (choose version with WITH_BDB_VER) │ │
│ │[X] MYSQL MySQL maps (choose version with WITH_MYSQL_VER) │ │
│ │[ ] PGSQL PostgreSQL maps (pick ver. with DEFAULT_PGSQL_VER│ │
│ │[ ] SQLITE SQLite maps │ │
│ │[ ] OPENLDAP OpenLDAP maps (choose ver. with WITH_OPENLDAP_VER│ │
│ │[ ] LDAP_SASL Enable OpenLDAP client-to-server auth via SASL │ │
│ │[ ] CDB CDB maps lookups │ │
│ │[ ] NIS NIS maps lookups │ │
│ │[ ] VDA VDA (Virtual Delivery Agent 32Bit) │ │
│ │[ ] TEST SMTP/LMTP test server and generator │ │
│ │[ ] SPF SPF support (via libspf2 1.2.x) │ │
│ │[ ] INST_BASE Install into /usr and /etc/postfix │ │
├─└────────────────────────────────────────────────────────────────┘─┤
│ [ OK ] Cancel │
└────────────────────────────────────────────────────────────────────┘
Запускаем установку:
mx# make install clean
Далее будет предложено выбрать опции для Dovecot. В дополнение к стандартным включаем MYSQL
┌────────────────────────────────────────────────────────────────────┐
│ Options for dovecot 1.2.16 │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │ [X] KQUEUE kqueue(2) support │ │
│ │ [X] SSL SSL support │ │
│ │ [X] MANAGESIEVE ManageSieve support │ │
│ │ [ ] GSSAPI GSSAPI support │ │
│ │ [ ] VPOPMAIL VPopMail support │ │
│ │ [ ] BDB BerkleyDB support │ │
│ │ [ ] LDAP OpenLDAP support │ │
│ │ [ ] PGSQL PostgreSQL support │ │
│ │ [X] MYSQL MySQL support │ │
│ │ [ ] SQLITE SQLite support │ │
│ │ │ │
├─└────────────────────────────────────────────────────────────────┘─┤
│ [ OK ] Cancel │
└────────────────────────────────────────────────────────────────────┘
В конце установки нужно ответить на 2 вопроса Postfix’а:
You need user "postfix" added to group "mail".
Would you like me to add it [y]? y
Would you like to activate Postfix in /etc/mail/mailer.conf [n]? n
Делаем:
mx# rehash
Приступаем к редактированию конфига:
mx# ee /usr/local/etc/postfix/main.cf
Приводим конфиг к следующему виду:
queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
mail_owner = postfix
myhostname = mx.xxx.org.ua
mydomain = xxx.org.ua
myorigin = $myhostname
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost
local_recipient_maps = unix:passwd.byname $alias_maps
unknown_local_recipient_reject_code = 550
mynetworks_style = host
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/mail/aliases
alias_database = hash:/etc/mail/aliases
smtpd_banner = $myhostname ESMTP $mail_name
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/local/sbin/sendmail
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = /usr/local/share/doc/postfix
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix
readme_directory = /usr/local/share/doc/postfix
virtual_mailbox_base = /usr/mail/
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 65534
virtual_uid_maps = static:65534
virtual_gid_maps = static:65534
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
Замечание к конфигу:
В начале строк
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
должен стоять знак табуляции!
Создаем директорию для клиентских почтовых ящиков и необходимые файлы:
mx# mkdir /usr/mail
mx# chmod -R 777 /usr/mail
mx# touch /usr/local/etc/postfix/mysql_virtual_alias_maps.cf
mx# touch /usr/local/etc/postfix/mysql_virtual_domains_maps.cf
mx# touch /usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
Редактируем mysql_virtual_alias_maps.cf:
user = postfix
password = postfixpass
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
Редактируем mysql_virtual_domains_maps.cf:
user = postfix
password = postfixpass
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%u'
Редактируем mysql_virtual_mailbox_maps.cf:
user = postfix
password = postfixpass
hosts = localhost
dbname = postfix
query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'
Инициализируем базу данных алиасов:
mx#newaliases
Остается добавить в master.cf dovecot транспорт:
mx# ee /usr/local/etc/postfix/master.cf
Добавляем в конец файла
dovecot unix - n n - - pipe flags=DRhu user=nobody:nobody argv=/usr/local/libexec/dovecot/deliver -d ${recipient}
Теперь нужно сделать еще несколько шагов.
Отключаем запуск SendMail. Добавляем в /etc/rc.conf:
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
Отключаем специфические для Sendmail опции. Создаем файл:
mx# touch /etc/periodic.conf
И вносим в него:
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"
После этого перегружаем машину:
mx# shutdown -r now
Теперь разрешим автозапуск Postfix’a. Добавим в /etc/rc.conf:
postfix_enable="YES"
Стартуем Postfix:
mx# /usr/local/etc/rc.d/postfix start
Смотрим логи, чтобы удостровериться что все ОК:
mx# tail -F /var/log/maillog
На этом установка и настройка Postfix завершена.
Настройка Dovecot
Редактируем /usr/local/etc/dovecot.conf и приводим его к следующему виду:
base_dir = /var/run/dovecot
protocols = imap pop3
disable_plaintext_auth = no
mail_location = maildir:/usr/mail/%d/%u/
mail_privileged_group = mail
dotlock_use_excl = yes
verbose_proctitle = yes
first_valid_gid = 65534
maildir_copy_with_hardlinks = yes
ssl = no
protocol imap {
imap_client_workarounds = delay-newmail netscape-eoh tb-extra-mailbox-sep
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol lda {
postmaster_address =
yaroshuk@asy.org.ua
sendmail_path = /usr/sbin/sendmail
}
auth_username_format = %Lu
auth default {
mechanisms = plain login
passdb sql {
args = /usr/local/etc/dovecot-sql.conf
}
userdb sql {
args = /usr/local/etc/dovecot-sql.conf
}
user = nobody
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0666
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
dict {
}
plugin {
}
Создадим файл настроек подключения к MySQL:
mx# touch /usr/local/etc/dovecot-sql.conf
Отредактируем его:
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfixpass
default_pass_scheme = MD5-CRYPT
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT CONCAT('/usr/mail/',LCASE(`domain`),'/',LCASE(`maildir`)), 65534 AS uid, 65534 AS gid FROM mailbox WHERE username = '%u'
Разрешим автозапуск Dovecot’а:
dovecot_enable="YES"
Для проверки стартуем Dovecot:
mx# /usr/local/etc/rc.d/dovecot start
Далее смотрим логи, в которых мы увидим ошибку коннекта к MySQL, т.к. мы еще не создали необходимые базы:
mx# tail -F /var/log/maillog
Apr 16 00:05:25 mx dovecot: Dovecot v1.2.16 starting up
Apr 16 00:05:25 mx dovecot: auth-worker(default): mysql: Connect failed to localhost (postfix): Access denied for user 'postfix'@'localhost' (using password: YES) - waiting for 1 seconds before retry
Останавливаем Dovecot:
mx# /usr/local/etc/rc.d/dovecot stop
УСТАНОВКА VIRTUALMIN
Это модуль Webmin для управления несколькими виртуальными хостами через единый интерфейс, аналог таких платных систем как Plesk или Cpanel. Он поддерживает создание и управление виртуальными хостами Apache, BIND DNS доменов, баз данных MySQL и почтовых ящиков и псевдонимов в Sendmail и Postfix. Использует существующие модули Webmin для этих серверов, и поэтому должен работать с любой существующей конфигурации системы, не устанавливая собственный почтовый сервер, веб-сервер и так далее. Virtualmin также можете создавать пользователей Webmin для каждого виртуального сервера, который ограничивается только его управления доменом и его файлов.
Зайдите на страницу загрузки и скачайте 2 пакета:
virtual-server
virtual-server-theme
В webmin зайдите в настройки и установите эти 2 модуля. Это нужно сделать в Webmin - Настройка Webmin - Модули webmin.
Установите темой по-умолчанию Virtualmin Framed Theme
Документация по использованию Virtualmin с Git, Nginx, Subversion, SSL и другими сервисами не входящими в базовый набор:
Для просмотра ссылок Вы должны быть авторизованы на форуме.
Установка поддержки Nginx
Switching a system from the Apache webserver (installed by default by Virtualmin to Nginx should only be done if no virtual servers with websites have been created yet. Ideally the change should be done on a freshly installed system, running RHEL 6.0, CentOS 6.0 or Debian 6.0 or later. Virtualmin version 3.89 or above is also required.
The steps to remove Apache and install Nginx are :
Shut down Apache with the command /etc/init.d/httpd stop ; service httpd off (on RHEL or CentOS), or/etc/init.d/apache2 stop ; update-rc.d apache2 remove (on Debian).
Install Nginx with the command yum install nginx (on RHEL or CentOS) or apt-get install nginx (on Debian).
Start the Nginx webserver with the command /etc/init.d/nginx start
Install Virtualmin's Nginx plugin with the command yum install wbm-virtualmin-nginx wbm-virtualmin-nginx-ssl (on RHEL or CentOS) or apt-get install webmin-virtualmin-nginx webmin-virtualmin-nginx-ssl (on Debian).
Once this is done, you can configure Virtualmin to use it as follows :
Login to Virtualmin as root, and go to Webmin -> Servers -> Nginx Webserver and make sure that Nginx and its configuration files are found.
If not, click on the Module Config link and set the config and command paths correctly.
Return to Virtualmin, and go to System Settings -> Features and Plugins.
Un-check the "Apache website" , "SSL website" and "DAV Login", "Mailman", "Protected web directories", "AWstats reporting" and "Subversion repositories" features.
Check the "Nginx website" and "Nginx SSL website" features, then click "Save".
If Virtualmin reports that any other features cannot be used without Apache, go back and de-select them too.
Go to the System Information page and click Refresh system information in the top right.
Verify that Nginx is shown as running in the "Status" section.
Использование Nginx
Once Nginx support has been configured, you should be able to create virtual servers just as you would with Apache. However, on the Create Virtual Server page you will need to select Enable Nginx website? in theEnabled features section, instead of Enable Apache.
When creating a domain from the command-line API, you will need to use the --virtualmin-nginx flag instead of--ssl . For SSL websites, you will need to use --virtualmin-nginx-ssl instead of --ssl .
Similarly, when creating a domain via the remote API, you will need to use the virtualmin-nginx= parameter instead of web= .
Ограничения для Nginx
Nginx as configured by Virtualmin lacks some features of Apache, such as :
Only one virtual server can have SSL enabled per IP address, even if a wildcard or UCC certificate would potentially allow multiple SSL sites to share the same IP.
Nginx does not support CGI, so any applications or Virtualmin scripts that use CGI will not work. Virtualmin should prevent the installation of scripts that require CGI, mod_perl or Apache-specific features.
PHP can only be executed via FastCGI, and all PHP scripts run with domain owner permissions. Execution via CGI or mod_php is not supported. For PHP to work, Virtualmin will setup a PHP FastCGI server process that Nginx communicates with for each virtual server.
Only one PHP version is supported, and Virtualmin will pick the highest version available on the system. This typically means that PHP v4 scripts cannot be run.
НАСТРОЙКА NGINX:
# ee /usr/local/etc/nginx/nginx.conf
Мой конфиг:
user web;
worker_processes 10;
worker_priority -10;
worker_rlimit_nofile 51200;
error_log logs/error.log;
events {
worker_connections 1024;
use kqueue;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
client_max_body_size 64M;
client_body_buffer_size 128k;
access_log logs/access.log main;
server_names_hash_bucket_size 512;
sendfile on;
tcp_nopush on;
keepalive_timeout 60s;
send_timeout 60s;
reset_timedout_connection on;
resolver 127.0.0.1;
resolver_timeout 10s;
proxy_buffers 8 64k;
proxy_intercept_errors on;
proxy_connect_timeout 1s;
proxy_read_timeout 3s;
proxy_send_timeout 3s;
open_file_cache max=100000 inactive=40s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
gzip on;
#default virtual host
server {
listen 80 default;
server_name localhost;
deny all;
}
Создаем папку с виртуальными хостами: # mkdir /usr/local/etc/nginx/users
Открываем конфиг: # ee /usr/local/etc/nginx/users/mysite.ru.conf
Описываем нужные нам виртуальные хосты:
server {
listen 80;
server_name
Для просмотра ссылок Вы должны быть авторизованы на форуме. mysite.ru;
root /home/web/mysite.ru/www;
index index.html index.htm index.php;
charset utf-8;
access_log /home/web/mysite.ru/www/access_log main;
error_log /home/web/mysite.ru/www/error_log error;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
# This is cool because no php is touched for static content
try_files $uri @rewrite;
}
location @rewrite {
# Some modules enforce no slash (/) at the end of the URL
# Else this rewrite block wouldn't be needed (GlobalRedirect)
rewrite ^/(.*)$ /index.php?q=$1;
}
# Fighting with ImageCache? This little gem is amazing.
location ~ ^/sites/.*/files/imagecache/ {
try_files $uri @rewrite;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
location ~ \..*/.*\.php$ {
return 403;
}
# передаем обработку пхп скриптов на php-fpm
location ~* \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
include fastcgi_params;
}
location ~ /\.ht { # закрываем доступ к файлам .htpasswd
deny all;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
}
Открываем: # ee /usr/local/etc/nginx/users/mysql.mysite.ru.conf
По аналогии создаем конфиги для остальных наших будущих сайтов и phpMyAdmin:
server {
listen 80;
server_name mysql.mysite.ru;
root /usr/local/www/phpMyAdmin;
index index.html index.htm index.php;
charset utf-8;
access_log /var/log/phpmyadmin_access_log main;
error_log /var/log/phpmyadmin_error_log error;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location / {
# This is cool because no php is touched for static content
try_files $uri @rewrite;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
location ~ \..*/.*\.php$ {
return 403;
}
# передаем обработку пхп скриптов на php-fpm
location ~* \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
include fastcgi_params;
}
location ~ /\.ht { # закрываем доступ к файлам .htpasswd
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
}