Поднимаем FreeBSD + Nginx + Spawn-fcgi + PHP + Mysql + Webmin
Устанавливаем FreeBSD и выполняем настройку команды sysinstall. Установку выбираем: Minimal, Custom – base, kernels, man, ports, src – base, etc, bin, sbin, share, sys. После установки FreeBsd устанавливаем соединение с интернетом. Перед установкой программ из потов требуется обновить порты командой portsnap fetch extract. Если вы не настраиваете сервер с нуля, то перед тем как устанавливать, или настраивать данную систему посмотрите в каталоге /var/db/ports/, к примеру, /var/db/ports/mysql/option – какие компоненты были установлены в систему. После окончания процесса обновление портов, исправляем конфигурацию файла make.conf – файл отвечает за компиляцию и установку пакетов в систему.
Описание файла make.conf
DOC_LANG=en_US.ISO8859-1 ru_RU.KOI8-R WITHOUT_X11=YES WITHOUT_GAMES=YES WITHOUT_INET6=YES WITHOUT_IPV6=YES WITHOUT_FONTCONFIG=YES WITHOUT_PROFILE=YES
Сохраняем наш файл make.conf перезапускаем ПК. Далее устанавливаем нужные пакеты для работы из сети, из портов слишком много лишнего устанавливается. Устанавливаем следующие пакеты:
pkg_add –r perl, glib20, mc, openssl
Русификация консоли. Редактируем файл /etc/rc.conf:
keymap=ru.koi8-r
scrnmap=koi8-r2cp866
font8x16=cp866b-8x16
font8x14=cp866-8x14
font8x8=cp866-8x8
Далее редактируем файл ee /etc/login.conf:
russian:Russian Users Accounts:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:\
:tc=default:Делаем русификацию для конкретного пользователя, редактируем файл e /etc/passwd:
bjjzp:*:1001:0:russian:bjjzp:/home/bjjzp:/bin/sh.
Осталось отредактировать два файла это profile и csh.login в каталоге /etc. В файле profile добавляем следующие строки:
LANG=ru_RU.KOI8-R; LC_ALL= ru_RU.KOI8-R; MM_CHARSET=KOI8-R; А в файле csh.login: setenv LANG ru_RU.KOI8-R setenv MM_CHARSET KOI8-R
Русификацию консольной строки сделали, поле перезагрузки системы, ваш пользователь увидит русские буквы. Так же можно выполнить команду pw usermod bjjzp –L russian, для русификации пользователя.
Установка Sudo
Устанавливаем sudo, для получения прав root, к примеру если использовать графическую оболочку. Устанавливаем из портов /usr/ports/security/sudo, после установки правим файл ee /usr/local/etc/sudoers:
root ALL=(ALL) ALL
Сохраняем, перезапускаем, систему проверяем, как работает, заходим под обычным пользователем и запускаем команду su и вводим пароль root’a.
Установка MySQL
После каждого установленного пакета обновляем данные в системе rehash. Начинаем устанавливать ПО чтобы поднять сервер: MySQL, Nginx, PHP, Spawn-fcgi. Начинаем установку MySQL. Переходим в порт где лежит сервер СУБД: cd /usr/ports/databases/mysql51-server. Перед установкой делаем оптимизацию и первоначальную настройку mysql:
setenv BUILD_OPTIMIZED yes setenv WITH_OPENSSL yes setenv WITH_CHARSET utf8 setenv WITH_COLLATION utf8_general_ci make install rehash
В зависимости какой пакет устанавливаете в систему, в систему поставим еще mysql51_scripts, путь к пакету cd /usr/ports/databases/mysql51-scripts/. Как только пакет mysql установиться в систему, обновляем данные прописываем в файл rc.conf, директиву для автоматической загрузки mysql. Редактируем файл rc.conf, по умолчанию использую редактор ee:
/etc/rc.conf: mysql_enable=”YES”
Перед запуском mysql, нужно создать конфигурационный файл.
cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf
После выполнение данной команды, файл конфигурации сервера будет в каталоге etc, редактируем его. В файле my.cnf, находим
директиву [mysqld] и добавляем следующие строки:
log = /var/log/mysql.log – лог файл нашего сервера. bind-address = 127.0.0.1 – наш сервер будет не доступен из вне. datadir = /public_www/mysql_db – путь к каталогу баз данных
Если после запуска нашего сервера каталог баз данных не изменился /var/db/mysql, тогда идем пишем следующее ee /usr/local/etc/rc.d/mysql-server находим строку mysql_dbdir и записываем новый каталог, только для начала создадим его /public_www/mysql_db. Далее нам нужно создать файл mysql.log для записи информации как работает наш сервер СУБД. Для создания лог-файл используем команду touch, touch /var/log/mysql.log, далле меняем пользователя и группу пользователя. Т.к., мы создавали файл под пользователям root, меняем пользователя и группу для лог-файла, chown mysql:mysql /var/log/mysql.log, все готово. Запускаем наш сервер СУБД: /usr/local/etc/rc.d/mysql-server start. Загружаем mc переходим в каталог /var/log/mysql.log, выбираем view и смотрим файл. Если нет слов error в лог-файле сервера значит все нормально, сервер СУБД работает. Переходим к настройке безопасности сервера СУБД, выполняем следующую команду /usr/local/bin/mysql_secure_installation, данная команда предлагает сделать следующие действия: установить пароль на пользователя root, удалить анонимных пользователей, запретить вход под пользователем root удаленно, далее предлагает удалить созданную базу данных test и выполнять перезагрузку привилегий базы данных.
Установка PHP и расширений PHP
Далее устанавливаем PHP переходим в порты данного языка под консолью или с помощью mc, cd /usr/ports/lang/php5, выполняем команду make install. Выбираем следующие компоненты языка PHP: CLI, CGI, Suhosin, Multibyte. Устанавливаем расширения для PHP, cd /usr/ports/lang/php5-extensions, выбираем следующие расширения данного языка: cype, curl, dom, gd, gettext, imap, mbstring, mcrypt, mysql, mysqli, pcre, posix, session, simplexml, xml, xmlreader, xmlwriter, zlib, fileinfo. После установки PHP и расширений PHP, меняем расширение у конфигурационного файла php.ini:
cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
PHP установлен и готов к работе.
Установка Nginx + Spawn-fcgi
Осталось установить сам веб-сервер для работы нашего сервера. Nginx по отдельности не работает ему нужен CGI, я выбрал Spawn-fcg т.к., он мне более интересен. Nginx и Spawn-fcgi, находится в одной директории переходим и устанавливаем cd /usr/ports/www/. Устанавливаем Nginx выбираем следующие модули: HTTP_MODULE, HTTP_ADDITION_MODULE, HTTP_DAV_MODULE, HTTP_FLV_MODULE, HTTP_PERL_MODULE, HTTP_REALIP_MODULE, HTTP_REWRITE_MODULE, HTTP_SSL_MODULE, HTTP_STATUS_MODULE, HTTP_SUB_MODULE, WWW. Nginx установили, переходим к установке Spawn-fcgi, переходим в директорию cd /usr/ports/www/spawn-fcgi – запускаем на установку. Установка почти закончена, остается только добавить для загрузки Nginx + Spawn-fcgi в файл rc.conf следующее:
nginx_enable=”YES” spawn_fcgi_enable=”YES”
Вводим следующие команды для запуска Nginx + Spawn-fcgi и получаем связку Nginx + Spawn-fcgi + PHP, остается создать файл с расширением php.
/usr/local/etc/rc.d/nginx start /usr/local/etc/rc.d/spawn-fcgi start
Далее запускаем броазер который установлен в системе, у меня lynx, вводим http://localhost - т.к., у нас настрое пока сервер на локальный ip-адрес. Первичная настройка готова, настроем nginx и конфигурацию virtual host. Подправляем конфигурацию
ngixn.conf:
user nobody;
worker_processes 2;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 64;
log_format main '$remote_addr - $remote_user [$time_local] request'
'$status $body_bytes_sent $http_referer'
'$http_user_agent $http_x_forwarded_for"'; access_log logs/access.log main;
sendfile on;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_min_length 255;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
include site/*.conf;
}Создаем каталог в котором у нас будут файлы наших виртуальных хостов. mkdir /usr/local/etc/nginx/vhosts, создаем файл с первой виртуальной конфигурацией test.ru.conf. Конфигурация 1-го виртуального хоста, test.ru.conf:
server {
listen 127.0.0.1;
server_name «test.ru»;
location / {
index index.php;
root /usr/local/www/test.ru/;
}
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/www/test.ru/$fastcgi_script_name;
include fastcgi_params;
}
}Установка Webmin
Webmin – данное ПО позволяет управлять сервером через веб-интерфейс, к примеру открываем броазер вводим адрес https://127.0.0.1:1607, загружается страница с аутентификацией, проходим ее и настраиваем сервер. Переходим к настройке Webmin. Устанавливаем из портов cd /usr/ports/sysutils/webmin, после установки запускаем скрипт с настройкой /usr/local/lib/webmin/setup.sh, перед этим добавь в rc.conf строчку webmin_enable=”YES”. Скрипт Webmin начинает спрашивать в процессе установки такие вопросы: у кажите директорию лог-файл и выводит пути по умолчанию, директорию где установлен perl, введите веб порт – вводим порт, имя админа, введите пароль, подключение SSL и все настройка готова. Если устанавливаете все по умолчанию то логин будет admin, а веб-борт 10000. Для запуска без перезагрузки ПК, вводим команду /usr/local/etc/rc.d/webmin start, теперб проверяем настройку сети и в броазере на другом Пк вводим адрес нашего сервера.
Установка Proftpd
Proftpd – ПО для создания ftp сервера на вашей системе. Устанавливаем proftpd из портов cd /usr/ports/ftp/proftd. У нас этим каталогом будет public_www, в который мы будем заходить при подключении по ftp. Копирование данных по ftp в каталоги mysql_db(каталог, где хранятся базы данных) и site(каталог, где у нас хранятся сайты), даем права доступа к каталогам 777, chmod 777 /public_www/mysql_db. Переходим к редактированию конфигурационному файлу ee /usr/local/etc/proftpd.conf:
ServerName “Ftp web.pl” ServerType standalone DefaultServer on ScoreboardFile /var/run/proftpd/proftpd.scoreboard Port 21 Umask 022 MaxInstances 30 CommandBufferSize 1024 User nobody Group nogroup DefaultRoot /public_www/ AllowOverwrite
Сохраняем и запускаем наш ftp сервер /usr/local/etc/rc.d/proftpd start.
Установка графической оболочки KDE
Первый способ:
Перед тем как устанавливать графическую оболочку kde, устанавливаем и конфигурируем Window X – xorg и kde. После установки делаем следующее, пишем в командной строке:
Xorg –configure cp xorg.conf.new /etc/X11/xorg.conf Переходим к файлу ee /etc/rc.conf: hald_enable=”YES” dbus_enable=”YES” usbd_enable=”YES” kdm4_enable=”YES”
Далее в командной строке пишем следующее echo “exec /usr/local/kde4/bin/startkde” > ~/.xinitrc, редактируем файл ee /etc/ttys, находим строчку ttyv8 исправляем ее «/usr/local/kde4/bin/kdm -nodaemon» xterm off secure, для автоматической загрузки kde устанавливаем значение xterm on secure.
Второй способ:
Так же устанавливаем Window X – xorg и kde. Только не конфигурируем xorg. Переходим к файлу ee /etc/rc.conf:
hald_enable=”YES” usbd_enable=”YES” kdm4_enable=”YES”
Перезапускаем систему и мы в kde.
Если у компьютера есть колонки то можно настроить звуковую карту, для этого надо отредактировать файл ee /boot/defaults/loader.conf, находим следующую строку «Sound modules». В файле loader.conf – можно настроить персональную конфигурацию вашего компьютера, комментирую строки с не нужными драйверами. После загрузки kde можно будет послушать музыку, если автоматическая загрузка kde не установлена, то после авторизации пишем startx. Так же можно русифицировать kde, переходим в каталог cd /usr/ports/russian/kde4-l10n/, устанавливаем, перезапускаем систему.
Автор: Плахов Евгений
email:
Date: 27.10.2011
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 1643 просмотра



Комментарии
5 комментария(ев)Дата: ЧТ, 27/10/2011 - 07:16
Молодца. Отличный мануал. Писал статью, одновременно проделывая всю настройку?
Кстати, ещё: тебе огромный плюс за изложение материала. Даже править ничего не надо =)
Дата: ЧТ, 27/10/2011 - 15:01
Lord_of_fear
Не, брат с начало настройку и проверку делал. Далее начал писать.
Дата: Пнд, 05/12/2011 - 17:23
В файле nginx.conf замените предпоследнюю строчку
include site/*.conf;на
include vhosts/*.conf;Спасибо за статью
Дата: Пнд, 05/12/2011 - 18:18
Еще бы написать, что для чего нужно, в какой роли используется, каковы возможности и какие есть альтернативы
Дата: Втр, 07/02/2012 - 21:02
to Belketre
Nginx - это HTTP-сервер и обратный прокси-сервер, есть выбор Apache, lighttpd, и т.д.. У меня задание было поднять легкий и шустрый сервер.
Spawn-fcgi - выполнения PHP скриптов, подружить Nginx и PHP, к примеру с FastCGI позволит одновременно работать с Apache и Nginx.
Webmin - web управление сервером из вне, если к примеру не устраивает SSH. - замены есть но не все бесплатные.
Glib20 - обеспечивает простой, абстрактный, портативный набор языка C процедуры, деревья, хэши, выделение памяти, и многое, многое больше.
Mc - файл менеджер.
Openssl - криптографический пакет с открытым исходным кодом для работы с SSL/TLS.