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 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:
Mount
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)
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
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 внизу.
Теперь Вы сможете видеть русский язык в окне связи с сервером при выполнении различных команд.
Чтобы пакеты устанавливать легко с помощью команды
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 необходимо в терминале сервера сгенерировать пару ключей:
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
В 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.
Текст между <!– 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 с локального сервера на рабочий, с хостинга на хостинг и т.д. У большинства получается это делать со скрипом. Вот вам небольшая пошаговая справка по переносу.
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). в меню: Безопасность — Завершить все сеансы
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 |
Источник: взято отсюда с изменениями
Сначала надо скачать базу с часовыми поясами с сайта 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
Recent Comments