Обновление openfire сервера

В продолжении моей статьи как установить openfire пришло время обновить его тем более уже прошло более 5 обновлений, моя версия Openfire 3.10.0 на данный момент, а сейчас уже можно скачать Openfire 4.0.1 Так что давайте перейдем к вопросу как и с чего начать обновление openfire сервера. 

Для обновления Openfire делаем следующие (напомню что данная инструкция описывает обновление сервера Openfire под Ubuntu):

  1.  Останавливаем сервер openfire командой  /etc/init.d/openfire stop
  2. Копируем директорию /usr/share/openfire и /etc/openfire
  3. Если есть возможность сделайте бекап базы данных, я для этого использую phpmyadmin
  4. Далее скачиваем последний дистрибутив openfire с сайта http://www.igniterealtime.org/downloads/index.jsp
  5. После этого запускаем команду dpkg -i openfire_4.0.1_all.deb
  6. Я бы еще советовал сделать следующее в файле openfire.xml  который находится в /etc/openfire в самом низу есть строчка   <setup>true</setup>  и в ней нужно удалить слово TRUE
  7. Далее запускаем сервер Openfire командой /etc/init.d/openfire start
  8. И переходим в админку http://IP_Сервера:9090 у нас будет снова запущена установка openfire, НО НЕ ВОЛНУЙТЕСЬ, А ПРОЙДИТЕ ВСЕ ЭТАПЫ и увидите что в админке все сохранения остались с пользователями и группами (ну даже если накосячили, то базу данных вы сохраняли из третьего пункта и можно будет откатиться и все заново повторить)
  9. Радуемся Жизни )

Вот таким простым способом мы обновили сервер Openfire (на самом деле на все это у меня ушло не более 10 минут, так что ни чего не бойтесь и делайте по инструкции)

PS кстати еще может кому понадобиться может пригодиться статья как восстановить пароль администратора в openfire

Источник: https://www.nibbl.ru/ubuntu/obnovlenie-openfire-servera.html

Установка, настройка и сброс пароля WebMin во FreeBSD

Автор: Воронов Глеб | 08-05-2013 Нет комментариев

WebMin — крайне полезная вещь для начинающих администраторов. Консоль Unix — неоспоримо мощная штука. Но не всем так просто сразу её освоить. Кнопочки, подсказки и описания, ещё и на русском — то, от чего вряд ли откажется молодой красноглазик.
Когда я узнал об этом продукте, то установил, как и многое — чисто потестить. Особо ничем она мне не помогла, так как сервер уже был настроен и отлажен, но все же иногда устанавливаю…
Установка как обычно проще простого:

cd /usr/ports/sysutils/webmin/
make && make install && make clean

После сборки и установки вылезла кратенькая инструкция. Как я заметил от версии к версии она не меняется:

After installing Webmin for the first time you should perform the following
steps as root:

* Configure Webmin by running /usr/local/lib/webmin/setup.sh

* Add webmin_enable=»YES» to your /etc/rc.conf

* Start Webmin for the first time by running /usr/local/etc/rc.d/webmin start

The parameters requested by setup.sh may then be changed from within Webmin
itself.

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

/usr/local/etc/rc.d/webmin start
Starting webmin.
Pre-loaded WebminCore

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

Забыть пароль может кто угодно. Вот так случилось и со мной. Необходимо было что то посмотреть в webmin-е на сервере, который когда то давно администрировал. И как водится — пароль не помню. Разработчики подумали о таких как я (за что им отдельный респект) и создали скрипт смены пароля.

/usr/local/lib/webmin/changepass.pl /usr/local/etc/webmin user password

Источник: https://tradenark.com.ua/centos/freebsd-webmin-installing-change-password/

Статистика для сайта — AWStats

By Anton Vanyukov|15 Июн 2009|Categories: Информационные Технологии|Tags: IT, unix|0 Comments

Помимо возможности управления сервером через веб-интерфейс, хорошо бы иметь хорошую статистику по веб-сайтам. Мой выбор пал на AWStats. AWStats представляет из себя анализатор лог файлов, который генерирует отчеты в HTML с таблицами и графиками. Так же AWStats интегрируется с Webmin, о котором я рассказывал в предыдущей статье.

Установка

Ставить AWStats я решил из портов. Так проще отслеживать изменения в версиях. # cd /usr/ports/www/awstats/ # make install clean

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

В опциях установки предлагается включить поддержку IPv6. Лично мне это не надо — отключил. Если интересно почитать документацию, то она устанавливается в /usr/local/share/doc/awstats.

Настройка

Есть два способа настройки — ручной и с помощью скрипта. Быстренько расскажу про оба способа. Внимание! Если выбирается второй способ, то учтите, что файл конфигурации Apache надо будет все равно править потом руками, т.к. скрипт установки допускает в нем ошибку!!!

1. Настраиваем все сами

