Когда будет Идеальный сервер - FreeBSD X ??

Список разделов Web сервер Идеальный сервер ...

Описание: Обсуждения вопросов связанных только с работоспособностью серверов: как его настроить и подготовить к установке ISPConfig. Для ISPConfig 2 и ISPConfig 3.
Сюда не входит: установка сайтов, работа и настройка ISPConfig панели.
Правила раздела: Условием использования нашего форума, является соблюдение настоящих Правил форума.


Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам, а вы рискуете получить предупреждение.
Модератор: mini-server

#1 Guest » Пт, 4 ноября 2011, 4:26

Доброго времени суток Всем!
Почему пропущена столь важная и популярная ОС(в среде хост.компании и учреждении) для веб-сервера ?
Guest
Автор темы

Re: Когда будет Идеальный сервер - FreeBSD X ??

#2 mini-server » Пт, 4 ноября 2011, 20:57

freehack писал(а):Доброго времени суток Всем!
Почему пропущена столь важная и популярная ОС(в среде хост.компании и учреждении) для веб-сервера ?
Уважаемый freehack, ISPConfig 3 не поддерживает FreeBSD, + к этому FreeBSD сложнее для понимания новичкам. Если Вы сможете предложить более простые и легкие пути решения в использовании этой замечательной ОС, мы выслушаем Ваши предложения. *OK*
Забыл вчера кота покормить. Утром просыпаюсь, чем-то гремит на кухне... наверное готовит...
mini-server M
Администратор
Администратор
Аватара
Возраст: 28
Откуда: г. Москва
Репутация: 16 (+16/−0)
Лояльность: 15 (+15/−0)
Сообщения: 1286
Темы: 57
Зарегистрирован: Пн, 12 июля 2010
С нами: 4 года 3 месяца

Re: Когда будет Идеальный сервер - FreeBSD X ??

#3 Kujbor » Ср, 7 марта 2012, 3:29

Тема действительно очень интересна. Не стоит зацикливаться на ISPConfig - это не единственная панель. Большинством провайдеров и хостеров FreeBSD признана лучшей операционной системой для построения серверов, и не зря. Так что хватит хреново переводить забугорные статьи из разряда "The Perfect Server", пора уже одолеть что-то самостоятельно. Только это и принесет форуму настоящий бум популярности.

Могу поделиться личными наработками в установке подобной системы на FreeBSD 9 (последний на данный момент релиз от января 2012 года). Схема не идеальна, т.к. система не окончательна настроена для использования Virtualmin (подобие ISPConfig). Я бы проводил настройку и дальше, но проблема встала за тем, что где-то в чем-то не определялась моя сетевая карта. Причина звучит пространно, но это так. В Виртаулмине сетевая карта не определялась и это не давало возможности выполнять многие настройки. Поэтому эпопея с FreeBSD была отложена до покупки нормальной карточки от Intel. Но основа хорошая, в качестве хостинга использоваться может и при допиливании будет совсем идеальна. Поскольку с английским у меня особых проблем нет, то многие места в мануале на английском (ибо многое просто Copy-Paste).

В аттаче хотел выложить тот же текст но в более-менее божеском, форматированном виде, но *.doc запрещен администратором + хотел выложить уже скачанные файлы для установки Virtualmin, но ограничение на размер файла (1mb) не дало мне этого сделать :( А вообще такое имеется и если будет возможность - выложу.

Вот еще в нагрузку хорошая статья про создание почтового сервера на FreeBSD - http://www.unix-tutorials.com/go.php?id=6811, может использоваться как проходной этап при подготовке к установке Virtualmin, вместо описанного мною способа. Статья была найдена уже после того как я завязал с FreeBSD, не проверялась и возможно лучше и правильнее чем описанное мною.

И еще одна путевая статья - http://www.c-extra.com/en/freebsd-9en.php, но в ней много лишнего. Многое можно делать проще, и еще больше можно просто не делать совсем.

Если кто-то это все попробует, протестирует, допилит и до конца переведет - огромный респект! *THUMBS UP*

ХОСТИНГ НА 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
Всю информацию о портах можно найти здесь:
http://www.freebsd.org/ports/

УСТАНОВКА 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 в браузере набираем
https://your-domain.com:443/
Установка 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 в браузере набираем
https://your-domain.com:443/
В настройках 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 и другими сервисами не входящими в базовый набор: http://www.virtualmin.com/documentation/web
Установка поддержки 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 http://www.mysite.ru 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;
}
}
Kujbor
Аватара
Возраст: 27
Репутация: 0 (+0/−0)
Лояльность: 0 (+0/−0)
Сообщения: 40
Темы: 2
Зарегистрирован: Пт, 24 февраля 2012
С нами: 2 года 8 месяцев

