Owncloud

Материал из ALT Linux Wiki

Что это такое?

ownCloud — система организации, хранения и обмена данными из единой точки доступа, с возможностью редактирования документов на рабочих станциях пользователей и автоматической синхронизации версий в хранилище. Область применения — в организациях и учебных заведениях где требуется построить простую не дорогую и надёжную систему общедоступного централизованного хранилища документооборота, альтернативного Dropbox, для закрытого\открытого сегмента локальной сети. Облако на основе ownCloud, также будет интересно для тех кто создаёт свой мультимедийный домашний офис.

Подготовка

Оборудование

ALT Linux Xxxx Centaurus x64 (рекомендуется) с последними обновлениями. ОЗУ >4Гб — 32Гб (зависит от количества пользователей) HDD1 — выделенный массив в расчёте ~50Мб дискового пространства для каждого нового пользователя. HDD2 – для резервных копий

Программы

Установить Apache2
http://www.altlinux.org/Apache2/Configs
https://forum.altlinux.org/index.php/topic,29114.0.html
Установить MySQL http://www.altlinux.org/MySQL
Установить LibreOffice (необязательно)
Установить PHP5
Работающий SMTP сервер (необязательно)
Работающий LDAP сервер (необязательно)

Настройка кэширования

memcached — реализует сервис кеширования данных в оперативной памяти. Установим пакеты memcached PHP5:

# apt-get install memcached php5-memcache php5-memcached

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

# vim /etc/sysconfig/memcached
# Running on Port 11211
PORT="11211"
# Start as memcached daemon
USER="memcached"
# Set max simultaneous connections to 1024
MAXCONN="1024"
# Set Memory size to 2048 - 4GB(4096)
CACHESIZE="2048"
#Set server IP address
OPTIONS="-l 127.0.0.1"

Где:

  • PORT — порт, используемый memcached;
  • USER — пользователь для запуска службы Memcached;
  • MAXCONN — используется для установки лимита одновременных подключений (среднее значение 1024, можно менять);
  • CACHESIZE — размер выделяемой кэш-памяти (среднее значение 2048, можно менять до 4GB);
  • OPTIONS — интерфейс, на котором слушать запросы (по умолчанию слушать на всех интерфейсах OPTIONS="").

Добавляем службу memcached в автозагрузку и запускаем её, выполнив команды:

# systemctl enable memcached
# systemctl start memcached

Или:

# /etc/init.d/memcached start|status|restart
# chkconfig --levels 235 memcached on
# chkconfig memcached


Проверка запуска службы memcached:

# netstat -tap | grep memcached
# netstat -tulpn | grep :11211
# apt-get install telnet // если не установлен
# telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'
stats //ввод команды
STAT pid 2022
STAT uptime 180054
STAT time 1439364983
STAT version 1.4.13_alt3
STAT libevent 2.0.21-stable-dev
STAT pointer_size 64
STAT rusage_user 2.761277
STAT rusage_system 2.556409
STAT curr_connections 10
STAT total_connections 13
STAT connection_structures 11
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 0
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 50
STAT bytes_written 1059
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT evictions 0
STAT reclaimed 0
END
quit //команда выхода

Перезапустить веб-сервер Apache2:

# service httpd2 restart

Установка

Устанавливаем ownCloud из репозитория:

# apt-get install owncloud

Или с официального сайта, если не устраивает версия из репозитория:

  1. Загружаем с https://owncloud.org/changelog/
  2. Распаковываем в /var/www/webapps/owncloud, каталог по умолчанию, можно в /var/www/owncloud:
# tar xjf owncloud-latest.tar.bz2 -С  /var/www/webapps/

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

# chmod -R 777 /var/www/webapps/owncloud/
# chown -R apache2:apache2 /var/www/webapps/owncloud

Создаём ссылку на каталог /var/www/webapps/, или непосредственно в файле конфигурации /etc/httpd2/conf/sites-available/default.conf добавить строки:

Alias /owncloud "/var/www/webapps/owncloud/"
         <Directory "/var/www/webapps/owncloud/">
         Include conf/include/Directory_html_default.conf
         </Directory>

... или делаем сервер ownCloud как виртуальный хост. Перегрузить веб-сервер:

# service httpd2 restart

Набираем в браузере http://server/owncloud (http://127.0.0.1/owncloud), в окне мастера заполняем нужные поля и нажимаем кнопку «Завершить установку»

СОВЕТ:Если при попытке открытия страницы первичных настроек возникает ошибка типа "отсутствия модуля php5-curl" удалите комментарий в строке:
# vim /etc/php/5.5/apache2-mod_php/php.d/curl.ini
extension=curl.so

Открываем файл конфигурации и вносим, при необходимости, корректировки:

vim  /var/www/webapps/owncloud/config/config.php
<?php
$CONFIG = array (
  'instanceid' => 'ocefc41a15d4',
  'passwordsalt' => '2a32cfc6f9428815a8d80055da0f85',
  'secret' =>
'e42d12e449acc44d3b11aa03b8db03b5225512a8077ffbc38881bfeba51e4e631468daa13a652c00ffc7137c16450f57',
  'trusted_domains' =>
  array (
    0 => 'alt-own',
  ),
  'datadirectory' => '/var/www/webapps/owncloud/data',
  'overwrite.cli.url' => 'http://alt-own/owncloud',
  'dbtype' => 'mysql',
  'version' => '8.1.0.8',
  'dbname' => 'owncloud',
  'dbhost' => 'localhost',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'oc_master',
  'dbpassword' => 'd0e56722e730d938af3d886c9a90c6',
  'installed' => true,
  'theme' => '',
  'maintenance' => false,
  'loglevel' => '3',
  'memcache.distributed' => '\OC\Memcache\Memcached',
  'memcached_servers' =>
      array (
        0 =>
            array (
           0 => 'localhost',
           1 => 11211,
    ),
 ),
);

ВАЖНО:Если были внесены изменения необходимо перегрузить веб-сервер.

Регистрируемся на нашем ownCloud как admin>открывем страницу>[Администрирование]-выставляем нужные параметры>открываем страницу>[Пользователи]- добавляем группы/пользователи с квотами на размер хранимой информации. Проверяем и устанавливаем необходимые настройки, теперь наше облако готово к работе.

Резервирование ALT/ownCloud

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

/config - содержит
.htaccess - защита
config.php - файл конфигурации
config.sample.php - используется для оптимизации работы ALT/ownCloud, выбранный кода копировать в файл config.php
/data - хранилище файлов пользователей
/var/lib/mysql - БД пользователей

Примерный сценарий резервного копирования для ALT/owncloud: Создаём файл own_bk.sh

TEMPDIR=/tmp/ownback/
BACKUPDIR=/vol
mkdir -p $TEMPDIR
# Создаём dump MySQL 
mysqldump -u user -ppassword -A > $TEMPDIR/all_databases.sql
# Стоп MySQL
/etc/init.d/mysql stop
# Копируем /config /data /MySQL 
cp -r /var/www/webapps/config $TEMPDIR
cp -r /var/www/webapps/data $TEMPDIR
cp -r /var/lib/mysql $TEMPDIR
#    Старт MySql
/etc/init.d/mysql start
# Создаём архив TAR
tar -cjf $BACKUPDIR/ownback_`date +%d`_back.tar.bz2 $TEMPDIR
# Удаляем временные файлы.
<pre>root@cloud home]# rm -r /tmp/ownback
Включаем резервное копирование:
root@cloud home]# crontab -e
#minute (0-59),
#|      hour (0-23),
#|      |       day of the month (1-31),
#|      |       |       month of the year (1-12),
#|      |       |       |       day of the week (0-6 with 0=Sunday).
#|      |       |       |       |       commands
00 00 * * /home/own_bk.sh

Восстановление ALT/ownCloud.

Для восстановления из резервной копии необходимо:

- выполнить требования п.4
- разархивировать нужную копию ownbackXXX.back.tar.bz2
- скопировать в дерево /var/www/owncloud каталоги
/config
/data
- восстановить БД
root@cloud home]# mysql -uroot -p[password] -A < all_databases.sql

Обновление и модернизация.

Следует различать - обновление\модернизация OwnCloud.

Обновление - точечный релиз указанный третьей цифрой номера версии (4.5.1, 5.0.17...7.0.1)
Основной релиз обозначен двумя цифрами (4.0.0, 5.0.0...7.0.0)
посмотреть можно в "Администраторе".
Примечание: Перед каждым обновлением необходимо сделать резервную копию.
Если хотим оповестить пользователей о временном отказе в доступе к ALT ownСloud, редактируем файл:
root@cloud home]# vim /owncloud/config/config.php
’maintenance’ => true //было false

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

После того как в репозитории появится новая версия ownCloud выполните:
root@cloud home]# apt-get update
root@cloud home]# apt-get dist-upgrade

ИЛИ

service httpd2 stop

Создаём резервную копию БД:

root@cloud home]# mysqldump -uroot -ppassword owncloud>owncloud.sql

Переименовываем каталог:

root@cloud home]# mv /var/www/webapps/owncloud  owncloud_old

Скачиваем новую версию, условное имя owncloud-latest.tar.bz2 с http://owncloud.org/ и распаковывем:

root@cloud home]# tar xjf owncloud-latest.tar.bz2 -С  /var/www/webapps/

Проверяем и при необходимости копирум "старый" config (если не сохранился):

cp -R var/www/webapps/owncloud_old/config  var/www/webapps/owncloud

Запускаем web сервер:

root@cloud home]# vim /owncloud/config/config.php
’maintenance’ => false
root@cloud home]# service httpd2 start
Набираем в браузере http://server/owncloud и следуем указаниям мастера обновления.
Наряду с графичиским методом обновления\модернизации ALT ownCloud существует его консольный аналог в виде сценария команды occ с различными ключами например:
root@cloud home]# /var/www/webapps/owncloud/occ maintenance:mode --on //сервер на обслуживание...

Миграция ALT/ownCloud.

При миграции ownCloud на новое оборудование необходимо выполнить следующие действия:

- создание резервной копиии
- восстановления данных и БД
- копирования или замена файла config.php в каталоге
/var/www/webapps/config/ 

Защита ALT/ownCloud.

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

Включеним SSL соединения.
Установкой и включением антивируса ClamAV.
Включением шифрования данных для каталогов (Приложение Encryption);

Все описанные действия должны выполняться в каталоге хранилища ownCloud:

root@cloud home]# /var/www/webapps/owncloud/data/owncloud_private_key
root@cloud home]# /var/www/webapps/owncloud/data/public-keys
root@cloud home]# /var/www/webapps/owncloud/data/<user>/files_encryption
root@cloud home]# /var/www/webapps/owncloud/data/.htaccess (настроить)

Обслуживание ALT/ownCloud..

Помимо повседневных мер по обслуживанию сервера ownCloud у администатора могут возникать вопросы по переносу хранилища профилей пользователей на другие носители, такой вопрос обязательно возникнет, когда начнётся активное использование вновь созданного облачноного хранилища. В этой связи нужно, предварительно выполнив действия по резервированию хранилища,БД и переноса самого хранилища на новый носитель, акуратно отредактировать файл config.php каталога /config:

root@cloud home]# mv /var/www/webapps/data  /vol/owncloud/data
root@cloud home]# vim /var/www/webapps/config/config.php
'datadirectory' => '/vol/owncloud/data',
wq
root@cloud home]# service httpd2 restart

Удаление ALT/ownCloud.

Для удаления ownCloud необходимо почистить следующие каталоги и БД:

root@cloud home]# apt-get remove owncloud
root@cloud home]# rm -r /var/www/webapps/owncloud
root@cloud home]# rm -r /etc/ownclud
root@cloud home]# mysql -uroot -p[password]
> show databases;
> drop database owncloud;
> quit

Полезные ссылки.


mig