admin

Настройка apache для работы через https

1. Добавиль в настройки виртуального хоста следующее, где xxxx – номер порта, например, https://site.com:xxxx

Listen xxxx

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /var/www/html/site/site.crt
SSLCertificateKeyFile /var/www/html/site/site.key

2.Генерируем site.crt и site.key на 365 дней

cd /var/www/html/site
openssl req -x509 -days 365 -newkey rsa:2048 -keyout site.key -out site.crt

В данном случае при запуске apache будет запрашивать парольную фразу passphrase. Чтобы избежать это выполним следующее:

cp site.key site.key.org
openssl rsa -in site.key.org -out site.key

Генерирование самоподписанного сертификата (всегда untrusted) выгдядит так на 365 дней
openssl x509 -req -days 365 -in site.csr -signkey site.key -out site.crt

Обновление FreeBSD c 7.4 до 9.2 (обновление через 8.4)

Имеем рабочий сервер под управлением FreeBSD 7.4

Необходимо обновить его до последней стабильной версии – 9.2

Основная причина – окончание поддержки FreeBSD 7.x и множество нерабочих портов.

Сразу обновить с 7.4 до 9.2 не получится, для начала надо сделать промежуточное обновление до 8.4.

Поехали…

1. Обновление 7.4 -> 8.4

удаляем старые исходники:

# rm -r /usr/obj

# rm -r /usr/src

закачиваем новые:

# svn co svn://svn.freebsd.org/base/stable/8 /usr/src

# cd /usr/src

# mergemaster -p

# make -j4 buildworld

# make -j4 buildkernel

# make installkernel

# make installworld

# mergemaster -iU

и получаем ошибку:

—-

*** Creating the temporary root environment in /var/tmp/temproot

*** /var/tmp/temproot ready for use

*** Creating and populating directory structure in /var/tmp/temproot

*** FATAL ERROR: Cannot ‘cd’ to /usr/src and install files to

the temproot environment

—-

поможет перезагрузка

# reboot

повторяем еще раз

# mergemaster -iU

ошибка не повторилась,

подтверждал все вопросы системы про удаление или выполнение(y)

# reboot

проверяем версию обновленной системы:

# uname -r

8.4-STABLE

2. теперь обновляю 8.4 -> 9.2

все аналогично предыдущему обновлению:

# rm -r /usr/obj

# rm -r /usr/src

# svn co svn://svn.freebsd.org/base/stable/9 /usr/src

# cd /usr/src

# mergemaster -p

# make -j4 buildworld

# make -j4 buildkernel

# make installkernel

# make installworld

# mergemaster -iU

# reboot

ОС не поднялась, ошибка загрузки системы “gm0s1a failed with error 19″:

Mounting from ufs:/dev/mirror/gm0s1a failed with error 19.

Loader variables:

vfs.root.mountfrom=ufs:/dev/mirror/gm0s1a

vfs.root.mountfrom.options=rw

Manual root filesystem specification:

: [options]

Mount using filesystem

and with the specified (optional) option list.

eg. ufs:/dev/da0s1a

zfs:tank

cd9660:/dev/acd0 ro

(which is equivalent to: mount -t cd9660 -o ro /dev/acd0 /)

? List valid disk boot devices

. Yield 1 second (for background tasks)

Abort manual input

mountroot>

т.к. сервер HP ProLiant DL120 G5, то зашел в iLo и перегрузил сервер,

после чего в loader prompt и выполнены команды:

OK set kern.geom.part.check_integrity=0

OK boot

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

iLO remote console crashes with error “com.serverengines.rdr.EndOfStream: EndOfStream”

проблема с iLo решена по этому мануалу.

поехали дальше…

проблема с загрузкой ОС возникает при наличии программного RAID – gmirror

проверить можно так:

# gpart status

Name Status Components

mirror/gm0s1 CORRUPT mirror/gm0

# gpart show

=> 63 488397104 mirror/gm0 MBR (232G) [CORRUPT]

63 488397105 1 freebsd [active] (232G)

=> 0 488397105 mirror/gm0s1 BSD (232G)

0 20971520 1 freebsd-ufs (10G)

20971520 8288698 2 freebsd-swap (4G)

29260218 20971520 4 freebsd-ufs (10G)

50231738 204800000 5 freebsd-ufs (97G)

255031738 233365367 6 freebsd-ufs (111G)

======================

есть три решения:

1) отключить механизм целостности разделов:

# echo “kern.geom.part.check_integrity=0″ >> /boot/loader.conf

2) временно отключить проверку и последовательно пересоздать каждую из нод зеркала

3) временно отключить проверку и загрузится в single mode и прогнать fsck

до окончания обновления выбран 1-й вариант, продолжение следует

проверяем версию обновленной системы:

# uname -r

9.2-STABLE

3. обновление портов

удаляем старые исходники портов:

# rm -r /usr/ports

получаем новые:

# portsnap fetch

# portsnap extract

# portsnap fetch update

указываем нужную версию питона

# echo “DEFAULT_VERSIONS=python=2.7 python2=2.7 python3=3.3″ >> /etc/make.conf

сперва обновляем утилиту обновления портов:

# portupgrade -frR portupgrade

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

# portupgrade -farR

Взято от сюда http://www.net-adm.ru/articles/57-upgrade-freebsd-7-to-9.html

Изменение локализации в debian/ubuntu

apt-get install locales – на все вопросы вносим Y.
vi /etc/environment – открываем файл на редактирование и удаляем из него любые записи и вносим одну: LANG=”ru_RU.UTF-8″
Помощь по использованию vi находится здесь: Vi или откройте файл через WinSCP
Редактируем файл /etc/locale.gen тем же vi: vi /etc/locale.gen – В списке находим ru_RU.UTF-8 UTF-8 и удаляем
значек # перед записью. Сохраняем файл.
locale-gen – запускаем команду для генерации локали. Пример ниже:
root@test:~# locale-gen
Generating locales (this might take a while)…
ru_RU.UTF-8… done
Generation complete.
Перезаходим на сервер. В клиенте, который Вы используете для связи с сервером делаем следующее (большинство людей
использует Putty: SSH):
После того как Вы вошли на сервер, кликните на верхнюю часть окна Putty правой кнопкой мыши, выше черного. Выберите
Change Settings -> Window – Translation -> из списка выберите UTF-8 и нажмите Apply внизу.
Теперь Вы сможете видеть русский язык в окне связи с сервером при выполнении различных команд.

Подключение бесплатных репозитарий к RHEL вместо платной подписки

Чтобы пакеты устанавливать легко с помощью команды
yum install [packet]
Изменяем настройки файла /etc/yum.conf.d. Можно прям в него добавить или сделать так, как написано в конце этого файла, следующие строки:
[centos-base]
name=CentOS-5 – Base
mirrorlist=http://mirrorlist.centos.org/?release=5&arch=$basearch&repo=os
enabled=1
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#released updates
[centos-updates]
name=CentOS-5 – Updates
baseurl=http://mirror.centos.org/centos/5/updates/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

И всё

Настройка доступа по ssh к консоли с помощью putty

Для настройки доступа по ssh к консоли с помощью putty необходимо в терминале сервера сгенерировать пару ключей:
1) Создать каталог в домашней папке пользователя ~user/.ssh (обычно ~user находится в /home/user)
mkdir ~user/.ssh
cd ~user/.ssh
2) Сгенерировать ключ, указав путь файла ~user/.ssh/id_rsa
ssh-keygen -t rsa -b 2048
3) Появятся два файла id_rsa и id_rsa.pub. Это файлы чачтного и публичного ключей.
На сервере хранится публичный ключ. Скопируем в тот файл, который используется sshd.
cp id_rsa authorized_keys
4) authorized_keys должен лежать в каталоге ~user/.ssh. Он будет использоваться sshd для проверки частного ключа. Частный ключ отправим безопасно пользователю:
ssh-copy-id -i private_key_file user@machine (где private_key_file это файл rsa)
или небезопасно его можно просто скопировать любым доступным способом на машину пользователя.
5) Далее, если подключение будет происходить с помощью putty, то необходимо сгенерировать специальный ключ утилитой “PUTTY Key Generator” (ее надо качать отдельно) таким образом:
Запускае утилиту. Нажимаем кнопку Load, и открываем файл private_key_file. Далее нажимаем Save private key. Сохранится файл с ключем под названием private_key_file.ppk