Re: Когда будет Идеальный сервер - FreeBSD X ??

#4 Kujbor » Ср, 7 марта 2012, 3:41

mini-server писал(а):+ к этому FreeBSD сложнее для понимания новичкам.
В действительности это совершенно не так. FreeBSD значительно проще и понятнее любого Linux-дистрибутива. Его преподают на перых курсах технических вузов в отличие от Linux. К тому же если действительно охото разобраться с матчастью а не просто сделать механически что написано то FreeBSD идеальный, канонический можно сказать вариант.

mini-server писал(а):Если Вы сможете предложить более простые и легкие пути решения в использовании этой замечательной ОС, мы выслушаем Ваши предложения.
Более простые и легкие по сравнению с чем?
Kujbor
Аватара
Возраст: 27
Репутация: 0 (+0/−0)
Лояльность: 0 (+0/−0)
Сообщения: 40
Темы: 2
Зарегистрирован: Пт, 24 февраля 2012
С нами: 2 года 8 месяцев

Re: Когда будет Идеальный сервер - FreeBSD X ??

#5 SinglWolf » Ср, 7 марта 2012, 8:34

Kujbor писал(а):В действительности это совершенно не так. FreeBSD значительно проще и понятнее любого Linux-дистрибутива. Его преподают на перых курсах технических вузов в отличие от Linux. К тому же если действительно охото разобраться с матчастью а не просто сделать механически что написано то FreeBSD идеальный, канонический можно сказать вариант.
Я выскажу свою точку зрения. Нужно подходить к таким вещам только с практической точки зрения. Есть конкретная задача и её нужно решить. И решить так, чтобы всё работало "как швейцарские часы". Опираясь на свой опыт, скажу, что с всеми моими поставленными практическими задачами прекрасно справляются Ubutu и Debian. Вот появится чёткая практическая задача, которая по-зубам только FreeBSD, "навалимся" и на эту ОС. А на рассуждения типа, плохая эта ОС или хорошая, проще или сложнее, извините, нет времени. Ещё раз оговорюсь, я высказал свою точку зрения.
SinglWolf M
Администратор
Администратор
Аватара
Возраст: 43
Откуда: Башкирия
Репутация: 99 (+99/−0)
Лояльность: 27 (+30/−3)
Сообщения: 857
Темы: 55
Зарегистрирован: Пн, 23 января 2012
С нами: 2 года 9 месяцев

Re: Когда будет Идеальный сервер - FreeBSD X ??

#6 SinglWolf » Ср, 7 марта 2012, 8:46

Kujbor писал(а):[...]
В аттаче хотел выложить тот же текст но в более-менее божеском, форматированном виде, но *.doc запрещен администратором + хотел выложить уже скачанные файлы для установки Virtualmin, но ограничение на размер файла (1mb) не дало мне этого сделать :( А вообще такое имеется и если будет возможность - выложу.
А упаковать в zip что мешает? А если файл больше 1мб, то WinRar прекрасно умеет шинковать свои архивы на произвольный размер частей.
И выделяйте свои свитки тегами Code, пожалуйста. Пример ниже. Чувствуете разницу?
Код: Выделить всё
ХОСТИНГ НА 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
Всю информацию о портах можно найти здесь:
http://www.freebsd.org/ports/
 
УСТАНОВКА 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 в браузере набираем
https://your-domain.com:443/
Установка 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 в браузере набираем
https://your-domain.com:443/
В настройках 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 и другими сервисами не входящими в базовый набор: http://www.virtualmin.com/documentation/web
Установка поддержки 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 http://www.mysite.ru 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;
}
}
SinglWolf M
Администратор
Администратор
Аватара
Возраст: 43
Откуда: Башкирия
Репутация: 99 (+99/−0)
Лояльность: 27 (+30/−3)
Сообщения: 857
Темы: 55
Зарегистрирован: Пн, 23 января 2012
С нами: 2 года 9 месяцев

