Настройка web сервера на freebsd 10

Web-сервер на FreeBSD. Часть 1: Установка FreeBSD 10.3

Настройка web сервера на freebsd 10

Начнем создавать собственный Web сервер на самой популярной, защищенной и безопасной операционной системе для этого дела. В этой статье полностью пройдем через этап установки FreeBSD

Образ системы можно скачать с официального сайта FreeBSD.org. Нажимаем на манящую желтую кнопку Download FreeBSD и попадаем на страницу выбора нужного инсталлятора:

Если вы ставите FreeBSD на реальное железо, то качайте образ из Installer Images под свою архитектуру. Если же используется то или иное решение по части виртуализации, например ESXi кластер от VMware, то имеет смысл ставить Virtual Machine Images ибо те уже заточены под тот или иной гипервизор.

Для меня это не столь критично, поэтому я выберу образ Installer Images архитектуры amd64. Сами образы различаются по наличию в них тех или иных компонентов. Bootonly.

iso представляет из себя загрузку системы из сети, disk1.iso содержит основу системы и может устанавливаться без наличия интернета, dvd1.iso содержит тоже самое что и disk1.

iso и полное дерево портов вдобавок. Я советую выбирать disk1.iso, это самый оптимальный вариант:

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

Понеслась загрузка ядра и опрос оборудования, после этого запускается сам инсталлятор. Из выбора у нас Install — запустить установщик, Shell —  выйти в консоль по какой-либо нужде и Live-CD где можно залогиниться от рута без пароля и тоже чего-нибудь поделать. Выбираем Install:

Нас приветствует окно выбора раскладки клавиатуры. Мне не нужен русский язык в консоли или в дальнейшем, я оставляю это по умолчанию. В дальнейшем можно будет добавить при необходимости:

Далее с нас просят ввести имя машины. Вводим что душе угодно:

Затем последует выбор устанавливаемых компонентов. Здесь на ваше усмотрение, я выбираю документацию, библиотеки совместимости с 32битной архитектурой, дерево портов и исходные коды системы для чтения перед сном:

Нажимаем на ОК, начинается работа с диском. Попадаем в меню выбора его разбиения. Здесь все всегда очень индивидуально и настраивается под конкретную задачу. В нашем случае система ставится на пустое железо, поэтому доверимся установщику и жмем Auto (UFS):

В следующем окне выбираем entire disk, и в следующем схему томов как GPT. Инсталлятор послушно выполнил пожелания и представит вариант автоматического разбиения диска:

У FreeBSD схожее с Linux представление о наименовании дисковых устройств. Система обозвала наш винт ada0, а разделы с приставочкой p (partition) и номером.

В данном случае нет разбиения tmp или home в отдельные партиции, хотя если у вас на хостинге предполагается много пользователей со своими сайтами, рекомендую создавать для них свой раздел (например home).

Нажимаем Finish:

До сего момента никакие изменения на устройстве произведены не были, установщик спросит нас о решимости намерений, предупредив что после этого вся имеющаяся информация на диске будет стерта, нажимаем Commit и любуемся на установку системы:

После распаковки архивов с системой, нас попросят установит пароль пользователя root, вводим:

Следом будет настройка сетевых интерфейсов, инсталятор постарается найти все имеющиеся сетевые устройства и предложит выбор чего настраивать:

Здесь опять все индивидуально. Первым делом идет настройка IPv4. Если вы получайте IP адрес от вашего провайдера по DHCP, инсталятор предложит соответствующий выбор, если же нет, то вводите все ручками. В моем случае IPv4 по DHCP, IPv6 не настраиваю. Следующий шаг, настройка времени:

Лично я всегда устанавливаю часовой пояс вручную дабы быть уверенным, что время установлено правильно. Отнеситесь к этому шагу ответственно. От правильного времени зависит работоспособность системы и пакетов в ней. Выбираем No:

Не пытайтесь искать Russian Federation в группе Europe, инсталлятор убежден что наша страна это Азия. Далее выбирайте нужный вам часовой пояс. Нажимаем OK:

Последует небольшая настройка уже установленной системы. На выбор предлагается активировать различные демоны. Меня интересует только sshd, поэтому выбираю его. Нажимаем ОК. Нам предложат создать простого пользователя, это удобнее сделать из системы, нажимаем No. Все, установка завершена:

Открывается меню выбора тех или иных настроек если вы что-то захотите изменить. Полезно будет поставить Handbook. Есть и русский вариант.

На этом все! Система установлена. Извлекаем накопитель и жмем пункт Exit. Нас спросят уточнить не желаем ли мы вносить постустановочные изменения. Нажимаем No. Читаем поздравления от инсталятора и жмем Reboot, загружаемся в установленной системе, логинимся от рута:

Поздравляю! Система полностью готова к работе. В следующий раз будем производить настройку и затачивать систему под наши нужды.

Веб-сервер на FreeBSD

Настройка web сервера на freebsd 10

FreeBSD предоставляет множество возможностей для организации работы в сети интернет и не только.

На сегодняшний день трудно представить интернет без Unix-систем, частью семейства которого является FreeBSD.