После установки, надо переименовать файл /usr/local/www/awstats/cgi-bin/awstats.model.conf в awstats.site.conf для настройки AWStasts. Так же надо добавить следующие строчки в файл /usr/local/etc/apache22/httpd.conf:
Alias /awstatsclasses «/usr/local/www/awstats/classes/»
Alias /awstatscss «/usr/local/www/awstats/css/»
Alias /awstatsicons «/usr/local/www/awstats/icons/»
ScriptAlias /awstats/ «/usr/local/www/awstats/cgi-bin/»
<Directory «/usr/local/www/awstats/»>
<Files «awstats.pl»> AuthUserFile /usr/local/etc/apache22/passwd
AuthGroupFile /usr/local/etc/apache22/group
AuthName «Restricted Area For Customers»
AuthType Basic require valid-user
</Files>
Options None
AllowOverride All
Order allow,deny
Allow from all
</Directory>

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

2. Настраиваем с помощью скрипта

Так же есть более простой метод настройки — с помощью файла awstats_configure.pl. Но разработчики почему-то не учли, что данную программу люди будут ставить и на FreeBSD, где пути отличаются от дистрибутивов Linux. По этому, в скрипте есть недочеты, которые надо исправить. Данный файл находится в папке /usr/local/www/awstats/tools/. Прежде чем что-то запускать, надо отредактировать файл. Нужно удалить wwwroot в значениях переменных для всех директорий. Открываем awstats_configure.pl любым редактором и приводим следующие секции к такому виду:

# примерно строчки 327-330 $AWSTATS_ICON_PATH=»$AWSTATS_PATH/icon»; $AWSTATS_CSS_PATH=»$AWSTATS_PATH/css»; $AWSTATS_CLASSES_PATH=»$AWSTATS_PATH/classes»; $AWSTATS_CGI_PATH=»$AWSTATS_PATH/cgi-bin»;

# примерно строчка 486 if ($_ =~ /Directory «$awstats_path_quoted»/) { $awstatsdirectoryfound=1; }

# строчка 530 <Directory «$AWSTATS_PATH»>

# строчка 549 if (-f «$AWSTATS_PATH/cgi-bin/awstats.model.conf») { $modelfile=»$AWSTATS_PATH/cgi-bin/awstats.model.conf»;

# и парой строчек ниже if (! -s $modelfile || ! -w $modelfile) { $modelfile = «$AWSTATS_PATH/cgi-bin/awstats.model.conf»; }

Вот теперь мжоно запустить скрипт:

# cd /usr/local/www/awstats/tools/

# perl awstats_configure.pl

Сначала скрипт расскажет нам о преимуществах чтения документации, расскажет о том, что мы используем нестандартную папку (стандартная — /usr/local/awstast/) и спросит хотим ли мы продолжать. Соглашаемся. После этого надо будет ввести полный путь до конфигурационного файла Apache — /usr/local/etc/apache22/httpd.conf. Следующий вопрос — создавать ли новый конфиг для AWStats — да. Далее надо будет ввести ваш домен и путь, где будут храниться конфигурационные файлы AWStats (я указал /usr/local/etc/awstats/). Теперь скрипт скажет, что он еще не умеет добавлять задания в cron и предложит сделать нам это самим. Делается это вот так (первая команда — для одного конфига, вторая — для всех; выбрать надо одну):

 # /usr/local/www/astats/cgi-bin/awstats.pl -update -config=stats.vcore.ru
# /usr/local/www/awstats/cgi-bin/awstats_updateall.pl now 

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

 # perl awstats.pl -update -config=stats.vcore.ru 

Или же можно создать статические отчеты с помощью команды:

 # perl awstats.pl -output=pagetype -config=stats.vcore.ru 

 # указываем правильный лог файл
LogFile=»/var/log/httpd-access.log» 
# разрешаем использовать DNS для замены ip-адресов именами
DNSLookup=1 
# где хранится бд AWStatsDirData=»/var/db/awstats» 
# разные параметры для авторизации
AllowAccessFromWebToAuthenticatedUsersOnly=1
AllowAccessFromWebToFollowingAuthenticatedUsers=»user1 user2″
AllowAccessFromWebToFollowingIPAddresses=»192.168.0.3″ 
# плагин, отвечающий за подсказкиLoadPlugin=»tooltips»
# плагин, отвечающий за правильное отображение UTF-строк
LoadPlugin=»decodeutfkeys»
# инфо о хостахLoadPlugin=»hostinfo» 

Создаем директорию /var/db/awstats и устанавливаем на нее нужные нам права:

# mkdir /var/db/awstats
# chown www:www /var/db/awstats 

Редактируем файл /usr/local/etc/apache22/httpd.conf и приводим секцию Directory вот к такому виду (она в самом низу файла):

 <Directory «/usr/local/www/awstats/»>  