Re: Когда будет Идеальный сервер - FreeBSD X ??

#7 mini-server » Ср, 7 марта 2012, 8:56

Kujbor писал(а):
mini-server писал(а):+ к этому FreeBSD сложнее для понимания новичкам.
В действительности это совершенно не так. FreeBSD значительно проще и понятнее любого Linux-дистрибутива. Его преподают на перых курсах технических вузов в отличие от Linux. К тому же если действительно охото разобраться с матчастью а не просто сделать механически что написано то FreeBSD идеальный, канонический можно сказать вариант.

mini-server писал(а):Если Вы сможете предложить более простые и легкие пути решения в использовании этой замечательной ОС, мы выслушаем Ваши предложения.
Более простые и легкие по сравнению с чем?
Вы так все просто описываете, а для примере предложите новичку установить Ubuntu, FreeBSD, вот так просто с диска на "машину". И все вышесказанное отпадет само собой.
Забыл вчера кота покормить. Утром просыпаюсь, чем-то гремит на кухне... наверное готовит...
mini-server M
Администратор
Администратор
Аватара
Возраст: 28
Откуда: г. Москва
Репутация: 16 (+16/−0)
Лояльность: 15 (+15/−0)
Сообщения: 1286
Темы: 57
Зарегистрирован: Пн, 12 июля 2010
С нами: 4 года 3 месяца

Re: Когда будет Идеальный сервер - FreeBSD X ??

#8 mini-server » Ср, 7 марта 2012, 9:06

SinglWolf писал(а):
Kujbor писал(а):[...]
В аттаче хотел выложить тот же текст но в более-менее божеском, форматированном виде, но *.doc запрещен администратором + хотел выложить уже скачанные файлы для установки Virtualmin, но ограничение на размер файла (1mb) не дало мне этого сделать :( А вообще такое имеется и если будет возможность - выложу.
А упаковать в zip что мешает? А если файл больше 1мб, то WinRar прекрасно умеет шинковать свои архивы на произвольный размер частей.
И выделяйте свои свитки тегами Code, пожалуйста. Пример ниже. Чувствуете разницу?
[...]
  1. Я давно советую использовать бесплатный архиватор 7Zip (мощный, простой и бесплатный)
  2. Неужели ограничения в 1 МБайт такие жесткие и их не хватает?
  3. В идеале надо бы весь текст отформатировать что бы читаемый был.
Забыл вчера кота покормить. Утром просыпаюсь, чем-то гремит на кухне... наверное готовит...
mini-server M
Администратор
Администратор
Аватара
Возраст: 28
Откуда: г. Москва
Репутация: 16 (+16/−0)
Лояльность: 15 (+15/−0)
Сообщения: 1286
Темы: 57
Зарегистрирован: Пн, 12 июля 2010
С нами: 4 года 3 месяца

Re: Когда будет Идеальный сервер - FreeBSD X ??

#9 Kujbor » Ср, 7 марта 2012, 22:27

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

По поводу размера вложений да, модуль Virtualmin весит полтора метра, тема для виртуалмина 2,5. В 1 мб не влезли)) В общем-то кто захочет найдет. Файлы называются virtual-server-3.902.gpl.wbm.gz и virtual-server-theme-8.2.wbt.gz.

В Code не засунул специально - лично мне проще прокручивать всю страницу целиком, нежели рассматривать огромный объект словно через замочную скважину. Думаю что не только мне. :)

А по поводу сложности - установить FreeBSD действительно очень просто. Во всяком случае 9ю версию. Различия по сравнению с установкой той же убунты по сути в цвете интерфейса и последовательности шагов. Больше разницы никакой нет. Вы видимо сравниваете с предыдущими версиями FreeBSD, которые ставились через команды shell, но теперь такого нет. Фряха фактически стала попсой. Теперь ее могут поднять даже школьники))