Ранее был пост с описанием настройки сети FreeBSD, теперь пришло время поговорить о том, как настроить связку Apache + PHP + MySQL.
Весь процесс установки мы разделим на следующие основные шаги:

  • Обновление портов
  • Установка Apache
  • Установка PHP
  • Установка MySQL
  • Дополнения
  • Приступаем к установке и настройке, первым делом обновляем порты. Коллекция портов — это набор файлов (makefile, патчи, описание и т.д.), которые хранятся в директории /usr/ports, и предназначены для построения, установки приложений во FreeBSD. Для получения коллекции портов, мы воспользуемся инструментом Portsnap.

    Скачиваем snapshot основного дерева портов:

    #portsnap fetch

    Распаковываем дерево портов, используя команду:

    #portsnap extract

    Обновляем порты:

    #portsnap update

    После того как у нас будет свежая коллекция портов, мы приступим к установке из них нужных нам приложений.

    2. Установка Apache

    Apache – приложение, выполняющее роль веб-сервера, он надёжен, гибок в плане настроек, кроссплатформенный, кроме того является свободно распространяемым программным обеспечением. Его популярность более чем велика в сети интернет.

    Определим его местонахождение в коллекции портов, для этого воспользуемся командой whereis:

    #whereis apache22

    Результат выполнения команды будет примерно следующим:
    apache22: /usr/ports/www/apache22

    Проходим в указанный каталог:

    #cd /usr/ports/www/apache22

    Ставим Apache:

    #make all install clean

    После этого должно появиться меню с опциями для Apache, появляться их будет несколько в ходе компиляции. Здесь вы можете включить / отключить поддержку различных дополнений, которые возможно потребуется для реализации вашей задачи. Символ «x» в квадратных скобках означает, что опция включена, переключать можно клавишей «пробел». Перемещаться между опциями можно клавишами «вверх — вниз».

    Если Apache скомпилировался успешно, можно прописать основные настройки в его конфигурационном файле httpd.conf.

    Открываем конфигурационный файл для редактирования:

    #ee /usr/local/etc/apache22/httpd.conf

    Примерно на строке 148 находим строку с записью:
    #ServerName www.example.com:80

    Раскомментируем запись (убираем символ «#» перед строкой), далее указываем свой домен, либо ip-адрес сервера (вместо www.example.com), по которому можно будет обращаться к сайту.

    Выйти из редактора с сохранением изменений можно нажав клавиши «Ctrl+C», после чего ввести команду «exit».

    Далее необходимо задать параметр apache22_enable в файле /etc/rc.conf:

    #ee /etc/rc.conf

    Вписываем:

    apache22_enable=”YES”

    Запускаем Apache:

    #/usr/local/sbin/apachectl start

    После успешного старта Apache следует проверить работу веб-сервера. Для этого открываем браузер на десктопе, с возможностью сетевого доступа к серверу, набираем адрес сервера, если сервер работает, в ответ придет тестовая страница с надписью «It works!».

    Дополнительно рекомендую почитать документацию «Apache HTTP сервер».

    3. Установка PHP

    Следующий наш шаг, это установка компилятора PHP. PHP – один из популярных сценарных языков программирования для сети Интернет (наряду с JSP, Perl, и языками используемыми в ASP.NET), благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

    Определяем местонахождение портов php:

    #whereis php5

    Результат, возвращаемый командной строкой:
    php5: /usr/port/lang/php5

    Ставим PHP5:

    #make all install clean

    Вам будет представлено меню с опциями выбора компонентов для PHP, в ходе компиляции их может быть несколько. Здесь вы можете включить дополнительные компоненты в установку PHP. Нам необходимо добавить пункт «APACHE» для связки PHP и Apache.

    Затем, как PHP интерпретатор будет успешно установлен, необходимо в конфигурационный файл Apache (httpd.conf) прописать пару строк.

    Открываем конфигурационный файл для редактирования:

    #ee /usr/local/etc/apache22/httpd.conf

    Добавляем строки:

    AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps

    Сохраняем сделанные изменения в конфигурационном файле, перезапускаем Apache:

    #/usr/local/sbin/apachectl restart

    Проверим, PHP скрипты должны отрабатываться интерпретатором. Попробуем создать тестовый файл-скрипт, и обратимся к нему через браузер. Наша публичная директория веб-сервера находиться по адресу /usr/local/www/apache22/data/, разместим в ней файл index.php:

    #ee /usr/local/www/apache22/data/index.php

    Впишем туда код:

    Обращаемся к скрипту через браузер (набираем адрес_веб-сервера/index.php). Если всё работает, то результат работы функции phpinfo() будет показан в браузере, в виде таблицы с параметрами PHP.

    4. Установка MySQL

    Современный веб-сервер трудно представить без системы управления базами данных, таковой является MySQL.
    MySQL – свободная реляционная СУБД, широко применяется различными приложениями для хранения данных. Одна из популярных систем хранения баз данных в сети интернет, так же широко используется различными движками сайтов.

    Находим MySQL в дереве портов FreeBSD:

    #whereis mysql55-server

    Переходим в директорию, где находятся файлы, для установки MySQL:

    #cd /usr/ports/databases/mysql55-server

    Ставим MySQL сервер:

    #make all install clean

    После установки проверяем наличие записей параметров MySQL в информации выводимой функцией phpinfo().

    5. Дополнения

    PHP-Extensions — это расширения, которые устанавливаются для добавления функционала PHP. В него так же входят механизмы для работы с MySQL сервером, поэтому дополнение может быть весьма полезным.

    Находим местонахождение PHP-extensions:

    #whereis php5-extensions

    Переходим в директорию портов:

    #cd /usr/ports/lang/php5-extensions

    Ставим расширения:

    #make all install clean

    Появиться конфигурационное меню, в котором следует выбрать поля MySQL и MySQLI, после чего на этапе компиляции так же будет показано несколько окон меню, там можно оставить всё как есть.
    После успешной установки в «phpinfo» также появятся записи mysql и mysqli:

    Итак, мы завершили установку связки Apache + PHP + MySQL. Стоит заметить, что здесь мы рассмотрели лишь «базовую» установку приложений. Как известно всё это дело так же можно настраивать под конкретные задачи, но в данном посту мы этого делать не будем. Вообщем, до скорого!

    Простейший WEB-сервер на FreeBSD

    Настройка web сервера на freebsd 10

    Использовать FreeBSD и не поднять на нем целую кучу различных сервисов это не есть путь настоящего IT-джедая. Следовательно первым делом займемся настройкой WEB-сервера. Использовать будем самую распространенную связку: Apache+MySQL+PHP (Коротко — FAMP)

    Для начала обновим порты. Дальше все довольно просто. Установка из тех же самых портов. Сначала установим сервер MySQL(вместе с ним установится и MySQL-клиент)

    cd /usr/ports/databases/mysql55-server
    make BUILD_OPTIMIZED=yes BUILD_STATIC=yes WITH_CHARCET=cp1251 WITH_XCHARSET=all WITH_COLLATION=cp1251_general_ci
    make -DBATCH install clean

    сборка с параметрами BUILD_OPTIMIZED и BUILD_STATIC повышает производительность нашего сервера баз данных, от которой грех отказываться, а параметр WITH_CHARCET=cp1251 WITH_XCHARSET=all WITH_COLLATION=cp1251_general_ci по умолчанию при создании БД позволит автоматически устанавливать правильные кодировки для отображения кириллических символов

    при установке я привык использовать параметр -DBATCH, основная задача которого конфигурировать все порты по умолчанию. То есть при установке не будут высвечиваться окна настроек. Всё равно я практически ничего не меняю, особенно в зависимостях. Если же необходимо изменить начальную конфигурацию лучше использовать

    make config

    Добавим MySQL в автозагрузку и сразу же его запустим

    echo 'mysql_enable=”YES”' >> /etc/rc.conf
    /usr/local/etc/rc.d/mysql-server start

    После запуска (обычно он успешный, у меня никогда не выпадали ошибки) установим root-пароль

    /usr/local/bin/mysqladmin -uroot password 'new-root-password'

    Возьмемся за Apache. Установка ничем не сложнее:

    cd /usr/ports/www/apache22
    make -DBATCH install clean
    echo 'apache22_enable=”YES”' >> /etc/rc.conf

    конфигурацией займемся позднее, так как для начала установим интерпретатор PHP. Его так же необходимо будет настроить

    собственно установка PHP

    cd /usr/ports/lang/php53
    make config # тут необходимо выбрать [Х] APACHE Build Apache module
    make -DBATCH install clean
    cd /usr/ports/lang/php53-extensions
    make -DBATCH install clean

    Далее необходимо создать файл с настройками php.ini. На самом деле просто скопировать предложенный.

    cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini

    Небольшие настройки Apache
    Для того, что бы Apache корректно обрабатывал PHP необходимо добавить в конфигурационный файл /usr/local/etc/apache22/httpd.conf следующие строки:

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    и поправить секцию DirectoryIndex на

    DirectoryIndex index.php index.html

    и вот уже после этого можно стартовать Apache

    /usr/local/etc/rc.d/apache22 start

    И проверим, как оно запустилось

    root@ipfw:/usr/home/gleb # ps aux | grep httpd
    root 9044 0.0 2.3 21144 11356 ?? Ss 11:59AM 0:00.61 /usr/local/sbin/httpd -DNOHTTPACCEP
    www 9045 0.0 2.3 21144 11388 ?? I 11:59AM 0:00.00 /usr/local/sbin/httpd -DNOHTTPACCEP
    www 9046 0.0 2.3 21144 11424 ?? I 11:59AM 0:00.01 /usr/local/sbin/httpd -DNOHTTPACCEP
    www 9047 0.0 2.3 21144 11420 ?? I 11:59AM 0:00.01 /usr/local/sbin/httpd -DNOHTTPACCEP
    www 9048 0.0 2.3 21144 11380 ?? S 11:59AM 0:00.01 /usr/local/sbin/httpd -DNOHTTPACCEP
    www 9049 0.0 2.3 21144 11388 ?? I 11:59AM 0:00.00 /usr/local/sbin/httpd -DNOHTTPACCEP
    www 9050 0.0 2.3 21144 11380 ?? I 11:59AM 0:00.00 /usr/local/sbin/httpd -DNOHTTPACCEP
    www 9051 0.0 2.3 21144 11380 ?? I 11:59AM 0:00.00 /usr/local/sbin/httpd -DNOHTTPACCEP
    www 9052 0.0 2.3 21144 11380 ?? I 11:59AM 0:00.00 /usr/local/sbin/httpd -DNOHTTPACCEP
    root 9800 0.0 0.3 1816 1304 0 R+ 2:17PM 0:00.00 grep httpd

    набрав в браузере айпи или доменное имя сервера увидим надпись, которая не может не радовать:

    Установка WordPress на FreeBSD 10 — 10.1

    Настройка web сервера на freebsd 10

    В данной статье представлена пошаговая установка WordPress на FreeBSD 10

    1

    Для начала необходимо обновить коллекцию портов. Если запускаем в первый раз, то вводим в консоли:

    #portsnap fetch
    # portsnap extract

    Если уже когда-то обновляли то можно ввести

    # portsnap fetch
    # portsnap update

    2

    Устанавливаем Apache24:

    # cd /usr/ports/www/apache24 & make install clean

    Устанавливаем PHP55:

    # cd /usr/ports/lang/php55
    # make install clean

    Устанавливаем расширения:

    # cd /usr/ports/lang/php55-extensions
    # make config

    Выделяем пункты «MySQL database support«, «PHP Data Objects Interface» , «PDO MySQL driver» и ZLIB support , остальные не трогаем

    # make install clean

    Устанавливаем mod_PHP55:

    # cd /usr/ports/www/mod_php55
    # make install clean

    Устанавливаем MySQL56:

    # cd /usr/ports/databases/mysql56-server/
    # make install clean
    # cd /usr/ports/databases/mysql56-client/
    # make install clean

    3

    Редактируем файл httpd.conf:

    # nano /usr/local/etc/apache24/httpd.conf

    Проверяем, включен ли PHP:

    LoadModule php5_module libexec/apache24/libphp5.so

    В ServerAdmin вписываем свой email
    В ServerName вписываем адрес своего блога. В моем случае technotree.ru
    В DocumentRoot пишем путь до папки WordPress. Распакуем его в/usr/local/www/wordpress
    Находим строчку . Она должна выглядеть так:

    DirectoryIndex index.php index.html

    Еще находим такую строчку:

    Добавляем или меняем значения на:

    Options Indexes FollowSymLinks AllowOverride All Order allow,deny

    Allow from all

    И в конец конфига добавить такую строчку:

    AddType application/x-httpd-php .php

    4

    Далее нам нужен конфиг MySQL. Лежит он в /usr/local/share/mysql/.

    my-default.cnf 

    Копируем его в рабочую директорию:

    # cp /usr/local/share/mysql/my-default.cnf /var/db/mysql/my.cnf

    Теперь настроим его под utf8 (наиболее распространенная кодировка в Интернете):

    [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4

    collation-server = utf8mb4_unicode_ci

    Настраиваем автозапуск в /etc/rc.conf

    mysql_enable=»YES»

    apache24_enable=»YES»

    Иницализируем БД

    # cd /usr/local
    # ./bin/mysql_install_db —user=mysql —datadir=/var/db/mysql

    Устанавливаем права на каталог с БД

    # chown -R mysql:mysql /var/db/mysql

    Запускаем MySQL:

    # /usr/local/etc/rc.d/mysql-server start

    Настраиваем MySQL:

    # mysql_secure_installation

    Здесь на все вопросы отвечаем «yes», устанавливаем пароль root‘а для MySQL (не путать с системным рутом!)
    Создаем базу данных для WordPress:

    # mysql -u root -p mysql>CREATE DATABASE wpdb; mysql>GRANT ALL PRIVILEGES ON wpdb.* TO ‘dbuser’@’hostname’ IDENTIFIED BY ‘password’; mysql> FLUSH PRIVILEGES;

    mysql> EXIT

    wpdb – имя созданной выше базы, dbuser – имя пользователя, под которым будет подключаться WordPress. В 99% случаев hostname нужно заменить на localhost. password – пароль для доступа к базе wpdb.

    5

    Переходим в корневую папку нашего веб-сервера, качаем последний билд (актуальную версию можно узнать на официальном сайте) WordPress’а и распаковываем его:

    # cd /usr/local/www # curl -O http://ru.wordpress.org/wordpress-4.1-ru_RU.tar.gz

    # tar -xvf wordpress-4.1-ru_RU.tar.gz

    6

    Меняем права на распакованную папку wordpress во избежание проблем (при обновлении) в будущем:

    # chmod -R 0777 /usr/local/www/wordpress
    # chown -R www /usr/local/www/wordpress

    Далее можно пойти двумя путями, настроить cms wordpress через веб интерфейс или вручную:

    1) Веб-интерфейс:

    Сперва надо перезапустить apache после наших настроек командой:

    #apachectl restart

    Затем открываем в нашем браузере адрес настроенного сервера и выполняем пару не сложных шагов. Готово

    2)Вручную:

    переходим в распакованную папку:

    # cd wordpress

    Создадим файл конфигурации из шаблона:

    #cp wp-config-sample.php wp-config.php

    редактируем файл wp-config.php:

    #nano wp-config.php

    Вносим изменения в следующую часть кода:

    // ** MySQL settings ** // define(‘DB_NAME’, ‘putyourdbnamehere’); // Имя базы данных define(‘DB_USER’, ‘usernamehere’); // Имя пользователя MySQL define(‘DB_PASSWORD’, ‘yourpasswordhere’); // …и пароль define(‘DB_HOST’, ‘localhost’); // 99% что вам не следует вносить изменения в данную строчку кода define(‘DB_CHARSET’, ‘utf8’);

    define(‘DB_COLLATE’, »);

    и добавляем строчку для загрузки без FTP обновлений и плагинов:

    define(‘FS_METHOD’, ‘direct’);

    Сохраняем файл. Готово. Теперь на 80-м порту у нас работает блог.

    • Tweet
    • Share 0
    • Reddit
    • +1
    • Pocket
    • LinkedIn 0
    • VKontakte

    Web-сервер на FreeBSD 9.0 (Apache + PHP + MySQL + phpMyAdmin)

    Настройка web сервера на freebsd 10

    Ни  для кого не секрет, что web-сервер на базе операционной системы FreeBSD является одним из самых быстрых, мощных, надёжных и защищённых серверов. Их используют не только для домашних страничек и сайтов-визиток, но и для крупных порталов и высоконагруженных проектов.

    В данной статье рассмотрим развёртывание web-сервера на FreeBSD 9.0 x64 с параметрами по умолчанию.

    Первым делом необходимо обновить дерево портов.

    Если система была только что установлена, то вводим команду

    либо, если порты уже были обновлены ранее, то

    Устанавливаем Apache

    В “Options for apr” необходимо будет отметить MySQL database, как показано на скриншоте

    Если нет необходимости в дополнительных опциях, то всё остальное оставляем по умолчанию.

    Устанавливаем PHP

    В “Options for php5” необходимо будет отметить Build Apache module, как показано на скриншоте

    Если нет необходимости в дополнительных опциях, то всё остальное оставляем по умолчанию.

    Устанавливаем MySQL

    Если нет необходимости в дополнительных опциях, то всё остальное оставляем по умолчанию.

    Устанавливаем PHP-Extensions

    В “Options for php5-extensions” необходимо будет отметить MBSTRING, MCRYPT, MySQL database support и MySQLi database support, как показано на скриншоте

    Если нет необходимости в дополнительных опциях, то всё остальное оставляем по умолчанию.

    Дальше, если ещё нет миднайт коммандера, устанавливаем:

    Он понадобится для быстрой навигации по папкам и файлам, а также для быстрого и простого редактирования файлов.

    Затем вводим

    и

    открываем файл /etc/rc.conf и дописываем в нём (после sshd_enable):

    apache22_enable=”YES”

    mysql_enable=”YES”

    сохраняем и перезагружаем машину

    После того, как перезагрузится машина, запустим mc.

    Идём в /usr/local/etc/apache22 и находим файл httpd.conf

    В него вносим следующие изменения:

    1)      Закомментируем модуль unique

    #LoadModule unique_id_module libexec/apache22/mod_unique_id.so

    2)      Раскомментируем ServerAdmin и ServerName

    ServerAdmin admin@test-webserver.com

    ServerName www.test-webserver.com:80

    3)      Раскомментируем DocumentRoot (если он закомментирован)

    DocumentRoot /usr/local/www/apache22/data

    4)      Находим DirectoryIndex и дописываем в него примерно следующее

    DirectoryIndex index.html index.htm index.shtml index.php

    Идём в /usr/local/etc/apache22/Includes и создаём там файл php-application.conf

    Открываем и пишем в нём:

    AddType application/x-httpd-php .php

    AddType application/x-httpd-php-source .phpsXsource

    После этого идём в папку /usr/local/etc и создадим файл php.ini из файла php.ini-production

    и присвоим ему необходимые права

    После этого для сервера MySQL выполняем скрипт в командной строке

    Там можно будет задать пароль суперпользователю root, а также необходимо будет ответить ещё на пару вопросов.

    Web сервер Apache + PHP +MySQL + phpMyAdmin в локальной сети на FreeBSD 8.2

    Настройка web сервера на freebsd 10

    Эта статья собрана из собственной шпаргалки, которую я составлял когда-то для себя.

    Предполагается, что читатель знаком с основами работы на FreeBSD и имеет навыки использования текстового редактора “ee”, а так же имеет представление о работе веб-сервера, препроцессора гипертекста PHP и баз данных MySQL. Знаком с терминами, используемыми в данной статье и не имеет претензий по орфографическому содержанию текста.

    Я описываю установку и настройку веб-сервера в 4 этапа.

  • Установка FreeBSD.
  • Первоначальная настройка. Настройка SSH, FTP.
  • Установка и настройка Apache, PHP, MySQL, phpMyAdmin.
  • Окончательная настройка и работа с сервером.
  • Задача: Необходимо собрать веб сервер в локальной сети для создания сайта с последующим переносом его на сторонний хостинг.
    Бюджет: 0 рублей.
    Средства: Настольный компьютер, художник.

    Исходя из вышеизложенного, была выбрана последняя, на момент сборки сервера, версия ОС FreeBSD 8.2-RELEASE доступная на сайте http://www.freebsd.org/. Т.к. наш сайт не имел ни каких требований к версиям ПО, я решил устанавливать последние версии Apache, PHP, MySQL доступные из портов.

    Приступим.

    1.Установка FreeBSD

    Я думаю не стоит описывать процесс установки FreeBSD слишком подробно, поэтому коротко по пунктам…

    Первое меню Country Selection
    Выбираем страну. Я выбрал Russian Federation, она находиться под номером 182, и жмем OK. 

    System Console Keymap
    Долго не думая выбираем Russia KOI8-R и OK.

    Sysinstall Main Menu
    Выбираем Standart

    Далее редактор разделов FDISK просит нас разделить место. Я выбираю Use Entire Disk кнопкой “A” и созданный раздел freebsd ставлю загрузочным кнопкой “S”. После нажатия “S”, напротив раздела в поле Flags, появляется флаг “A” и выбираем Finish кнопкой “Q”.

    Меню Install Boot Manager
    Т.к. у меня будет установлена одна ОС, я выбираю None и жму OK.

    Далее выскакивает программа Disklabel Editor. Я доверяю ей монтировать все по умолчанию и снова нажимаю “A” затем “Q”.

    Меню Choose Distributions
    Установщик предлагает нам выбрать необходимые дистрибутивы. Я не буду выбирать ни чего поэтому Exit и OK.

    Choose Installation Media
    В этом меню необходимо указать источник, из которого мы хотим установить FreeBSD. Мы хотим его установить с диска, образ которого предварительно был скачан с сайта FreeBSD и записан на болванку, поэтому выбираю CD/DVD и жму OK.

    Установщик сообщает о том, что если мы продолжим установку, то потеряем данные с диска и вроде бы (не уверен в своем английском) рекомендует сделать бэкап. Жмем Yes.

    Далее мы видим поздравление и пару советов, которые оставляем без особого внимания, и жмем OK. На все следующие вопросы установщика я отвечаю No и в конце получаю сообщение которое говорит что необходимо установить пароль для пользователя root. Жму OK и ввожу пароль пользователя.

    Далее, отказываюсь от посещения меню конфигурации, отвечая No, на следующий вопрос и попадаю в меню sysinstall. Жму на кнопку Exit Install. В появившемся окне подтверждаю свой выбор, нажимая кнопку Yes. Достаю диск и нажимаю OK.

    Компьютер уходит на перезагрузку и после этого мы увидим загрузку FreeBSD и приглашение к началу работы в виде строки login:

    2. В серверной холодно и шумно – перейдем в кабинет (Настройка удаленного доступа)

    Я подумал что было бы хорошо поскорее убраться от сюда к себе в кабинет и управлять сервером удаленно. Для этого мне необходимо настроить сеть, создать пользователя и запустить демон SSH. Заходим в систему под пользователем root. Теперь настроим сеть. Необходимо узнать как FreeBSD назвал интерфейс сетевой карты компьютера, для этого наберем

    # ifconfig

    и увидим все доступные интерфейсы. Мой назван ae0 и так как у меня в сети есть DHCP сервер, я просто говорю ему получить настройки от DHCP, добавив в файл /etc/rc.conf строку ifconfig_ae0=”DHCP”.

    # echo 'ifconfig_ae0=”DHCP”' >> /etc/rc.conf

    И за одно назовем наш компьютер localhost.

    # echo 'hostname=”localhost”' >> /etc/rc.conf

    Следующим шагом будет создание пользователей. Подумаем. Мне будет нужен доступ по SSH к серверу и по FTP к сайту. Художник тоже захочет доступ по FTP к сайту. Значит нужно создать двух пользователей минимум.
    Поехали.

    Набираем

    # adduser

    и заполняем поля:
    Username: sb (имя пользователя для входа)
    Full name: Belov Sergey (полное имя пользователя) Дальше оставляем все поля пустыми, т.е. оставляем так, как предлагает FreeBSD. После вводим пароль. Следующий вопрос пропускаем – Enter.

    Видим заполненную анкету пользователя и соглашаемся, набирая Yes. Add another user? (yes/no) отвечаем No.

    Теперь по аналогии нужно добавить пользователя для художника и займемся запуском SSH и FTP.

    Мы не будем вручную запускать эти два демона, это сделает сама FreeBSD после того как мы добавим в файл /etc/rc.conf строки sshd_enable=”YES” и ftpd_enable=”YES”.

    # echo 'sshd_enable=”YES”' >> /etc/rc.conf # echo 'ftpd_enable=”YES”' >> /etc/rc.conf

    Еще нам нужно отредактировать файл /etc/group для того чтобы пользователь sb мог подключиться к машине по SSH.

    # ee /etc/group

    После этого добавим пользователя sb в группу wheel. Найдите в файле строку wheel:*:0:root и отредактируйте ее чтобы получилось так

    wheel:*:0:root,sb

    Перезагрузим машину и если все сделано правильно, должны запуститься SSH и FTP, а так же заработать сеть и интернет.

    # reboot

    В процессе загрузки я увидел какие то странные рисунки инопланетян и это говорит о том что SSH заработал кроме того строки “Starting sshd” и “Starting ftpd” подтверждают мои догадки.

    И так, «Предварительная настройка» завершена. Осталось лишь проверить сеть и узнать IP адрес компьютера в локальной сети. Заходим под root и выполняем ifconfig

    # ifconfig ae0

    В поле inet я могу увидеть IP адрес который DHCP присвоил моему ПК 192.168.51.61. Записываю его на листик бумаги и для полной уверенности в работе сети делаю ping.

    # ping ya.ru

    Яндекс ответил – значит, все получилось. Жмем CTRL+C для прерывания работы программы ping и пишем exit.

    # exit

    Иду курить и перемещаюсь в кабинет.

    3.Установка MySQL

    Теперь с другого рабочего места я могу спокойно управлять нашим веб – сервером через SSH, для этого я буду использовать PUTTY. Устанавливаю подключение с типом SSH на хост 192.168.51.61 порт 22 и захожу в систему под пользователем sb. Сразу хапаю себе права root

    $ su

    Далее нужно обновить порты. Там мы найдем то что нам нужно. Я делаю это в 3 шага

    # portsnap fetch

    Ждем.

    # portsnap extract

    Ждем =)

    # portsnap update

    Ну на последней операции ждать долго не нужно и это радует. Теперь поищем нашу MySQL в портах. Для этого пишем

    # cd /usr/ports/databases # ls | grep mysql | grep -server

    Ну вот, у меня mysql55-server последняя, буду ставить ее. Для этого продолжаем

    # cd mysql55-server # make install clean

    Мы видим окно опций для пакета mysql-server 5.5.12. Ни чего не меняя жмем OK.

    Сразу скажу, что установка MySQL будет самой длинной и примерно займет 10 минут. Курим, но не долго – будут появляться еще опции, на которые придется обратить внимание, но менять мы тоже ни чего не будет, поэтому OK везде.

    Установка закончена?

    Теперь необходимо установить базы, это обычно делалось так:

    # mysql_install_db

    но почему в версии 5.5 это выдает FATAL ERROR: Could not find ./bin/my_print_defaults который исправно лежит в /usr/local/bin =). Это лечиться легко – делаем так

    # cd /usr/local
    # ; mysql_install_db

    Далее необходимо выдать права пользователю и группе mysql на доступ к базам:

    # chown mysql /var/db/mysql
    # chgrp mysql /var/db/mysql

    Добавим строку mysql_enable=”YES” в /etc/rc.conf для автоматического старта сервера.

    # echo 'mysql_enable=”YES”' >> /etc/rc.conf

    И перезагрузим машину

    # reboot

    После перезагрузки мы должны увидеть строку Starting mysql и никаких ошибок ниже. Если все хорошо заходим в систему и установим пароль для root

    # mysqladmin -u root password 123

    На этом мы пока оставим MySQL в покое и перейдем к следующему шагу.

    4.Установка Apache

    Снова заходим в порты и смотрим доступные версии apache.

    # cd /usr/ports/www/
    # ls | grep apache

    У меня последняя apache22. Дальше делаем по аналогии с mysql

    # cd apache22 # make install clean

    В опциях пакета apache 2.2.18 я ставлю крестик напротив MYSQL и убираю крестик напротив IPV6. Жму OK. Опции других пакетов я оставлю, пожалуй, по умолчанию. По завершению установки давайте подкрутим кое чего в файле /usr/local/etc/apache22/httpd.conf но сперва сделаем копию этого файла.

    # cd /usr/local/etc/apache22/
    # cp httpd.conf https.sample

    Теперь откроем его

    # ee httpd.conf

    и найдем строку

    #ServerName www.example.com:80

    Приведем ее к такому виду (обратите внимание на убранный символ # в начале строки – обязательно снимите комментарий)

    ServerName localhost

    Сохраняем файл. Добавляем Apache в «автозапуск»

    # echo 'apache22_enable=”YES”' >> /etc/rc.conf

    И рестарт!

    # reboot

    Если все успешно, мы можем с любой локальной машины в браузере набрать адрес сервера и увидеть веб-страницу с текстом “It works!”.

    Если этого не произошло то попробуйте найти ошибку при запуске в ручную воспользовавшись командами:

    # apachectl start
    # apachectl restart
    # apachectl stop

    Так же попробуйте выполнить команду

    # kldload accf_http

    и перезапустить Apache, хотя у меня он не требовал загрузки этого фильтра.

    5.Установка PHP

    Вот мы и добрались до установки последнего из основных элементов нашего сервера. PHP как все остальное мы будем ставить из портов. Для этого делаем

    # cd /usr/ports/lang
    # ls |grep php

    Последняя версия php52 и расширения для него php52-extensions

    #инструкция: Установка FAMP [FAMP = FreeBSD 10 + Apache 2.4 + MySQL 5.6 + PHP 5.6] // обновление 23.02.2015

    Настройка web сервера на freebsd 10

    Установка и настройка web-сервера в FreeBSD в данном случае выполняется от пользователя root с поключеннм интернетом.

    1. Установка Apache

    Смотрим какие версии Apache есть в наличии в репозитарии FreeBSD с помощью команды 'pkg rquery' в консоли:

    $ pkg rquery -e '%n ~ apache*' '> nomo-versio: %n-%v
    amplekso: %sh
    ' | less

    И консоль нам любезно сообщит, что в наличии есть 2 версии Apache, то есть apache22 и apache24.

    > nomo-versio: apache22-2.2.29_2
    > nomo-versio: apache24-2.4.10_2

    Выбираем последнюю доступную версию Apache [то есть apache24] и устанавливаем её.

    Установка Apache-2.4 из портов:

    Перед установкой программы из портов желательно обновить дерево портов от имени суперпользователя для установки последней версии нужной программы.

    # portsnap fetch update

    Переходим в каталог порта Apache 'www/apache24'

    # cd /usr/ports/www/apache24

    Устанавливаем порт Apache сервера

    # make install clean

    Включаем загрузку демона Apache сервера при старте системы FreeBSD, но пока не стартуем! Прежде надо собрать PHP

    # echo 'apache24_enable=”YES”' >> /etc/rc.conf

    Делаем резервную копию конфигурационного файла Apache сервера:

    # cp /usr/local/etc/apache24/httpd.conf /usr/local/etc/apache24/httpd.conf.bak

    Для избежания ошибки при запуске Apache-2.4 “httpd: apr_sockaddr_info_get() failed ” необходимо установить параметр в “ServerName” в конфигурационном файле настроек Apache-2.4 “/usr/local/etc/apache24/httpd.conf”:

    ServerName localhost:80

    Проверка правильности установки веб-сервера Apache

    Для запуска Apache в первый раз, просто запустите

    # /usr/local/sbin/apachectl start

    Просто перейдите по ссылке: http://localhost/

    Если Apache все же не запускается проверьте следующие лог-файлы:

    # tail /var/log/message
    # tail /var/log/httpd-error.log

    2. Установка PHP

    Смотрим какие версии PHP есть в наличии в репозитарии FreeBSD с помощью команды 'pkg rquery' в консоли:

    $ pkg rquery -e '%n ~ php*' '> nomo-versio: %n-%v
    amplekso: %sh
    ' | less

    И консоль нам любезно сообщит, что в наличии есть несколько доступных версий PHP:

    > nomo-versio: php5-5.4.36
    > nomo-versio: php53-5.3.29_3
    > nomo-versio: php55-5.5.20
    > nomo-versio: php56-5.6.4

    Выбираем последнюю доступную версию PHP [то есть php56] и устанавливаем её.

    Переходим в порт 'lang/php56'

    # cd /usr/ports/lang/php56/

    Устанавливаем порт PHP

    # make install clean

    Переходим в порт 'www/mod_php56'

    # cd /usr/ports/www/mod_php56

    Устанавливаем порт 'www/mod_php56' для подключения PHP как модуля к Apache

    # make install clean

    Переходим в порт php-модулей

    # cd /usr/ports/lang/php56-extensions/

    Запускаем выбор опций компиляции порта

    # make config

    Для нормальной работы веб-сервера, Я бы порекомендовал следующие модули:

    DOM DOM support
    GD GD library support
    ICONV iconv support
    MBSTRING multibyte string support
    MCRYPT Encryption support
    MYSQL MySQL database support
    MYSQLI MySQLi database support
    SIMPLEXML simplexml support
    SESSION session support
    SQLITE sqlite support
    SQLITE3 sqlite3 support
    XML XML support

    Также желательно отключить модуль dba, поскольку он часто мешает нормальной сборке.

    Устанавливаем порт в “согласованном” режиме

    # make BATCH=yes install clean

    Устанавливаем конфиг PHP

    # cp /usr/local/etc/php.ini-development /usr/local/etc/php.ini

    3. Настройка PHP

    После установки PHP уже разрешен в конфиге с Apache как модуль, но его еще невозможно использовать. Для его использования нужно связать расшире­ния файлов '.php' с правильным типом данных чтоб Apache знал для каких файлов запускать интерпретатор PHP.

    Открываем конфигурационный файл Apache '/usr/local/etc/apache24/httpd.conf' и проверяем его на наличие следующих строк:

    LoadModule php5_module libexec/apache24/libphp5.so

    Далее дописываем в разделе 'DirectoryIndex' в конфигурационном файле Apache '/usr/local/etc/apache24/httpd.conf' следующий код:

    DirectoryIndex index.php index.html
    DirectoryIndex index.php index.html

    AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps

    Теперь поскольку мы изменили некоторые настройки Apache-сервера его необходимо перезапустить

    # /usr/local/sbin/apachectl restart

    4. Установка MySQL

    Смотрим какие версии MySQL есть в наличии в репозитарии FreeBSD с помощью команды 'pkg rquery' в консоли:

    $ pkg rquery -e '%n ~ php*' '> nomo-versio: %n-%v
    amplekso: %sh
    ' | less

    И консоль нам любезно сообщит, что в наличии есть несколько доступных версий MySQL:

    > nomo-versio: mysql51-server-5.1.73_2
    > nomo-versio: mysql55-server-5.5.41
    > nomo-versio: mysql56-server-5.6.22

    Выбираем последнюю доступную версию MySQL [то есть mysql56-server] и устанавливаем её.

    Устанавливаем MySQL сервер из пакажа

    # pkg install mysql56-server

    Запускаем MySQL сервер

    # /usr/local/etc/rc.d/mysql-server onestart

    Добавляем следующую строку в конфигурационный файл '/etc/rc.conf' для запуска демона MySQL-сервера во время загрузки FreeBSD.

    mysql_enable=”YES”

    Устанавливаем конфигурационный файл для MySQL

    # cp /usr/local/share/mysql/my-default.cnf /etc/my.cnf

    Обновляем системные пути

    # rehash

    Устанавливаем пароль для root-пользователя MySQL

    # /usr/bin/mysql_secure_installation

    Перезапускаем MySQL-сервер с новыми настройками

    # /usr/local/etc/rc.d/mysql-server restart

    Для управления базой данных MySQL можно дополнительно установить – '/usr/ports/databases/phpmyadmin'.

    5. Настройка Apache

    Делаем резервную копию конфигурационного файла Apache [обязательно!]:

    # cp /usr/local/etc/apache24/httpd.conf /usr/local/etc/apache24/httpd.conf.bak

    Займемся редактированием файла настроек Apache сервера '/usr/local/etc/apache24/httpd.conf'.

    Не прикасаться к этой настройке!!! Это каталог с бинарными файлами сервера Apache.

    ServerRoot “/usr/local”

    Заменить значение ServerAdmin на свой email [необязательно]

    ServerAdmin you@your.address

    Каталог для хранения файлов сайта

    DocumentRoot “/usr/local/www/apache24/data”

    Должно быть таким же как и значение параметра DocumentRoot

    После изменения настроек необходимо рестартовать сервер Apache.

    # /usr/local/sbin/apachectl restart

    Для запуска Apache в первый раз, просто запустите

    # apachectl start

    Альтернативный вариант для запуска Apache сервера

    # /usr/local/etc/rc.d/apache24 start

    Вы можете остановить сервер в любой момент, набрав

    # apachectl stop

    После внесения изменений в конфигурационный файл Вам необходимо перезапустить сервер

    # apachectl restart

    Для грациозного перезапуска Apache без прерывания текущих соединений, выполните

    # apachectl graceful

    Проверяем конфиг Apache

    # apachectl configtest

    6. Настройка Виртуальных хостов [Virtual Hosting] в Apache

    В конфигурационном файле Apache '/usr/local/etc/apache24/httpd.conf' в секции '# Virtual hosts' необходимо раскомментировать строку:

    # Virtual hosts
    Include etc/apache24/extra/httpd-vhosts.conf

    Перейти в каталог '/usr/local/etc/apache24/extra/'

    # cd /usr/local/etc/apache24/extra/

    И добавить что-то вроде в файл '/usr/local/etc/apache24/extra/httpd-vhosts.conf' закомментировав всё лишнее:

    ServerAdmin [свой@емайл.ком] DocumentRoot /home/[имя_пользователя]/site/site1/php/ ServerName php.site1 ErrorLog /home/[имя_пользователя]/site/site1/error.log CustomLog /home/[имя_пользователя]/site/site1/access.log common

    // Примечание: Параметр 'DocumentRoot' в конфигурационном файле настроек '/usr/local/etc/apache24/extra/httpd-vhosts.conf' должен быть подкаталогом параметра 'DocumentRoot' в конфигурационном файле настроек Apache '/usr/local/etc/apache24/httpd.conf'. Иначе будет ошибка доступа к сайту “403 Forbidden”.

    В файл '/etc/hosts' добавляем наш домен, указанный в параметре 'ServerName' [см. выше], т.е. в моём случае 'php.site1':

    127.0.0.1 php.site1

    Теперь наш будет доступен как по ссылке http://localhost/ так и по ссылке

    7. Проверяем все настройки

    Создаём файл 'index.php' в директории выделенной для сайта [см. пункт '5. Настройка Виртуальных хостов [Virtual Hosting] в Apache']:

    Перезапускаем сервер Apache:

    # apachectl restart

    Тэги: apache, bsd, famp, freebsd, mysql, php, instrukcio, инструкция

    Установка Virtual Box с Web интерфейсом на FreeBSD 10

    Настройка web сервера на freebsd 10

    Дата публикации: 26 июля 2016. Категория: UNIX.

    Подробная установка Virtual box на FreeBSD 10.1 через пакетный менеджер pkg

    Для начала обновим репозитории и проверим текущую версию Virtual Box (на момент написания статьи версия 4.3.26):

    #pkg update #pkg search virtual

    virtualbox-ose-4.3.26

    virtualbox-ose-additions-4.3.26
    virtualbox-ose-kmod-4.3.26

    Далее начинаем установку:

    #pkg install virtualbox-ose-4.3.26

    Вслед за собой потянется пакет virtualbox-ose-kmod, содержащий модули ядра. Добавим модуль в автозагрузку и запустим его:

    # echo 'vboxdrv_load=”YES”' >> /boot/loader.conf # kldload vboxdrv

    # /sbin/ldconfig -m /usr/local/lib/virtualbox

    Создаём пользователя для управления виртуальными машинами, т.к. от root'a это делать запрещается:

    # adduser vbadmin
    Username: vbadmin
    Full name:
    Uid (Leave empty for default):
    Login group [vbadmin]:
    Login group is vbadmin. Invite vbadmin into other groups? []:
    Login class [default]:
    Shell (sh csh tcsh nologin) [sh]: csh
    Home directory [/home/vbadmin]:
    Home directory permissions (Leave empty for default):
    Use password-based authentication? [yes]:
    Use an empty password? (yes/no) [no]:
    Use a random password? (yes/no) [no]:
    Enter password:
    Enter password again:
    Lock out the account after creation? [no]:
    Username : vbadmin
    Password : *****
    Full Name :
    Uid : 1001
    Class :
    Groups : vbadmin
    Home : /home/vbadmin
    Home Mode :
    Shell : /bin/csh
    Locked : no
    OK? (yes/no): yes
    adduser: INFO: Successfully added (vbadmin) to the user database.
    Add another user? (yes/no): no
    Goodbye!

    Virtualbox при установке создаёт группу для управления машинами vboxusers. Добавим нашего юзера в эту группу:

    # pw groupmod vboxusers -m vbadmin

    Установим frontend для Vbox:

    #pkg install phpvirtualbox

    Теперь необходимо отредактировать конфигурационный файл phpvirtualbox:

    # vim /usr/local/www/phpvirtualbox/config.php
    /* Username / Password for system user that runs VirtualBox */
    var $username = ‘vbadmin’;
    var $password = ‘тут пароль юзера vbadmin’;

    Для работы web интерфейса необходим apache, так же php, php-extensions, mod_php:

    #pkg install apache24-2.4.12#pkg install php56-extensions-1.0#pkg install mod_php56-5.6.7

    #pkg install php56-5.6.7

    Включаем поддержку php в apache (mod_php должен был сам прописать свой модуль в конфиг):

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phpsDirectoryIndex index.html index.shtml index.htm index.php

    Пример виртуального хоста для apache:

    ServerAdmin Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. DocumentRoot “/usr/local/www/phpvirtualbox/” ServerName vbox.yourdomain.ru Options Indexes FollowSymLinks AllowOverride All Require all granted

    Наконец правим /etc/rc.conf:

    apache24_enable=”YES” vboxguest_enable=”YES”vboxnet_enable=”YES”vboxwebsrv_enable=”YES”

    vboxwebsrv_user=”vbadmin”

    Перезагружаем сервер и заходим на web интерфейс (http://vbox.yourdomain.ru). По умолчанию логин/пароль admin/admin

    Веб сервер для хостинга начального уровня на базе домашнего (рабочего) FreeBSD сервера – 1

    Настройка web сервера на freebsd 10

    Данный цикл статей задумывается больше как записная книжка для себя. Мне не очень часто приходится делать некоторые вещи поэтому хочу описать как я это делал на будущее. Цель: захостить сайт на офисном сервере.

    Идущие по этому пути должны понимать: подобные вещи есть смысл делать только в том случае, если вы можете обеспечить фактически непрерывное нахождение сервера в онлайне и при низких нагрузках на сайт на начальном этапе его эксплуатации. Исходные данные:

    • Проинсталированный FreeBSD 10.1 сервер файловая система ZFS.
    • На роутере настроены виртуальные сервера или ремап портов (название зависит от роутера) 80 и 443 на наш сервер.

    Выполняем su.

    Коммандой “zpool status” смотрим название нашего ZFS пула, если вы его не знаете.

    Примерный вывод команды:

    пулов может быть несколько – зависит от конфигурации Вашей системы.

    В выбранном пуле создаем точку монтирования для наших клеток:
    zfs create -o mountpoint=/jails zroot/jails

    убедимся что файловая система создана: “zfs list

    Примечание: Вам ничто не мешает просто создать папку и в ней разместить папки с клетками, но тогда Вы лишите себя возможности пользоваться преимуществами ZFS в приложении к джайлам.

    создаем файловую систему для собственно джайла – у меня пока задача захостить старую версию сайта потому назову клетку соответствующе:

    zfs create zroot/jails/oldsite

    установим квоту:

    zfs set quota=20G zroot/jails/oldsite

    zfs list:

    Ставим в клетку систему:

    bsdinstall jail /jails/oldsite/

    идет обычная установка FreeBSD

    как обычно делаем пароль руту и создаем юзера(не расписываю в силу стандартности процедуры).

    Устанавливаем jail2:

    pkg install jail2

    добавляем запуск джайлов в /etc/rc.conf, добавив строчки:

    jail2_enable=”YES”

    jail2_list=”oldsite”

    так как я не собираюсь давать клетке отдельный IP содаю локальный интерфейс:

    ifconfig_lo0=”inet 127.0.0.1″

    тут поясню: нигде, кроме инструкции по установке uwsgi нету упоминания о необходимости использования jail2 везде пишется про просто jail, но в выше упомянутой инструкции пишется что в свежих версиях FreeBSD  лучше использовать jail2.

    создаем конфигурационный файл клеток mcedit /etc/lail.conf:

    само собой, Вы  можете для этого использовать, как принято говорить свой любимый текстовый редактор.

    Запускаем клетку:

    /usr/local/etc/rc.d/jail2 start

    проверяем что работает:

    jls

    Теперь добавим резервное копирование, для чего будем использовать механизм ZFS снапшотов.
    Для управления созданием и удалением снапшотов ставим утилиту zfsnap:
    pkg install zfsnap
    параметры работы утилиты задаются в конфигурационном файле /etc/periodic.conf

  • строчка, относящаяся к zfsnap, включает его выполнение
  • строчка задает список каталогов через пробел для которых делаются снапшоты
  • строчка задает список каталогов для рекурсивного создания снапшотов (будут созданы для всех вложенных файловых систем, избавляет от необходимости настраивать каждую индивидуально).
  • строка задает время хранения снапшота.
  • строка говорит, что необходимо удалять старые.
  • Теперь можно запустить periodic daily, но помните что выполнятся все системные скрипты, обычно выполняемые в ночное время или просто подождать до утра.
    По любому на следующий день вы должы наблюдать следующий результат выполнения комманды 
    zfs list -t snapshot

    Теперь мы в любой момент можес осуществить откат файловой системы коммандой
    zfs rollback zroot/jails/oldsite@daily-2016-04-03_09.05.20–1m 

    Mожно переходить к настройке системы в джайле, но об этом в следующей заметке.

    Понравилась статья? Поделиться с друзьями:
    Все о сантехнике
    1 / 12
    2 / 12
    3 / 12
    4 / 12
    5 / 12
    6 / 12
    7 / 12
    8 / 12
    9 / 12
    10 / 12
    11 / 12
    12 / 12