<Files «awstats.pl»>      
AuthUserFile /usr/local/etc/apache22/passwd     
AuthName «Restricted Area For Customers»     
AuthType Basic      require valid-user  
</Files>  
Options None
AllowOverride All
   Order allow,deny
   Allow from all
</Directory> 

Это нужно для того, чтобы использовать авторизацию для просмотра логов. Так же для удобства я создаю виртуальный хост stats.vcore.ru. Добавляем следующие строчки в файл /usr/local/etc/apache22/extra/httpd-vhosts.conf:

 <VirtualHost *:80>
ServerAdmin av3nger@list.ru
DocumentRoot «/usr/local/www/awstats»
ServerName stats.vcore.ru
ServerAlias www.stats.vcore.ru
</VirtualHost> 

Чтобы создать файл с паролями, который будет использоваться для авторизации пользователей, надо воспользоваться следующей командой:

 # htpasswd -c /usr/local/etc/apache22/passwd user 

где user — это имя создаваемого пользователя.

Использование

Ок. Пришло время для первого тестового запуска. Для начала, надо создать или обновить базу данных AWStats. Запускаем скрипт awstats.pl, который находится в папке /usr/local/www/awstats/cgi-bin/:

# perl awstats.pl -config=stats.vcore.ru -update

Будет следующий вывод на экран:
Create/Update database for config
«/usr/local/etc/awstats/awstats.stats.vcore.ru.conf»
From data in log file «/var/log/httpd-access.log»…
Phase 1 : First bypass old records, searching new record… Searching new records from beginning of log file…
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)…
Jumped lines in file: 0
Parsed lines in file: 4909
Found 0 dropped records,
Found 2 corrupted records,
Found 0 old records,
Found 4907 new qualified records.

dropped records — отвечает за те записи, которые не соответствовал формату, указанному в конфиг файле, или не являлись валидными HTTP-запросами
corrupted records — это записи, которые не соответствую параметру «LogFormat» в конфиг файле AWStats; обычно таких записей не больше 5% даже на хорошо настроенных серверах
old records — записи, которые уже были просмотрены при прошлом запуске скрипта
new qualified records — записи, которые были использованы для наполнения базы данных AWStats

Теперь можно cоздать и просмотреть отчеты. Для этого важно, чтобы база уже была создана и наполнена, что мы только что сделали. Страницы создаются следующим образом:

# perl awstats.pl -config=stats.vcore.ru -output -staticlinks > awstats.stats.vcore.ru.html

Ну, можно зайти на и посмотреть отчеты:

http://stats.vcore.ru/awstats/awstats.pl

Если, вдруг, на странице будет какая-то ошибка, связанная с недостающим модулем Perl Escape, то поставить его можно вот так:

# perl -MCPAN -e shell # install URI::Escape

Интеграция с Webmin

1. Открываем Webmin, идем в раздел Webmin -> Webmin Configuration -> Webmin Modules
2. Открываем вкладку Install и указываем путь до файла awstats-x.x.wbm, который находится в папке /usr/local/www/awstats/tools/webmin/
3. Нажимаем кнопку Install Module
4. Открываем файл /usr/local/lib/webmin/awstats/defaultacl и редактируем там параметр dir: dir=/usr/local/etc/awstats ~/awstats

Добавить поддержку перла в апач:

# cd /usr/ports/www/mod_perl2/

# make install clean

Пример содержимого httpd.conf:

LoadModule perl_module libexec/apache2/mod_perl.so
...
<Directory /usr/local/www/awstats>
    Options +ExecCGI
    SetHandler perl-script
    PerlResponseHandler ModPerl::Registry
    PerlOptions +ParseHeaders

    AllowOverride None
    Order Allow,Deny
    Allow from all
</Directory>

Выставить владельцем папки с авастом www:www, положить сюда конфигурационный файл свой.

Установить Perl

cd /usr/ports/lang/perl5.28/

make inastall clean

Установить GeoIP модули, запустить скрипт обновления БД /usr/local/bin/geoip update

Прописать путь к БД(/usr/locale/share/geoip) в конфигуратор awstats

Добавить в /etc/crontab задачу на каждые 28минут:
*/28 * * * * root perl /usr/local/www/awstats/cgi-bin/awstats.pl -config=stats.орлин.рф -update

Готовый отчет можно наблюдать по адресу http://stat.орлин.рф/awstats/awstats.pl

Ссылки по теме

1. Официальный сайт AWStats
2. Страничка в Wikipedia (к сожалению, на английском)


Русификация UTF-8 FreeBSD

Локализация — I18N/L10N использование и настройка

1. Локализация консоли

необходим только в случае работы за локальной консолью.

Данный пункт локализации не требуется и не влияет на работу удаленных text-mode эмуляторов терминалов, таких как putty или openssh.

Итак, начиная с релиза FreeBSD 10.1 в системе для Russian UTF-8, в консольном драйвере vt (4) имеются:

— клавиатурные мапперы/переключатели:

# ls -la /usr/share/vt/keymaps/ | grep ru
-r--r--r--  1 root  wheel  16228 Nov 12 06:04 ru.kbd
-r--r--r--  1 root  wheel  16234 Nov 12 06:04 ru.shift.kbd
-r--r--r--  1 root  wheel  16232 Nov 12 06:04 ru.win.kbd

BashCopy

— фонты:

# ls -la /usr/share/vt/fonts/
-r--r--r--  1 root  wheel  8452 Nov 12 06:04 gallant.fnt
-r--r--r--  1 root  wheel  8742 Nov 12 06:04 vgarom-8x14.fnt
-r--r--r--  1 root  wheel  9864 Nov 12 06:04 vgarom-8x16.fnt
-r--r--r--  1 root  wheel  5384 Nov 12 06:04 vgarom-8x8.fnt
-r--r--r--  1 root  wheel  5400 Nov 12 06:04 vgarom-thin-8x16.fnt
-r--r--r--  1 root  wheel  2704 Nov 12 06:04 vgarom-thin-8x8.fnt

BashCopy

Шрифт gallant.fnt – красивый но не поддерживает кириллические символы.

Консольный драйвер vt (4) по умолчанию использует для работы режим VGA разрешением 640×480×16 (vt_vga).

Для использования UTF-8, необходимо произвести следующие действия:

— добавить в /boot/loader.conf строку:

kern.vty=vt

означает использование консольного драйвера vt вместо syscons

Согласно информации на https://wiki.freebsd.org/Newcons VT не поддерживает экранные заставки и выключение монитора в частности.
Поэтому все вопросы, касающиеся этой темы, можно считать решенными. Ответ на вопрос, как сделать включение заставки в VT, ответ – НИКАК

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

#-- закомментарить *vga*, *sc* и оставить только *vt*
#device        vga             # VGA video card driver                 
#device        sc                                                      
device         vt                                                              
device         vt_vga

BashCopy

ps. ядро GENERIC 10.1 уже собрано с поддержкой vt (4) (man vt).

— добавить в /etc/rc.conf

#-- Russians keymap, uncomment that you preffer
# CAPS switch to russian
keymap="ru"
# SHIFT switch to russian, top keyboard raw as number
#keymap="ru.shift"
# CTRL+SHIFT switch to russian
#keymap="ru.win"
#-- font load
font8x16="vgarom-8x16"

BashCopy

Шрифт vgarom используется системой по умолчанию, можно не задавать, указан как пример задания фонта, когда появится выбор. верхнее означает что на данный момент можно использовать, как это было и ранее, три варианта клавиатурного маппинга, любой который Вам удобнее, раскомментарьте один, который Вам предпочтительней (выше это keymap=«ru»):

keymap="ru" – переключение на русский клавишей CAPS Lock
keymap="ru.shift" – переключение на русский клавишей CAPS Lock, но верхний ряд на клавиатуре по умолчанию будет цифровой
keymap="ru.win" – переключение на русский клавишами CTRL+SHIFT

выбор фонтов пока отсутствует, по умолчанию в наличии пока лишь следующие:
gallant.fnt – красивый, но не поддерживает русский
vgarom-8×8.fnt – матрица 8×8 с поддержкой русских символов
vgarom-8×14.fnt – матрица 8×14 с поддержкой русских символов
vgarom-8×16.fnt – матрица 8×16 с поддержкой русских символов
vgarom-thin-8×8.fnt
vgarom-thin-8×16.fnt

Консольные фонты Terminus, можно скачать:
фонт 8×16: ter-u16.fnt
чуть другой фонт 8×16: ter-u8x16.fnt
фонт 16×32: ter-u32.fnt

загрузить вручную, например:

# vidcontrol -f ter-u32.fnt

BashCopy

или положить в /usr/share/vt/fonts/ и настроить /etc/rc.conf, например:

font8x16="ter-u8x16.fnt"

BashCopy

Шрифты 16×32 нужны(удобны) для широкоформатных мониторов, для загрузки фонта ter-u32.fnt (16×32), нужно изменить скрипт /etc/rc.d/syscons или использовать /etc/rc.local и /etc/rc.conf.local для загрузки 16×32 фонтов.

Тип эмулируемого терминала для UTF-8 консоли: xterm

Начиная с 9.0, для syscons (4) драйвера и очень важно – для vt (4) драйвера, в /etc/ttys необходимо использовать тип эмулируемого терминала xterm:

ttyv0   "/usr/libexec/getty Pc"         xterm   on  secure
# Virtual terminals
ttyv1   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv2   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv3   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv4   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv5   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv6   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv7   "/usr/libexec/getty Pc"         xterm   on  secure

(чтобы перечитался /etc/ttys)

/etc/rc.d/syscons restart

BashCopy

Ранее, syscons (4), для KOI8-R тип эмулируемого терминала cons25r, для KOI8-Ucons25u. Для CP437 (VGA default) – cons25, US-ASCIIcons25w.

При использовании KMS драйверов: i915kms или radeonkms в /boot/loader.conf добавить:

kern.vt.fb.default_mode="1024x768"

BashCopy

Для использования vt (4) драйвера в text-mode, /boot/loader.conf:

hw.vga.textmode=1

BashCopy

Если ядро собрано с поддержкой обоих драйверов: *sc*(4) и *vt*(4), старый драйвер можно вернуть, задав в /boot/loader.conf:

kern.vty=sc

BashCopy

2. Локализация login shells и использование login class.

Описан в FreeBSD HandBook и выполняется как обычно, локализация login shell’ов и может быть использована совместно с настройкой login class через описание его в /etc/login.conf

Локализация представляет из себя следующую конструкцию:

LanguageCode_CountryCode.Encoding

BashCopy

где: LanguageCode_Country Code Description можно выбрать одно из значений:
en_US English, United States ru_RU Russian, Russia

команда покажет все присутствующие в системе locale:

# locale -a | more

BashCopy

Работа с charater set (charset) для языков, например:

– ISO8859-1, ISO8859-15, KOI8-R, CP1251, CP437 и тд и тп описана в multibyte (3), а список charsets для языков можно найти в IANA Registry

FreeBSD использует Xorg-compatible locale encodings.

1) использование login класса

— можно отредактировать /etc/login.conf и изменить настройки класса «russian» или создать отдельный класс russianu

a) изменяем класс russian в /etc/login.conf

russian|Russian Users Accounts:
        :charset=KOI8-R:
        :lang=ru_RU.KOI8-R:
        :tc=default:

BashCopy

на

russian|Russian Users Accounts:
        :charset=UTF-8:
        :lang=ru_RU.UTF-8:
        :tc=default:

BashCopy

или

b) создаем в дополнение к классу «russian», новый класс «russianu»

russianu|Russian Users Accounts UTF-8:
        :charset=UTF-8:
        :lang=ru_RU.UTF-8:
        :tc=default:

BashCopy

По завершении перестраиваем хеш-базу:

# cap_mkdb /etc/login.conf

BashCopy

Все, осталось перевести пользователей которым нужен UTF-8 на новый класс используя на выбор: passwd (1), pw (8), chpass (1), vipw (8)

Пример:

# pw user mod alex -L russianu

BashCopy

2) настройка locale в shell/bash/csh/tcsh

для настройки локализации в шелах, необходимо соответствующим образом настроить тот или иной shell, см. соответствующий man

Настройка локализации в login shell’ах сводится как минимум к заданию переменных:

LANG
MM_CHARSET

BashCopy

в пользовательских файлах: ~/.login_conf и/или пользовательских стартап

shell файлах: ~/.profile, ~/.bashrc, или ~/.cshrc.

BashCopy

sh/bash:

export LANG=ru_RU.UTF-8
export MM_CHARSET=UTF-8

BashCopy

csh/tsch:

setenv LANG ru_RU.UTF-8
setenv MM_CHARSET UTF-8

BashCopy

Или в системных стартап shell файлах: /etc/profile и /etc/csh.login

Для bash необходимо создать в домашней директории файл .inputrc

set convert-meta Off
set input-meta On
set output-meta On

BashCopy

Перекодировка имен файлов и директорий.
— необходимо установить и использовать утилиту convmv, из пакетов или портов

# pkg install converters/convmv
# make -C /usr/ports/converters/convmv install clean
# man convmv

BashCopy

пример использования:

# convmv -f koi8-r -t utf-8 *
# convmv -f koi8-r -t utf-8 --notest *
# convmv -r -f koi8-r -t utf-8 --notest *

BashCopy

При использовании утилиты convmv, возможны проблемы с перекодированием отдельных символов.

Перекодировка содержимого файлов.

Можно воспользоваться утилитами iconv и recode:

iconv (интегрирована в FreeBSD 10.x)

/usr/ports/converters/libiconv в более ранних версиях

примеры использования:

iconv:

# man iconv
# iconv -c -f koi8-r -t utf-8 inputfile
# iconv -c -f koi8-r -t utf-8 inputfile > outputfile
# iconv -c -f koi8-r -t utf-8 < inputfile > outputfile

BashCopy

recode:

# make -C /usr/ports/converters/recode install clean
# man recode
# recode koi8-r..utf-8 inputfile
# recode koi8-r..utf-8 < inputfile > outputfile

BashCopy

При использовании утилиты iconv, возможны проблемы с перекодированием отдельных символов, утилита recode, работает более адекватно.

Удаленный терминальный доступ.

Для удаленного терминального доступа из системы с UTF-8 локализацией к системам с locale отличной от UTF-8, можно воспользоваться утилитой luit:

пример использования luit (man luit):

# luit -encoding "KOI8-R" slogin username@host.domain