В аттаче сунул более-менее форматированный вариант мануала по установке в doc формате.

Начинающим дам важную подсказку, которую сам не имел когда начинал и потому долго мучился разбираясь что к чему. Во FreeBSD все приложения ставятся из портов. Порт это некий объем информации об исходных кодах программы. Порт хранится локально, в коллекции портов. Что бы установить программу вам нужно перейти в папку этого порта (например "cd /usr/ports/databases/mysql/" или "cd /usr/ports/lang/php5/) и затем вызвать программу make с параметрами install и clean. После этого установщик скачает исходные коды программы, скомпилирует ее с учетом всех особенностей вашей системы, не добавляя ничего лишнего, и после этого установит программу. Такой подход затягивает процесс установки, т.к. необходимо выбирать опции компилирования да и вообще ждать дополнительное время. Однако, пакеты перед установкой компилируются с учетом всех особенностей системы, и получаются оптимизированными конкретно под вашу конфигурацию. Это позволяет использовать ресурсы системы более качественно. Кроме того при компиляции можно указывать дополнительные опции, компилируя программу именно так нужно вам. В то время как обычный пакет использует лишь стандартные опции и тем самым отбирает системные ресурсы под то, что вам возможно совершенно не нужно, одновременно не предоставляя того функционала который мог бы быть, но не был скомпилирован. Вы конечно можете ставить программы из пакетов как это принято по умолчанию в linux, мало того, именно во freebsd есть эмуляция debian и таким образом фряха поддерживает любые программы написанные под debian и всех его потомков. Однако я настоятельно рекомендую использовать порты. Благо использовать их легко и удобно. Пример команды для установки NginX:

Код: Выделить всё
# cd /usr/ports/www/nginx ; make install clean

Перешли в каталог порта, запустили компиляцию и установку - легко и просто. Более того, для совсем топорных новичков имеется возможность установить стандартный рабочий стол. Сам не ставил, но вроде можно любой. Смешно но факт: десктопная фряха - обычное дело))
Вложения
Хостинг на FreeBSD 9.zip
(144.64 КБ) Скачиваний: 902
Kujbor
Аватара
Возраст: 27
Репутация: 0 (+0/−0)
Лояльность: 0 (+0/−0)
Сообщения: 40
Темы: 2
Зарегистрирован: Пт, 24 февраля 2012
С нами: 2 года 8 месяцев

Re: Когда будет Идеальный сервер - FreeBSD X ??

#10 mini-server » Чт, 8 марта 2012, 8:35

Сейчас пока времени нету, постараюсь в течении 2 недель по тестировать FreeBSD. И вашу инструкцию на предмет "идеальности сервера" :-)
Использование OS конечно же сугубо индивидуальное дело и для себя я выбрал Debian, CentOS и Ubuntu как основные, но потестить другие OS нам нечего не мешает!
Забыл вчера кота покормить. Утром просыпаюсь, чем-то гремит на кухне... наверное готовит...
mini-server M
Администратор
Администратор
Аватара
Возраст: 28
Откуда: г. Москва
Репутация: 16 (+16/−0)
Лояльность: 15 (+15/−0)
Сообщения: 1286
Темы: 57
Зарегистрирован: Пн, 12 июля 2010
С нами: 4 года 3 месяца

Re: Когда будет Идеальный сервер - FreeBSD X ??

#11 Kujbor » Чт, 8 марта 2012, 12:40

Если по моему мануалу ставить будете то выйдет как раз далеко не идеально. Но работать будет. Я вас уверяю вы в влюбитесь во FreeBSD 9.0 =))
Kujbor
Аватара
Возраст: 27
Репутация: 0 (+0/−0)
Лояльность: 0 (+0/−0)
Сообщения: 40
Темы: 2
Зарегистрирован: Пт, 24 февраля 2012
С нами: 2 года 8 месяцев

Re: Когда будет Идеальный сервер - FreeBSD X ??