После этого этот файл можно использовать при подключении по ssh через Putty.
6) Осталось настроить sshd на сервере. Для этого корректируем файл sshd_config:
vim /etc/ssh/sshd_config
Закомментировать (знаком #) строки
PasswordAuthentication yes
PermitEmptyPasswords no
Параметр LoginGraceTime (время, за которое необходимо ввести пароль) установить равным 15 сек.
LoginGraceTime 15
Также можно использовать для ограничения доступа только для определенных пользователей строку:
AllowUsers user user1 user2 user3
Сохраняем файл и перезапускаем sshd. На redhat таким образом:
service sshd restart

Автозагрузка FreeBSD, RedHat

В redhat добавить в автозагрузку:

chkconfig –add [имя]

Пример

chkconfig –add postfix

Посмотреть список

chkconfig –list

 

В FreeBSD найти файл /etc/rc.conf и добавить строку

[имя]_enable=”YES”

Пример

defaultrouter=”xx.xx.xx.xx”
gateway_enable=”YES”
hostname=”freebsdhost.ru”
ifconfig_em1=”inet yy.yy.yy.yy  netmask 255.255.0.0″
inetd_enable=”YES”
keymap=”ru.koi8-r”
linux_enable=”YES”
moused_enable=”YES”
sshd_enable=”YES”
mysql_enable=”YES”
gdm_enable=”YES”
gdm_lang=”ru_RU.UTF-8″

Сами скрипты, которые запускает rc.conf лежат в директории /etc/rc.d.

Более подробно все есть в man rc.conf. Там же описывается что такое ifconfig_em1, hostname.

 

 

Плагин MODX Revolution для разбития длинного текста на страницы

Текст между <!– content –> будет разбит на страницы с навигацией внизу. Считает количество <p. На каждой страницы 30 ($count_delimiter_per_page=30;)  знаков <p ($delimiter = ‘<p’;)

 

## CUSTOMIZE ##
$separator = ‘<!– content –>’;
$delimiter = ‘<p’;
$count_delimiter_per_page=30;
/* sample 1 */
/*
$tplLinkNext = ‘<a href=”[[+link]]”>Next page</a>’;
$tplLinkPrev = ‘<a href=”[[+link]]”>Prev page</a>’;
$tplLinkNav = ‘
<div style=”margin-top:1.2em;font-size:.9em; text-align:center”>
[[+linkprev]]
 Page [[+current]] of [[+total]] 
[[+linknext]]
</div>’;
*/
/* sample 2 */
$tplLinkNext = ‘<a href=”[[+link]]”>Next</a>’;
$tplLinkPrev = ‘<a href=”[[+link]]”>Prev</a>’;
$tplLinkNav = ‘<div style=”margin-top:1.2em;font-size:.9em; text-align:center”>
Pages: 
[[+linkprev]]
 [[+pages]] 
[[+linknext]]
</div>’;

## DO NOT EDIT BELOW THIS LINE ##
/*
$e = &$modx->Event;

switch($e->name) {
case ‘OnWebPagePrerender’:
*/

switch ($modx->event->name) {
case ‘OnWebPagePrerender’:
$all_content = explode($separator,$modx->resource->_output);

if (count($all_content) > 2) {$pip_content = $all_content[1];}
else {return;}

$pip_content_p = explode($delimiter,$pip_content);
$pip_content_first = array_shift($pip_content_p);
$pip_pagecount=ceil(count($pip_content_p)/$count_delimiter_per_page);

if ($pip_pagecount > 1)
{
$pip_currentpage = isset($_GET['page']) ? intval($_GET['page']): 1;
if ($pip_currentpage > $pip_pagecount || $pip_currentpage < 1) { $pip_currentpage = 1; }

$char = ($modx->config['friendly_urls'] == 0) ? “&” : “?”;
/* $url = $modx->makeurl($modx->documentObject['id'],”,$char.’page=’);*/
$url = $modx->makeurl($modx->resource->get(‘id’),”,$char.’page=’);

$prevpage = $pip_currentpage-1;
$nextpage = $pip_currentpage+1;
$linkprev = ($prevpage>0) ? str_replace(‘[[+link]]’,$url.$prevpage,$tplLinkPrev) : ”;
$linknext = ($nextpage>$pip_pagecount) ? ” : str_replace(“[[+link]]”,$url.$nextpage,$tplLinkNext);

$pip_template = str_replace(‘[[+linkprev]]’,$linkprev,$tplLinkNav);
$pip_template = str_replace(‘[[+linknext]]’,$linknext,$pip_template);
$pip_template = str_replace(‘[[+total]]’,$pip_pagecount,$pip_template);
$pip_template = str_replace(‘[[+current]]’,$pip_currentpage,$pip_template);

$pages=”;
for ($i=1;$i<=$pip_pagecount;$i++){
$pages .= ($i==$pip_currentpage) ? $i : ‘<a href=”‘.$url.$i.’”>’.$i.’</a>’;
$pages .= ($i==$pip_pagecount) ? ” : ‘ | ‘;
}
$pip_template=str_replace(‘[[+pages]]’,$pages,$pip_template);

$pip_content_p=array_slice($pip_content_p,$count_delimiter_per_page*$pip_currentpage-$count_delimiter_per_page,$count_delimiter_per_page);
$all_content[1]= (($pip_currentpage==1)?$pip_content_first:”).$delimiter.implode($delimiter,$pip_content_p).$pip_template;
$modx->resource->_output=implode(”,$all_content);
}

break;
}
return;
/*
break;
default:
return;
break;
}
*/

Перенос сайта MODX Revo на другой хостинг

Периодически возникает проблема и вопрос в переносе сайта MODX Revo с локального сервера на рабочий, с хостинга на хостинг и т.д. У большинства получается это делать со скрипом. Вот вам небольшая пошаговая справка по переносу.

1). делаем бэкап базы (надеюсь, что это понятно).
2). делаем копию всех рабочих файлов на новый сервер
3). исправляем пути в следующих файлах:

/config.core.php
/core/config/config.inc.php
/connectors/config.core.php
/manager/config.core.php

4) удаляем все файлы из папки /core/cache
5). заходим в админку
6). в меню: Сайт —> Обновить сайт
7). в меню: Безопасность — Перезагрузить права доступа
8). в меню: Безопасность — Завершить все сеансы

Горячие клавиши для Midnight Commander

Ctrl и Shift обозначают соответствующие клавиши клавиатуры, Meta – условное обозначение для набора мета-клавиш, на современном PC это обычно Alt или Esc

Горячие клавиши для файловых панелей

F3 Просмотр файла
F4 Редактирование файла
Insert Выделение текущего объекта
+ вызывает окно для выделения группы файлов (можно использовать регулярные выражения)
\ снимает отметку с группы файлов (действие, обратное тому, которое вызывается по клавише +)
Meta+Enter Вставить ‘текущий объект’1 в командную строку
Meta+. не показывать или показать скрытые файлы или каталоги (начинаются на точку ‘.’)
Meta+, Переключить режим отображения панелей (вертикально/горизонтально)2
Meta+a
Ctrl+x,p
Посылает в командную строку полный путь в текущей активной панели
Meta+c Вызывается меню быстрой смены текущего каталога на активной панели
Meta+g отмечает первый файл или каталог в отображаемом списке на панели
Meta+h Вызов меню последних выполненных команд
Meta+i Смена текущего каталога на неактивной панели, на каталог в котором вы находитесь в активной панели
Meta+j отмечает последний файл или каталог в отображаемом списке на панели
Meta+n Вернуть последующую выполненную командную строку
Meta+o неактивная панель переходит в каталог на который указывает активная панель
Meta+p Вернуть предыдущую выполненную командную строку
Meta+r отмечает средний файл или каталог в отображаемом списке на панели
Meta+t Смена режима работы панели (‘Стандартный’,'Укороченный’,'Расширенный’)
Meta+Shift+? Вызывается меню расширенного поиска файлов
Meta+Shift+A
Ctrl+x,Ctrl+p
Посылает в командную строку полный путь в нективной панели
Meta+Shift+H Отобразить историю каталогов
Ctrl+\ Вызывается меню часто используемых каталогов
Ctrl+l Перерисовать экран
Ctrl+o Скрытие/показ панелей
Ctrl+r перечитать содержимое каталога
Ctrl+s Быстрый поиск файла или каталога
Ctrl+Space Показать размер текущего каталога
Ctrl+x,a Отображается список активных соединений виртуальных файловых систем
Ctrl+x,c Просмотр/правка прав доступа текущего объекта
Ctrl+x,i Быстрый просмотр информации о текущем объекте на второй панели
Ctrl+x,j Показ фоновых задач
Ctrl+x,l Создать жесткую ссылку с текущего объекта
Ctrl+x,o Просмотр/правка владельца/группы для текущего объекта
Ctrl+x,q Быстрый просмотр содержимого файла на второй панели
Ctrl+x,s Создает символьную ссылку symlink для текущего объекта
Ctrl+x,t Вставка всех выделенных объектов в командную строку
Ctrl+x,Ctrl+s Редактировать символическую ссылку
Shift+F1 Вызывается меню быстрого перехода между точками монтирования на левой панели
Shift+F2 Вызывается меню быстрого перехода между точками монтирования на правой панели
Shift+F3 Просмотр файла raw без учета расширения
Shift+F4 Создает новый файл

