Предисловие. В данном руководстве попытаюсь описать подробную установку и настройку системы FreeBSD, некоторых программ и, конечно же, игрового сервера Metin2.
Версию операционной системы будем ставить последнюю – FreeBSD 10.2. Конечно, может кто-то предпочитает более ранние версии, но т.к. их официальная поддержка прекратилась, то было решено взять последний релиз системы.
Если Вы не знакомы с основами UNIX-подобных систем, то прежде чем устанавливать систему на компьютер – обзаведитесь еще одним компьютером для выхода в интернет. Иначе рискуете просто остаться без сети, т.к. настройка сетевых интерфейсов будет описана минимально. Поскольку интернет-провайдеров великое множество и для каждого из них описать настройку сети просто не реально. Так что Вам придется самим искать настройку сетевых интерфейсов для своего интернета. Как правило, на форуме провайдера – эти темы уже давно хорошо разжеваны.
Руководство выйдет не малых размеров, поэтому наберитесь терпения.
Для начала идем на официальный сайт FreeBSD - http://www.freebsd.org/ru/where.html и скачиваем подходящую для себя версию системы. Но прежде чем скачать дистрибутив обязательно прочтите – аппаратные требования http://www.freebsd.org/doc....re.html и уже в зависимости от своего компьютера выбирайте подходящий вам релиз.
Скачиваем iso-образ с окончанием -disc1.iso или -dvd1.iso, записываем на диск и загружаем с него Ваш компьютер. Про названия ISO-образов дисков FreeBSD и их значения – можете почитать тут http://www.freebsd.org/doc....ia.html
Хочу заметить что в FreeBSD 10 больше нет sysinstall, вместо него теперь bsdinstall и bsdconfig. Так же команды pkg_add или pkg_info теперь выглядят как pkg install и pkg info. Признаюсь, когда ставил систему изменения этих команд, завело меня в тупик. Очень удивился, когда система мне выдала sysinstall: Command not found и pkg_add: Command not found.
И так. Начнем установку.
При загрузке встречаем главное меню установки, выбираем Install :
Дальше идет выбор раскладки, оставляем первое значение по-умолчанию:
Далее указываем имя хоста для устанавливаемой системы. Имя хоста должно быть полным, например: example.com или name.example.com. Вообщем минимум 2 слова, разделенные между собой точкой. Я назвал skully.local
Теперь предстоит выбрать состав установки. Можно ничего не выбирать, а все, что нужно, поставить потом отдельно. Я выберу lib32 – библиотеки для запуска 32-битных приложений, т.к. у меня 64-битная версия FreeBSD и src – исходные коды системы. Обычно многие ставят ports -коллекцию портов FreeBSD, но я этого делать не буду, т.к. после первого запуска произведем полное обновление этих портов до последних версий.
Примечание. Пункт lib32 может отсутствовать, если вы ставите 32битную FreeBSD
На следующем этапе нам нужно выбрать, как разбивать жесткий диск. Обычно это самая трудная и не понятная новичкам процедура. Мы не будем вдаваться в подробности этого процесса, выберем самый простой — автоматическая разбивка всего диска, 1-й пункт:
Указываем, что хотим использовать весь диск:
Схему разбиения так же оставляем по-умолчанию – GPT:
Далее нам требуется разбить жесткий диск на разделы, я оставлю значения предлагаемые по-умолчанию. Если же Вы хотите разделить жесткий диск по своему то прочтите - http://www.freebsd.org/doc....ng.html Выбираем Finish:
Следующий шаг - ваш последний шанс прервать установку и предотвратить изменение данных на жестком диске. Для продолжения установки системы выбираем Commit:
Дальше начинается автоматический процесс разбивки диска и установки Freebsd 10.
Дожидаемся его окончания, которое будет обозначено предложением задать пароль root. Во время ввода пароля набираемые символы не отображаются на экране. После ввода будет запрошен повторный ввод пароля.
Далее будут отображены все сетевые интерфейсы, найденные на компьютере. Выбираем сетевую карту, которая смотрит в интернет:
Дальше нам предлагают ввести настройки IPv4 для этого интерфейса, соглашаемся:
У меня настройки приходят по DHCP, поэтому на следующем шаге я соглашаюсь с тем, что принимаю настройки по DHCP. Если у Вас настройки требуется вводить в ручную то выбирайте No.
И указываем необходимые настройки.
IP Address - адрес IPv4, который должен быть установлен на этом компьютере. Этот адрес должен быть уникальным и не должен использоваться другим оборудованием в локальной сети.
Subnet Mask - маска, используемая в локальной сети. Часто маска имеет значение 255.255.255.0.
Default Router - IP адрес маршрутизатора\роутера для этого подключения. Обычно этот адрес установлен на маршрутизаторе или ином сетевом оборудовании, которое соединяет локальную сеть с сетью Интернет. Также известен, как шлюз по умолчанию (default gateway). Если Ваш компьютер подключен напрямую к интернету, то это настройка вам не понадобится
Следующим шагом предлагается настроить IPv6. Нам это не нужно, отказываемся:
Далее идет настройка DNS-сервера. Если при настройке сети использовалось автоматическое конфигурирование DHCP, то информация о DNS-серверах может уже присутствовать. Если же настройки делались вручную, то надо указать как минимум одно значение. Если у вас дома стоит роутер то скорее всего это ip-адрес, который указывался в Default Router при настройке сетевой карты. Поэтому указываем адрес – 192.168.1.1 (смотрите выше настройку сетевого интерфейса). Внимание! Адрес Default Router и DNS-сервера могут не совпадать!
Далее нас спрашивают, установлены ли часы системы в соответствии с гринвичем, или нет. У меня нет, время стоит в соответствии с моим часовым поясом, поэтому выбираю No:
Потом уже выбираю свою временную зону. Показывать не буду, там и так все просто и понятно. После выбора часового пояса, нужно указать, какие службы будут запущены. Подробное описание этих служб можно увидеть тут - http://www.freebsd.org/doc....st.html Мне лично пригодятся ssh, moused и dumpdev:
Затем нам предложат добавить пользователей к системе. Если Вы не хотите пока добавлять нового пользователя - отказывайтесь от операции и приступайте к следующему шагу. Я же добавлю пользователя, поэтому выбираю Yes:
Вводим информацию о пользователе:
Username - Имя, которое будет набирать пользователь для входа в систему. Часто оно формируется из объединенных вместе первой буквы имени и фамилии
Full name - Полное имя пользователя.
Uid - Идентификатор пользователя. Обычно это поле не заполняется, система сама присвоит ему значение.
Login group - Имя группы для этого пользователя. Обычно это поле также не заполняется, система поставит значение по умолчанию.
Invite user into other groups? - Перечень групп, в которые будет внесен пользователь. Чтобы пользователь смог подключаться под root – добавим его в группу wheel
Login class - Обычно оставляется пустым для принятия значения по умолчанию.
Shell - Интерактивная оболочка для этого пользователя. В данном примере была выбрана оболочка csh.
Home directory - Домашний каталог пользователя. Как правило, значение по умолчанию является корректным.
Home directory permissions - Права на домашний каталог пользователя. Значение по умолчанию является корректным в большинстве случаев.
Use password-based authentication? - Обычно "yes".
Use an empty password? - Обычно "no".
Use a random password? - Обычно "no".
Enter password - Пароль для этого пользователя. Набираемые символы не отображаются на экране.
Enter password again - Пароль необходимо ввести еще раз (для сверки).
Lock out the account after creation? - Обычно "no".
После заполнения необходимых полей будет отображен итог и система переспросит, корректны ли введённые данные. Если во время ввода информации была допущена ошибка, то необходимо ответить no и ввести данные еще раз. Если вас всё устраивает, выберите yes для создания новой учетной записи пользователя:
Ответьте yes на вопрос "Add another user?" если необходимо добавить другие учетные записи. Для завершения добавления пользователей и продолжения послеустановочной настройки выберите no.
На этом установка закончена. Мы оказываемся в меню установщика, где можем внести еще какие-то изменения в установку. Но нам это не нужно. Выбираем Exit и жмем Ok:
Далее появится предложение вручную внести изменения в систему. Отказываемся No и переходим к вопросу о перезагрузки или загрузки с Live CD. Выбираем Reboot. Не забудьте извлечь установочный диск из привода, иначе компьютер может снова с него загрузиться.
Коллекция Портов FreeBSD даёт пользователям и администраторам простой метод установки приложений. В коллекции доступно более 20000 программ.
Теперь подготовим нашу систему к установке программ. Обновим дерево портов с помощью утилиты portsnap. При первом запуске используем команду:
Код
portsnap fetch extract
Утилита скачает и распакует порты в папку /usr/ports. Процесс может занять довольно много времени, так что наберитесь терпения. Последующее обновление будет производиться командой:
Код
portsnap fetch update
SSH - позволяет удаленно подключаться к вашему серверу, используя ssh-клиенты, например putty. Получая при этом полный доступ к машине, как было бы будь компьютер перед вами.
Для начала настроим sshd для удаленного подключения. Если вы не создавали нового пользователя, то подключится к серверу не получится. Т.к. у Вас только один пользователь root, а ему по-умолчанию запрещено подключаться через ssh. Выходит, у нас два пути, либо разрешить подключаться руту, либо добавить других пользователей. Сделаем и то, и другое. Сначало разрешим пользователю root подключаться по ssh. Для этого редактируем файл /etc/ssh/sshd_config. Открываем файл на редактирование:
Код
ee /etc/ssh/sshd_config
Найдем строчку PermitRootLogin, раскомментируем ее и ставим напротив yes. По-умолчанию там стоит no.
Так же рекомендую изменить стандартный порт ssh 22 на что-то более экзотическое. Чтобы роботы и другие пользователи интернета не пытались залогиниться на Ваш сервер. На 22 порт постоянно кто-то ломится с несуществующими учетками и подбирает пароли. Все это отражается в логах и может мешать. Сменив порт на нестандартный, мы частично избавляемся от этой проблемы. Ищем строчку со словом Port и меняем значение с 22, например, на 34122.
Сохраняем изменения и выходим из редактора - Esc - a - a. Теперь нам необходимо перезапустить sshd для принятия изменений. Воспользуемся для этого командой:
Код
/etc/rc.d/sshd restart
После перезагрузки sshd, можно пробовать подключаться по ssh, должно получится зайти под root.
Многие считают небезопасным подключаться удаленно под учетной записью рута. Это вопрос неоднозначный, все зависит от конкретной ситуации. Но всё же советую Вам пользоваться этим подключением на первом этапе настройке системы и в дальнейшем эту опцию отключить.
Поэтому нам понадобится еще один пользователь в системе. Если Вы создали пользователя при настройке системы, то этот шаг можно пропустить. Чтобы добавить пользователя в систему, воспользуемся командой
Хоть порты мы установили и обновили, установку MySQL будем производить из пакетов. Т.к. это займет намного меньше времени. Для этого вводим команду:
Код
pkg search mysql5
Если запуск команды pkg производится в системе первый раз, то мы увидем следующее сообщение:
Соглашаемся, введя Y и нажам Enter. После установки pkg, будет выполнена наша команда поиска пакетов в названии которых присутствует mysql5. Находим в списке желаемую версию mysql**-server и устанавливаем её. Я для себя ставлю версию 5.5.46. Устанавливаем её командой
Код
pkg install mysql55-server-5.5.46
Если вы выбрали другую версию, то вместо mysql55-server-5.5.46 укажите другое название пакета mysql-server из списка, который выдала команда pkg search
Начнется установка MySQL. Перед этим будет выведен список зависимостей, отмечено, сколько места все это займет. Со всем соглашаемся и начинаем установку
После установки приступаем к настроке MySQL: добавим информацию о запуске программы в rc.conf:
Код
ee /etc/rc.conf
mysql_dbdir="/usr/home/mysql" - изменяем папку для хранения баз данных. Папка может быть любой. Так же можно не указывать данный параметр, тогда будет использоваться папка по-умолчанию. mysql_enable="YES" - автоматический запуск MySQL при старте системы. Далее создаем нужную папку и устанавливаем на неё права доступа, а так же создаем файл конфигурации:
Код
cd /usr/home mkdir mysql chown mysql:mysql mysql touch /usr/home/mysql/my.cnf chown mysql:mysql /usr/home/mysql/my.cnf
После редактируем файл my.cnf примерно до следующего вида:
Закомментированные строки включаем на свое усмотрение в процессе отладки. Если будет включен лог всех SQL запросов, то нужно не забыть настроить ротацию логов, файл будет расти очень быстро, можно забыть и пропустить момент, когда файл займет все свободное место.
Если вы заметили, то в конфиге лог файлы имеют свою папку. Можно указать любую папку. Лог файлы нужно обязательно создать самим и выставить на них права пользователя mysql. Если этого не сделать, то сервер не будет стартовать, и что самое неприятное, не будет никаких сообщений в лог файлах. Они будут созданы с правами root:wheel и сервер ничего туда не сможет записать. Так что создаем файлы сами:
Если все в порядке, то вы увидите что-то похожее на это:
Дальше воспользуемся стандартным скриптом для безопасной настройки mysql:
Код
/usr/local/bin/mysql_secure_installation
Задаем пароль root пользователя mysql. Обращаю внимание, что это не системный root. В mysql свои пользователи. На остальные вопросы отвечаем положительно, в принципе, там все понятно описано, ничего сложного нет. Удаляется тестовая база, тестовый пользователь, запрещается удаленный доступ к серверу.
Если мы хотим, чтобы на нашем компьютере так же присутствовал сайт, то установим для этого веб-сервер apache. установку будем производить из пакетов. Вводим команду
Код
pkg search apache2
после поиска программ с похожим названием будет выведен их список, из этого списка выбираем нужную нам версию apache и устанавливаем её. Я поставлю последнюю версию - apache24-2.4.18
Код
pkg install apache24-2.4.18
соглашаемся на установку, после завершения установки добавляем apache в атозагрузку:
Код
echo 'apache24_enable="YES"' >> /etc/rc.conf
Создадим в удобном месте папку для нашего веб-сервера. например в /usr/home созданим папку apache, так же внутри этой папки создадим папку для файлов веб-сервера - data, папку для логов - log, и папку для временных файлов - tmp. Сразу же назначим владельца новых папок - наш веб-сервер apache, чтобы он мог стабильно работать. Итак:
Код
cd /usr/home mkdir apache cd apache mkdir data && mkdir log && mkdir tmp cd /usr/home chown -R www:www apache
Далее идем в папку /usr/local/etc/apache24 и открываем текстовым редактором файл httpd.conf в нем находим и редактируем под себя следующие переменные: ServerAdmin - адрес почты на который будут приходить ошибки о работе веб-сервера. Можно ничего не менять и оставить по-умолчанию ServerName - здесь укажем локальный адрес 127.0.0.1:80. вообще тут обычно указывается адрес вашего сайта, но мы в дальнейшем поставим еще один веб-сервер, поэтому указываем локальный адрес. чтобы к апачу не было доступа из вне. Позже объясню для чего это надо. DocumentRoot - тут указываем полный путь к папке где будут храниться файлы сайта. Как мы настроили выше это /usr/home/apache/data Directory "/usr/local/www/apache24/data" - указываем тот же путь что и в DocumentRoot. ErrorLog и CustomLog - так же изменяем путь на папку логов в соответствиями с нашими настройками выше. /usr/home/apache/log/httpd-error.log и /usr/home/apache/log/httpd-access.log Чтобы веб сервер На этом установка и предварительная настройка apache завершена, перейдем к установке PHP
Дальше устанавливаем php. Установку будем производить из портов. На момент написания этой темы в портах было 3 версии php это: php 5.4.45 - находится в папке php5 php 5.5.31 - находится в папке php55 php 5.6.17 - находится в папке php56 Я для себя выбираю php 5.4, т.к. использую форум vBulletin старой версии, а он на более новых версиях php работает некоректно. Но вы можете выбрать другую версию. Разницы в установки ни какой нет. Итак, устанавливаем php, оставляем настройки по-умолчанию:
Код
cd /usr/ports/lang/php5 make config-recursive make install clean
После устанавливаем расширения php, который нам смогут пригодиться:
Код
cd /usr/ports/lang/php5-extensions make config-recursive
Помимо настроек по-умолчанию, обязательно добавляем BZ2, IMAP, CURL, DOM, POSIX, FTP, GD, HASH, ICONV, XML, JSON, MBSTRING, MYSQL, MYSQLI, OPENSSL, SESSION, SOCKETS, TOKENIZER, XMLREADER, ZLIB, EXIF, GETTEXT, ZIP, ZLIB и начинаем установку командой make install clean. Теперь поставим модуль php для apache. Он теперь стал почему-то отдельным портом. Я не сразу первый раз сообразил, куда делся модуль, который всегда ставился вместе с портом php. В общем, ставим отдельно:
Код
cd /usr/ports/www/mod_php5 make install clean
Для того, чтобы apache правильно обрабатывал php файлы, необходимо в конфиг httpd.conf добавить следующие строки:
Теперь можно запустить apache и проверить, все ли у нас в порядке. Сначала проверим, нет ли у нас ошибок в конфигурации командой:
Код
apachectl -t
если всё впорядке apache выдаст Syntax OK и можно стартовать его
Код
/usr/local/etc/rc.d/apache24 start или apachectl start
Проверяем, все ли запустилось:
Код
ps ax | grep httpd 4424 - Ss 0:00.34 /usr/local/sbin/httpd -DNOHTTPACCEPT 4425 - I 0:00.76 /usr/local/sbin/httpd -DNOHTTPACCEPT 4426 - I 0:00.01 /usr/local/sbin/httpd -DNOHTTPACCEPT 4427 - I 0:00.01 /usr/local/sbin/httpd -DNOHTTPACCEPT 4428 - I 0:00.01 /usr/local/sbin/httpd -DNOHTTPACCEPT 4429 - I 0:00.10 /usr/local/sbin/httpd -DNOHTTPACCEPT
Если получаете что-то подобное, значит все в порядке. Сейчас можно в браузере набрать http://127.0.0.1/ и увидеть страничку с одной единственной надписью: It works!
Это означает, что веб сервер apache работает, все в порядке.
Nginx — простой, быстрый и надёжный сервер, не перегруженный функциями. Грубо говоря это намного урезанный apache. Nginx очень легкий и быстрый сервер, в отличии от apache, например для каждого пользователя apache запускает в системе отдельный процесс, а если таких пользователей много и каждый в своем браузере откроет по несколько оконо? то apache может запросто скушать все ресурсы вашего компьютера. А nginx обрабатывает все запросы в одном процессе. Поэтому эффективность вашего сервера будет повышена. Повышение эффективности достигается использованием легкого Web-сервера nginx, который принимает и обрабатывает все запросы от пользователей, оправляя Apache только необходимый минимум. Прямого доступа к web-серверу Apache пользователь не получает. Итак устанавливаем nginx:
В строке listen 123.456.78.90:80; указываем свой внешний ip адрес или адрес вашего домена. /usr/home/apache/log и /usr/home/apache/tmp эти пути изменяем на те что создавали при настройке apache, описанном выше. После проверяем настройки nginx:
Код
nginx -t
Если видим:
Код
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
значит все в порядке. Запускаем nginx:
Код
/usr/local/etc/rc.d/nginx start
Наш веб сервер готов. Теперь проверим его работу. Создадим в папке /usr/home/apache/data файл index.php с содержимым
Код
<?php phpinfo(); ?>
Заходим в браузере по адресу http://ваш_внешний_ip Если вы видите информацию о версии php и его модулях, значит все настроено и работает.
Скачать серверные файлы Содержание архива franzi.tar.gz: game.tar.gz - игровые файлы Метин2 mysql.tar.gz - базы данных lib.tar.gz - библиотеки необходимые для работы игровых файлов. (могут работать и без них если в вашей системе уже присутствуют нужные библиотеки.)
1. Содержимое архива mysql.tar.gz положить в папку баз данных сервера Mysql, по-умолчанию это /var/db/mysql , меняем владельца файлов и перезапускаем сервер Mysql:
Код
chown -R mysql:mysql /var/db/mysql service mysql-server restart
2. Поместить архив game.tar.gz в удобную для Вас папку, например /game/metin2/, распаковать командой tar -xf:
Код
cd /game/metin2 tar -xf game.tar.gz
3. В папках channel1, channel2, game99, auth редактируем файлы CONFIG изменяем в них следующие строки:
Код
PLAYER_SQL: localhost mt2 metin2 player COMMON_SQL: localhost mt2 metin2 common LOG_SQL: localhost mt2 metin2 log
Так же в папке db аналогичный файл с названием conf.txt:
А именно изменяем mt2 metin2, где mt2 - имя пользователя Mysql metin2 - пароль пользователя Mysql Подставляем на их место своего пользователя с паролем.
Если не изменить эти параметры, то к вашему серверу Mysql смогут подключиться другие люди используя эти стандартные логин и пароль, и как вариант испортить базы данных на вашем сервере. Поэтому создайте нового Mysql пользователя с сложным паролем, например используя генератор паролей в phpmyadmin. Советую создавать пользователя с ограниченными возможностями и доступам только на базы данных Метина. Названия баз данных совпадают с названием папок в архиве mysql.tar.gz
После всех эти действий можно пробовать запускать сервер Метина, для этого переходим в папку куда мы распаковали архив game.tar.gz:
Код
cd /game/metin2/game sh start.sh
Для остановки используем команду sh close.sh Узнать запустился ли сервер можно командой:
Код
ps ax | grep game && ps ax | grep db
Если сервер запустился то в выводе команды можно будет найти примерно следующие строки:
Код
3143 0 I 0:02.81 ./auth (game) 3146 0 I 0:22.87 ./game 3149 0 I 0:07.83 ./game 3140 0 I 0:01.27 ./db