Перенос Школьного портала на другой сервер

Материал из School Portal Wiki
Перейти к: навигация, поиск

Установите на новый сервер Школьный портал.

Если версия установленного продукта на старом сервере отличается от доступной на нашем сайте, предварительно выполните обновление продукта на старом сервере до актуальной версии.

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

Все действия исполнять от пользователя root.

Файл конфигурации

/var/www/cgi-bin/sp/sp.conf

Существующий временно сохраните для сверки ваших изменений с дистрибутивным.

При переносе из ALT Linux 5.0.x в другую ОС, где по умолчанию не поднят LDAP (например, Mandriva, Ubuntu или ALT Linux 6) параметр:

create_dc_users = smbldap-tools

нужно выключить:

create_dc_users = 0

БД

Рекомендуемый вариант.

1. Создать архив на старом сервере

cd /opt/xxi/data
gbak -user sysdba -pass masterkey CMS.gdb CMS.gbk 
gbak -user sysdba -pass masterkey XXI.gdb XXI.gbk

2. Переместить файлы /opt/xxi/data/*.gbk

3. Восстановить базы из архива на новом сервере

cd /opt/xxi/data
gbak -user sysdba -pass masterkey -R CMS.gbk CMS.gdb
gbak -user sysdba -pass masterkey -R XXI.gbk XXI.gdb

Вместо пароля 'masterkey' у вас может быть иной, смотрите настройки в файл конфигурации.

Альтернативный вариант (не рекомендуется).

ВНИМАНИЕ! Сначала остановите сервер Firebird на обоих серверах, предварительно закрыв все копии Алфавитной книги и завершив постоянные соединения от портала.

# принудительное завершение экземпляров портала,
# держащих соединения с базами
pkill speedy_backend
 
# для ubuntu
/etc/init.d/firebird2.1-super stop
 
# для ALT Linux 5.0.x:
# в файле /etc/xinetd.d/firebird
# сделать:
# disable = yes
# и дать команду
service xinetd restart

Положить но новый сервер при остановленном Firebird файлы со старого сервера:

/opt/xxi/data/*.gdb

Если на исходном сервере установлен Alt Linux 6, исходный путь другой:

/var/lib/firebird/xxi/*.gdb

а конечный путь можете подсмотреть в дистрибутивном файле sp.conf, который вы оставили на первом шаге (если он не из ALT Linux 6, путь, скорее всего /opt/xxi/data/).

На новом сервере владелец и группа для баз должна быть firebird. Чтение/запись для владельца и группы должны быть, остальным должно быть нельзя ничего.

Если это не так, переместитесь в папку с базами и:

chmod 660 *.gdb
chown firebird:firebird *.gdb

Включение Firebird:

# для ubuntu
/etc/init.d/firebird2.1-super start
 
# для ALT Linux 5.0.x:
# в файле /etc/xinetd.d/firebird
# сделать:
# disable = no
# и дать команду
service xinetd restart
 
# принудительное завершение экземпляров портала, если есть
pkill speedy_backend

Попробуйте войти в портал.

См. также Проблемы с подключением к базе

После успешного входа можете настроить на новом сервере Резервное копирование.

Картинки, и прочие загруженные на сайт файлы

Перенесите папки

/var/www/html/sp/pic
/var/www/html/sp/cms

Файлы в них должны принадлежать веб-серверу. Если это не так, задайте владельца:

# ubuntu
chown -R www-data:www-data /var/www/html/sp/pic
chown -R www-data:www-data /var/www/html/sp/cms
 
# alt | mandriva
chown -R apache:apache /var/www/html/sp/pic
chown -R apache:apache /var/www/html/sp/cms

Или проще, если место на сервере позволяет, заархивируйте их вместе с правами доступа:

tar -cf html_sp.tar --format=posix /var/www/html/sp

И распакуйте полученный архив на новом сервере.

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

Вообще, конфигурация Squid лежит по пути:

/etc/squid/squid.conf
или
/etc/squid3/squid.conf

Но если вы переносите портал между разными дистрибутивами и на новом сервере в файле squid.conf у вас уже есть блок вида:

# ==============================
# School Portal Internet Control
...

то не переносите конфигурацию прокси-сервера Squid.

Чтобы на новом сервере создались или актуализировались (относительно перенесённой только что базы) файлы, участвующие в настройке Squid-а для доступа в интернет:

/var/www/sp_htpasswd
/var/www/sp_users_allowed
/var/www/sp_squid_content_filter

войдите в портал администратором, выберите в меню Сервис → Доступ в интернет, Нажмите кнопку [Применить], менять настройки не обязательно, важно только лишь скомандовать их применить.

Если вы используете сервис "Звонки" (не путать с информером для сайта, информер звонит в браузере киентов, а сервис даёт звонки через звуковую карту сервера), войдите в портал администратором, выберите в меню Сайт → Звонки, и, ничего не меняя, нажмите кнопку [Сохранить].

Это пересоздаст файл расписания:

/etc/cron.d/sp_bells_cron


Удаление портала со старого сервера

Удаление пакета вместе с настройками:

# Ubuntu
apt-get purge schoolportal

# ALTLinux
apt-get purge sp

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

  • /var/www/html/sp — там могут лежать картинки, архивы, документы, темы оформления, залитые для школьного сайта или блоггерми
  • /var/www/cgi-bin/sp — там может остаться образец файла конфигурации, оставшийся после обновлений
  • /opt/xxi/ — могут лежать резервные копии баз, сделанные перед обновлениями
  • /home/db-backups — папка с бэкапами, если настраивали Резервное копирование, заодно на старом сервере отредактируйте файл /etc/crontab: уберите строки, добавленные для бэкапа.

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

Всё без комментариев для опытных

Создание архива:

cd /opt/xxi/data
gbak -user sysdba -pass masterkey CMS.gdb CMS.gbk 
gbak -user sysdba -pass masterkey XXI.gdb XXI.gbk
cd
tar --dereference -cf sp_backup.tar --format=posix \
  /var/www/html/sp \
  /var/www/cgi-bin/sp/sp.conf \
  /opt/xxi/ \
  /var/www/sp_htpasswd \
  /var/www/sp_users_allowed \
  /var/www/sp_squid_content_filter \
  /etc/cron.d/sp_bells_cron \
  /etc/apache2/sites-enabled/sp \
  /etc/xinetd.d/sphelper

Архив в sp_backup.tar

Восстановление:

Забрать архив sp_backup.tar на новый сервер

tar xf sp_backup.tar
# разложить распакованные файлы относительно /
cd /opt/xxi/data
pkill speedy_backend
gbak -user sysdba -pass masterkey -R -REP CMS.gbk CMS.gdb
gbak -user sysdba -pass masterkey -R -REP XXI.gbk XXI.gdb
cd /var/www/cgi-bin/sp/
perl setup.pl --yes

Проверить галерею, она могла быть симлинком.