Горячие клавиши для редактора

F3 Начать выделение текста. Повторное нажатие F3 закончит выделение
Shift+F3 Начать выделение блока текста. Повторное нажатие F3 закончит выделение
F5 Скопировать выделенный текст
F6 Переместить выделенный текст
F8 Удалить выделенный текст
Meta+i Переключение режима “Автовыравнивание возвратом каретки”, удобно при вставке отформатированного текста из буфера обмена
Meta+l Переход к строке по её номеру
Meta+q Вставка литерала (непечатного символа).См. таблицу ниже
Meta+t Сортировка строк выделенного текста
Meta+u Выполнить внешнюю команду и вставить в позицию под курсором её вывод
Ctrl+f Занести выделенный фрагмент во внутренний буфер обмена mc (записать во внешний файл)
Ctrl+k Удалить часть строки до конца строки
Ctrl+n Создать новый файл
Ctrl+s Включить или выключить подсветку синтаксиса
Ctrl+t Выбрать кодировку текста
Ctrl+u Отменить действия
Ctrl+x Перейти в конец следующего
Ctrl+y Удалить строку
Ctrl+z Перейти на начало предыдущего слова
Shift+F5 Вставка текста из внутреннего буфера обмена mc (прочитать внешний файл)
Meta+Enter Диалог перехода к определению функции
Meta+- Возврат после перехода к определению функции
Meta++ Переход вперед к определению функции
Meta+n Включение/отключение отображения номеров строк
tab Отодвигает вправо выделенный текст, если выключена опция “Постоянные блоки”
Meta-tab Отодвигает влево выделенный текст, если выключена опция “Постоянные блоки”
Shift+Стрелки Выделение текста
Meta+Стрелки Выделение вертикального блока
Meta+Shift+- Переключение режима отображения табуляций и пробелов
Meta+Shift++ Переключение режима “Автовыравнивание возвратом каретки”
Shift+Ins Вставить текст из буфера

Таблица литералов (непечатных символов)

HEX Dec Клавиша Описание
01 1 Meta+q,a  
02 2 Meta+q,n  
03 3 Meta+q,v  
04 4 Meta+q,d  
05 5 Meta+q,e  
06 6 Meta+q,f  
07 7 Meta+q,g  
08 8 Meta+q,h  
09 9 Meta+q,i TAB
0A 10 Meta+q,j  
0B 11 Meta+q,k  
0C 12 Meta+q,l  
0E 14 Meta+q,m  
0F 15 Meta+q,o  
10 16 Meta+q,p  
11 17 Meta+q,q  
12 18 Meta+q,r  
13 19 Meta+q,s  
14 20 Meta+q,t  
15 21 Meta+q,u  
16 22 Meta+q,b  
17 23 Meta+q,w  
18 24 Meta+q,c  
19 25 Meta+q,y  
1A 26 Meta+q,x  
1B 27 Meta+q,z
Meta+q,Esc,Esc
 

Источник: взято отсюда с изменениями

Обновление часовых поясов в linux

Сначала надо скачать базу с часовыми поясами с сайта www.iana.org/time-zones.

Далее этой базой заменим старую в системе.

Рассмотрим обновление на примере московского часового пояса.

Посмотрим расхождение с UTC

zdump -v /usr/share/zoneinfo/Europe/Moscow

Сделаем резервную копию
cp /usr/share/zoneinfo/Europe/Moscow /usr/share/zoneinfo/Europe/Moscow.bkp

Скачаем базу tzdata2013d.tar.gz в каталог /tmp
cd /tmpwget www.iana.org/time-zones/repository/releases/tzdata2013d.tar.gz
mkdir /tmp/tzdata2013d
tar xfv tzdata2013d.tar.gz -C /tmp/tzdata2013d

Компилируем и заменяем старый файл
zic -d zoneinfo europe
cp zoneinfo/Europe/Moscow /usr/share/zoneinfo/Europe/Moscow

Далее выставляем в системе часовой поясcp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Устанавливаем времяntpdate x.x.x.x

где х.х.х.х - адрес ntp, например, с сайта http://www.ntp-servers.net/servers.html

Смотрим

date