#12 mini-server » Пт, 9 марта 2012, 9:19

Kujbor писал(а):Если по моему мануалу ставить будете то выйдет как раз далеко не идеально. Но работать будет. Я вас уверяю вы в влюбитесь во FreeBSD 9.0 =))
Не подскажите где качать желательно torrent.
Забыл вчера кота покормить. Утром просыпаюсь, чем-то гремит на кухне... наверное готовит...
mini-server M
Администратор
Администратор
Аватара
Возраст: 28
Откуда: г. Москва
Репутация: 16 (+16/−0)
Лояльность: 15 (+15/−0)
Сообщения: 1286
Темы: 57
Зарегистрирован: Пн, 12 июля 2010
С нами: 4 года 3 месяца

Re: Когда будет Идеальный сервер - FreeBSD X ??

#13 Kujbor » Пт, 9 марта 2012, 15:54

По поводу торрентов не знаю, не доверяю тому что там выкладывают, а это офф сайт: http://www.ru.freebsd.org/ru/where.html
Kujbor
Аватара
Возраст: 27
Репутация: 0 (+0/−0)
Лояльность: 0 (+0/−0)
Сообщения: 40
Темы: 2
Зарегистрирован: Пт, 24 февраля 2012
С нами: 2 года 8 месяцев

Re: Когда будет Идеальный сервер - FreeBSD X ??

#14 Kujbor » Пн, 12 марта 2012, 5:07

случайно наткнулся на статью http://www.mini-server.ru/faq/os/182-freebsd-server
а ось на сайте совершенно не представлена... это как? Оо
Kujbor
Аватара
Возраст: 27
Репутация: 0 (+0/−0)
Лояльность: 0 (+0/−0)
Сообщения: 40
Темы: 2
Зарегистрирован: Пт, 24 февраля 2012
С нами: 2 года 8 месяцев

Re: Когда будет Идеальный сервер - FreeBSD X ??

#15 mini-server » Пн, 12 марта 2012, 12:03

Kujbor писал(а):случайно наткнулся на статью http://www.mini-server.ru/faq/os/182-freebsd-server
а ось на сайте совершенно не представлена... это как? Оо
freebsd - вот так!
лично ей не занимался, посидел потупил и бросил, остановился на Linux. Уважаемый Kujbor если у Вас имеется желание, Вы могли бы опубликовать несколько неплохих статей для привлечения народа в этом направлении!
Забыл вчера кота покормить. Утром просыпаюсь, чем-то гремит на кухне... наверное готовит...
mini-server M
Администратор
Администратор
Аватара
Возраст: 28
Откуда: г. Москва
Репутация: 16 (+16/−0)
Лояльность: 15 (+15/−0)
Сообщения: 1286
Темы: 57
Зарегистрирован: Пн, 12 июля 2010
С нами: 4 года 3 месяца

Re: Когда будет Идеальный сервер - FreeBSD X ??

#16 Kujbor » Пн, 12 марта 2012, 19:33

Мне просто показалось странным что написано "Я остановился на полноценной серверной ОС - FreeBSD", а идеального сервера на ней нет. Я все же хочу собирать сервер на FreeBSD нежели на Linux, но у меня выходит хреново - чем мог поделился. Вот, стараюсь подтолкнуть к этому еще кого-то дабы совместными силами одолеть ее =)
Kujbor
Аватара
Возраст: 27
Репутация: 0 (+0/−0)
Лояльность: 0 (+0/−0)
Сообщения: 40
Темы: 2
Зарегистрирован: Пт, 24 февраля 2012
С нами: 2 года 8 месяцев

Re: Когда будет Идеальный сервер - FreeBSD X ??

#17 censured » Вт, 21 августа 2012, 5:13

Kujbor писал(а):После этого обязательно нужно создать нового пользователя, так как у пользователя root по умолчанию нет удаленного доступа, и по ssh подключаться будет некому.
Большое вам спасибо, я уж отчаялся, сначала долго не мог разобраться с сетью. Делал на работе на виртуальной машине тут возникли свои сложности по причине "чужой" не домашней сети, но я с ними справился)) И потом очень долго не мог допереть почему меня не пускает по ssh уже все конфиги вручную вводил :-)