BashCopy

в качестве encoding использовать charset соответствующие удаленному locale, в данном примере KOI8-R

Удаленный терминальный доступ из Windows в Unix-like OS с locale UTF-8:

— использование утилиты putty, настройка:

Putty -> Window -> Translation -> Remote character set: UTF-8

3. Локализация Xorg

осталась неизменной, так как основная масса DE, WM и X-Apps в настоящее время ориентирована на работу с UTF-8, больше не нужно использовать shell-wrapper’ы или переопределять переменную LANG для их запуска.

фонты в Xorg:

— при использовании locale == ru_RU.UTF-8, необходимо использовать фонты с поддержкой iso10646

misc содержат исправленные фонты iso10646, но по умолчанию не прописаны в fonts.aliases, если есть привычка использования алиасов, придется прописать их самостоятельно.

Например, как советует Markus Kuhn Unicode fonts and tools for X11.

— фонты misc с iso10646 и остальные фонты с iso10646, необходимо указывать первыми в xorg.conf

например так:

FontPath     "/usr/local/lib/X11/fonts/misc/"
        FontPath     "/usr/local/lib/X11/fonts/100dpi/"
        FontPath     "/usr/local/lib/X11/fonts/75dpi/"
        FontPath     "/usr/local/lib/X11/fonts/terminus-font/"
        FontPath     "/usr/local/lib/X11/fonts/bitstream-vera/"
        FontPath     "/usr/local/lib/X11/fonts/dejavu/"
        FontPath     "/usr/local/lib/X11/fonts/freefont/"
        FontPath     "/usr/local/lib/X11/fonts/unifont/"
        FontPath     "/usr/local/lib/X11/fonts/local/"
        FontPath     "/usr/local/lib/X11/fonts/webfonts/"
        FontPath     "/usr/local/lib/X11/fonts/urw/"
        FontPath     "/usr/local/lib/X11/fonts/cyrillic/"
        FontPath     "/usr/local/lib/X11/fonts/artwiz-ru/"
        FontPath     "/usr/local/lib/X11/fonts/freefont-ttf/"
        FontPath     "/usr/local/lib/X11/fonts/urwfonts-ttf/"
        FontPath     "/usr/local/lib/X11/fonts/TTF/"
        FontPath     "/usr/local/lib/X11/fonts/OTF/"
        FontPath     "/usr/local/lib/X11/fonts/Type1/"

BashCopy

Вы можете установить собственные предпочтения.

посмотреть установленные фонты:

# fc-list
# ls -laR /usr/local/etc/fonts/

BashCopy

— посмотреть фонты iso10646

# xlsfonts | grep iso10646
# xlsfonts | grep "-misc-fixed-medium" | grep iso10646 
# xlsfonts | grep "-misc-fixed-medium-r-semicondensed" | grep 10646

BashCopy

графические эмуляторы терминала с encoding, примеры с KOI8-R:

mate-terminal, gnome-terminal:

# sh -c "export LANG=ru_RU.KOI8-R CHARSET=KOI8-R; gnome-terminal --geometry 80x35 --disable-factory"
# sh -c "export LANG=ru_RU.KOI8-R CHARSET=KOI8-R; mate-terminal --geometry 80x35 --disable-factory"
# sh -c "export LANG=ru_RU.KOI8-R CHARSET=KOI8-R; xfce4-terminal"

BashCopy

переменные среды LANG,CHARSET в соответствии с использованием locale, например на удаленной стороне, или для локальной работы с файлами в KOI8-Rxterm с encoding

# xterm -en [koi8-r|cp1251|...]

BashCopy

4. Локализация Applications (приложений).

Зависит исключительно от написания приложения в соответствии со стандартом i18n и работой с базами termcap в случае xBSD или terminfo в случае Linux или SYSV-based для эмулируемого терминала TERM.

К сожалению, консольных фонтов пока, очень мало, не говоря уже о хороших и красивых фонтах.
Некоторые фонты и клавиатурный маппинг от Александра Рыбалко, можно найти:
https://people.freebsd.org/~ray/newcons/fonts/
https://people.freebsd.org/~ray/newcons/newcons_kbd/
https://people.freebsd.org/~emaste/newcons/

Пример конвертации bdf фонта в fnt используя vtfontcvt и его загрузку используя vidcontrol, см: https://wiki.freebsd.org/Newcons

Минимум позволяющий работать в консоли с UTF-8:
— отображение – /usr/bin/less (использовать в качестве PAGER)
— редактирование – /usr/bin/vi , редактор Vi в 10.1 собран с поддержкой wide-char
— псевдографика в mc выглядит красиво, встроенный редактор поддерживает utf-8
— любимый многими, простой редактор /usr/bin/ee не поддерживает utf-8, отображает криво, но позволяет набирать текст «вслепую».
— настройку chrasets и работу samba3x, samba4x – не проверял

Все вышенаписанное проверено на реальном железе с FreeBSD 10.1 и в гостевой FreeBSD 10.1 под VirtualBox, включая Xorg и несколько DE и WM.

Практика:
— используем syscons (4) для работы в консоли с KOI8-R, CP1251, CP866
— используем vt (4) для работы в консоли только с UTF-8

Вывод: наконец можно постепенно избавиться от разнообразия: CP866,CP1251,KOI8-R и тд и тп и использовать одну универсальную кодировку UTF-8.

источник: http://unix1.jinr.ru/~lavr/vt/vtcons.html, https://blognode.ru/freebsd-utf-8-v-konsoli-i-terminale

Проксирование запросов Apache во внутренюю сеть

Часть 1. Настройка домашнего хостинга на FreeBSD

Для трансляции изображения с камеры из внутренней сети на сайт потребуется прокси модуль апача. Само вещание ведёт ContaCam 7.0(для Windows XP). Понравилось, что сразу и онлайн-вещание и возможность посмотреть записи обнаруженных движений. Вставил трансляцию на страницу с помощью фрейма: <iframe allowtransparency=»true» scrolling=»no» style=»border:1px solid #ededed» src=»http://webcam.site:8800″ frameborder=»0″ height=»750″ width=»750″>

Чтобы маршрут до DVR сервера апач выбрал через внутреннюю сеть, включаем mod_proxy. Это модуль Apache для перенаправления соединений (то есть, шлюз, пропускающий их). Он доступен для использования так же, как любой другой стандартный модуль или базовая конфигурация. В целом, mod_proxy – это не один модуль, а набор модулей, каждый из которых обладает особенными функциональными возможностями.

Некоторые из этих модулей:

  • mod_proxy: основной прокси-модуль Apache, который управляет соединениями и перенаправляет их.
  • mod_proxy_http: функции прокси-сервера для протоколов HTTP и HTTPS.
  • mod_proxy_ftp: функции прокси-сервера для протокола FTP.
  • mod_proxy_connect: тунеллирование SSL.
  • mod_proxy_ajp: взаимодействие с протоколом AJP.
  • mod_proxy_wstunnel: работа с веб-сокетами (например, WS и WSS).
  • mod_proxy_balancer: кластеризация и балансировка нагрузки.
  • mod_cache: кэширование.
  • mod_headers: управление заголовками HTTP.
  • mod_deflate: сжатие.

Примечание: чтобы получить дополнительную информацию о mod_proxy и Apache, читайте официальную документацию Apache.

Активация модулей

В httpd.conf раскомментировать нужные proxy модули Возможно апач попросит раскомментировать дополнительно модуль xml2enc

Также можно выполнить следующие команды, чтобы активировать модули по одному:

a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html

В файле конфигурации виртуальных хостов вставить блок кода:

<VirtualHost *:*>
ProxyPreserveHost On
# Servers to proxy the connection, or;
# List of application servers:
# Usage:
# ProxyPass / http://[IP Addr.]:[port]/
# ProxyPassReverse / http://[IP Addr.]:[port]/
# Example:
ProxyPass / http://0.0.0.0:8080/
ProxyPassReverse / http://0.0.0.0:8080/
ServerName localhost
</VirtualHost>

Активация балансировки нагрузки

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

Отредактируйте настройки виртуального хоста (как в предыдущем разделе), используя следующие конфигурации:

<Proxy balancer://mycluster>
# Define back-end servers:
# Server 1
BalancerMember http://0.0.0.0:8080/
# Server 2
BalancerMember http://0.0.0.0:8081/
</Proxy>
<VirtualHost *:*>
# Apply VH settings as desired
# However, configure ProxyPass argument to
# use "mycluster" to balance the load
ProxyPass / balancer://mycluster
</VirtualHost>

Активация SSL для поддержки обратного прокси

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

Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine On
# Set the path to SSL certificate
# Usage: SSLCertificateFile /path/to/cert.pem
SSLCertificateFile /etc/apache2/ssl/file.pem
# Servers to proxy the connection, or;
# List of application servers:
# Usage:
# ProxyPass / http://[IP Addr.]:[port]/
# ProxyPassReverse / http://[IP Addr.]:[port]/
# Example:
ProxyPass / http://0.0.0.0:8080/
ProxyPassReverse / http://0.0.0.0:8080/
# Or, balance the load:
# ProxyPass / balancer://balancer_cluster_name
</VirtualHost>

Перезапустить службу апача.

Теперь Apache будет проксировать соединения на внутренние серверы приложений.

Источник: https://www.8host.com/blog/ustanovka-http-servera-apache-kak-obratnogo-proksi-s-pomoshhyu-mod_proxy/

Как осуществить простейшую веб-трансляцию (видеорегистратор + VLC media player + WordPress + VideoEmbed)

Задача такова: с минимальными усилиями вставить живое видео с домашнего компа(видеорегистратора) или IP камеры  из внутренней(OpenVPN) сети на сайт под управлением WordPress. Пример моей трансляции тут. Читать далее «Как осуществить простейшую веб-трансляцию (видеорегистратор + VLC media player + WordPress + VideoEmbed)»

Zabbix на FreeBSD11 и mariadb10.3 php73

Система мониторинга.

Добавить перед установкой в /etc/make.conf:

DEFAULT_VERSIONS+= ssl=openssl
DEFAULT_VERSIONS+= mysql=10.3
DEFAULT_VERSIONS+= php=7.3

этим сохраним mariadb, т.к. zabbix по-умолчанию ищет установленный в системе mysql (актуально на март 2019го)

Хостинг на Freebsd 11 mariadb103 php73 и apache24

После обновления php56 на php7 на сервере с MySQL-server, перестали работать сайты на моем хостинге(белый лист показывал браузер). Решение нашел благодаря нижеследующей статье. Обратить внимание на 3 ньюанса на которых «зависал»:

  1. Перейти с mysql на mariadb. Миграция с mysql-server на mariadb проходит как по рельсам. Базы удаленного mysql подцепились сами, ничего импортировать даже не пришлось. (этот пункт не факт, что обязательный, я делал со страху).
  2. Добавить файл php.conf в Include апача. Закоментировать httpd.conf раздел, где упоминался php5.
  3. В конце установать phpmyadmin для php73, постотреть доступные сейчас пакеты:
    pkg search phpmyadmin

и затем уже установить подходящий для своей версии php.
После установки phpmyadmin заработало.


Читать далее «Хостинг на Freebsd 11 mariadb103 php73 и apache24»

Проверка нескольких дисков chkdsk

Задача: на машине стоят 3 диска(c, d, e). Нужно добавить в расписание проверку сразу нескольких дисков на ошибки с помощью команды chkdsk с поиском поврежденных секторов и восстановлением, и выводом на экран списка файлов.

Решение: создать CMD или BAT и добавить в расписание. Содержимое:

echo Y|chkdsk c: /F /R /V && echo Y|chkdsk d: /F /R /V && echo Y|chkdsk e: /F /R /V

Читать далее «Проверка нескольких дисков chkdsk»

Мониторинг логов онлайн

Viewing live Apache logs with tail, grep and egrep

There are times you may need to monitor what’s happening on an Apache web server as is happens. This can be done from the command line using a combination of the tail command, which outputs the last part of a file, and grep or egrep which are used for regular expression pattern matching.

Viewing everything

If the log file to view is at /var/log/apache/myvirtualhost.log the first command below will show the last few lines from the file and then continue to echo to the command line as new lines are entered into the log file i.e. as additional requests are made to the web server.

tail -f /var/log/apache/myvirtualhost.log

The -f flag is what makes the tail command output additional data as it is appended to the log.

Viewing everything from a specific IP address

Tail can be combined with grep to pattern match. To filter the results to only show requests for a specific IP address (in this example 192.168.206.1) pipe the output from tail through grep like so:

tail -f /var/log/apache/myvirtualhost.log | grep 192.168.206.1

This can be useful to only show results from your own requests.

Note that the above example would also match e.g. 192.168.206.10 etc and that dots will match any character not just the period divider; if this is a concern then escape the dots with \ and put the IP address in brackets with a space after the last digit in the IP address like this:

tail -f /var/log/apache/myvirtualhost.log | grep "192\.168\.206\.1 "

Viewing everything excluding a specific IP address

Adding the -v flag to grep excludes the pattern. If you want to exclude requests from your own IP address but show everything else this can be useful:

tail -f /var/log/apache/myvirtualhost.log | grep -v "192\.168\.206\.1 "

Including particular file types only

If you only want to watch for requests for a particular file type, or even a particular file then use the same concept as grepping for the IP address. For example to show only jpg files:

tail -f /var/log/apache/myvirtualhost.log | grep .jpg

And to match a specific file, for example the robots.txt file if perhaps you are looking out for when a search engine bot hits the site:

tail -f /var/log/apache/myvirtualhost.log | grep robots.txt

Excluding particular file types

To show only webpages can be problematic especially if there is no common extension for the files being served, and some might end with / whereas other might end with .html, or there might be query strings at the end of the URL which present issues with pattern matching.

A possible solution is instead to exclude everything that’s not a webpage. Multiple exclusions can be entered by separating them with the pipe | character when using egrep instead of grep. To exclude several common file extensions and show hopefully just web pages do this:

tail -f /var/log/apache/myvirtualhost.log | egrep -v "(.gif|.jpg|.png|.swf|.ico|.txt|.xml|.css|.js|.rss)"

Note that because the regular expression contains the pipe character the expression must be contained within quotes. You can adjust the above list of extensions to suit your own conditions.

Источник: https://www.electrictoolbox.com/view-apache-logs-tail-grep-egrep/