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 из репозитария:

root@cloud home]# apt-get install owncloud 

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

https://owncloud.org/changelog/
Распаковываем в /var/www/webapps/owncloud, каталог по умолчанию, можно в /var/www/owncloud :
root@cloud home]# tar xjf owncloud-latest.tar.bz2 -С  /var/www/webapps/
Устанавливаем права
root@cloud home]# chmod -R 777 /var/www/webapps/owncloud/
root@cloud home]# chown -R apache2:apache2 /var/www/webapps/owncloud

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

root@cloud home]# Alias /owncloud "/var/www/webapps/owncloud/"
         <Directory "/var/www/webapps/owncloud/">
         Include conf/include/Directory_html_default.conf
         </Directory>

... или делаем сервер ownCloud как виртуальный хост.

Перегрузить:
root@cloud home]# service httpd2 restart

Набраем в браузере http://server/owncloud,в окне мастера заполняем нужные поля нажимаем>[Завершить установку]

СОВЕТ:Если при попытке открытия страницы первичных настроек возникает ошибка типа "отсутствия модуля php5-curl" удалите комментарий в строке:
root@cloud home]# 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