Вообще вот что нашёл, но почему то php5-fpm оттуда не ставится:

Bad autotool stanza: autoconf:262 погуглил пишут что надо в makefile заменить: autoconf:262
на autoconf libtool но и это не помогает, хорошо, что хоть на виртуалке можно делать снимки системы, а то я бы офигел столько переустанавливать :-D
censured
Репутация: 0 (+0/−0)
Лояльность: 0 (+0/−0)
Сообщения: 7
Зарегистрирован: Пн, 9 января 2012
С нами: 2 года 9 месяцев

#18 killer67 » Вт, 11 февраля 2014, 15:22

Как долго все обсуждалось, сижу читаю и плачу )))

Теперь к делу:
FreeBSD не самая простая система, т.к. надо знать и понимать что ставить, где искать, и как искать.
По мимо того нужно правильно установить саму ось с самого начала.

Итак, теперь подробней:
Сам юзаю 5 серверов на основе FreeBSD из них:
1. 2 сборки (уже готовые сервера)
2. 2 сам ставил и настраивал
3. 1 тестовый

1. В качестве сборок юзаю:
- ИКС (Интернет контроль сервера) ввиду ее бесплатности, функциональности и тех поддержка помогает удаленно если нужно. (очень советую для новичков, все на русском)
- FreeNAS (хранилка / файлопомойка / бакап сервер и т.п.) использую т.к. давно уже всеми все настроено, остается только включить что необходимо

2. Сам ставил сервера:
- web сервер, в установке элементарен ставим просто сборку apache+php+mysql читаем мануал, ручками конфигурим и готов webсервер, он же может использоваться как хостинг сервер (если на такой сборке то ограничен возможностями, но все же возможен за счет virtual host встроенного в апач)

- BD сервер, Сервер баз данных был самым простым установка состояла просто из установки MySQL управлялась из локальной сети любым админом (MySQL administrator, phpmyadmin, webmin)

- Шлюз, Интернет приходит по L2TP поверх DHCP итого, необходимо было организовать такое подключение + передать интернет на все ПК в сети. Организация была элементарной (безконтрольный траффик) MPD5 в качестве подключения по L2TP + gateway_enable="YES" в rc.conf 2 сетевые карты и т.п.

- почта+mysql, Долго пришлось покапаться по интернету но все оказалось довольно просто, EXIM + DOVECOT + MySQL и готов рабочий почтовый сервер, с учетками и квотами в MySQL

- ftp сервер Proftpd - довольно прост если покапаться в интернете, proftpd + mysql для настройки пользователей

- 3 игровых сервера (minecraft, gta-sa, gta4) тут все сложнее minecraft просил поставить JAVA для своего запуска а GTA просили поставить эмулятор Linux т.к. под FreeBSD не портировано.

Итог всего вышеизложенного:
1. Вэб сервер + почта + фтп + шлюз = один сервер
2. БД, NFS для ФТП, NFS для вэбсервера (файлообменник) = второй сервер

1 + 1 = 2 в сумме идеальный сервер (БД и все остальные функции можно возложить на первый сервер только винты воткнуть побольше и все)

Финал обсуждения является то к чему стремился ТС.

итого 2 сервер по 2 Gb ОЗУ, и та не загружается даже на 50%
панель управления SSH + webmin - меняем порты и радуемся серверам с низкой потребностью к железкам и высокой производительностью, теперь другая задача расширить канал интернета, но это уже и другая тема.

PS. Если вопрос еще актуален + есть какие то вопросы с удовольствием помогу. Да и не забываем, что данное направление требует творчества, а значит если у кого то есть какие то замечательные идеи но нет возможности в реализации, с радостью выслушаю возможно сможем запустить какой то совместный проект ;)
killer67 M
Возраст: 28
Откуда: Смоленск
Репутация: 0 (+0/−0)
Лояльность: 0 (+0/−0)
Сообщения: 1
Зарегистрирован: Вт, 11 февраля 2014
С нами: 8 месяцев 14 дней


Вернуться в Идеальный сервер ...

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость