Собственное облачное хранилище на базе OwnCloud

Всего 15 лет назад жесткие диски на многих домашних компьютерах были размером не больше 120 GB (гигабайт). В те времена сложно было представить чем заполнить такой объем диска. Но шли года, росли хранимые объемы информации и этих старых жестких дисков уже стало не хватать. Сейчас жесткие диски меньше 500 GB многими воспринимаются как небольшие по объему. Но ведь важно не сколько информации, а какая именно. Это могут быть для обычного пользователя дорогие как память фотографии, диплом, научная работа и многое другое, а для организации - огромная кипа различных документов.

Встает вопрос - можно ли всю информацию хранить где-то еще, чтобы исключить вероятность потери, например, в случае выхода из строя жесткого диска? Вариантов довольно много, это и внешний жесткие диски, флешки, оптические носители информации(DVD и CD), на рынке полно простеньких NAS(Network Attached Storage - сетевые хранилища, т.е. мини-компьютеры предназначенные только для хранения информации) и различные облачные сервисы.

Сейчас много разных компаний предоставляют так называемые “облака” для хранения личной информации, самые крупные и известные предложения от Яндекс, Google, MailRu, DropBox и другие. Все они различаются условиями предоставления бесплатного объема хранимой информации. Главными плюсами являются простота использования и доступность из любой точки мира, главное чтобы под рукой оказался Интернет.

Но можем ли мы доверять этим сервисам? Например, в пользовательском соглашении Google есть такие строчки:

“Мы можем предоставить Вашу личную информацию юридическим и физическим лицам, не связанным с Google, если добросовестно полагаем, что эти лица вправе получать, использовать, хранить или раскрывать эту информацию.

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

Поэтому мы рассмотрим с Вами вариант использования собственного облачного хранилища, пригодного как для личных нужд, так и для организаций - OwnCloud.

Проверяем требования

Способов установки OwnCloud много разных, даже есть готовые образы под виртуальные серверы, но мы не ищем легких путей и будем устанавливать в ручную.

Устанавливается OwnCloud на практически любую linux-подобную операционную систему, мы будем использовать CentOS 7.6.

  • как обычно - необходим root доступ;
  • база данных - MySQL или MariaDB 5.5+, Oracle 11g, PostgreSQL, SQLite;
  • веб-сервер Apache с Multi-Processing Module и mod_php, можно использовать и Nginx, но не рекомендуется разработчиком;
  • php версий 5.6, 7.0, 7.1, 7.2 - рекомендуется на сайте;
  • может работать на 128МБ оперативной памяти, но строго рекомендуется не меньше 512МБ
  • клиентские приложения есть практически на любые современные устройства а также доступ через web интерфейс с самых популярных веб-браузеров.

По рекомендациям будем использовать Apache, php 7.2 и PostgreSQL 9.6, поскольку на 10 и 11 PostgreSQL выдаёт ошибку. Разработчики обещают исправить это в OwnCloud 11 версии. На текущий момент последняя версия OwnCloud 10.0.10.

В документации есть рекомендации по характеристикам сервера в зависимости от количества пользователей. Например, для количества пользователей до 150, базой данных до 10ТБ(терабайт) и не сильной нагрузкой хватит двухъядерного процессора и 16ГБ оперативной памяти.

Для самостоятельного ознакомления можно посетить официальный сайт с документацией.

Первоначальные настройки

Для начала установим PostgreSQL максимальной 9-ой версии, т.е. 9.6, ставить будем с сайта, поскольку в репозиториях последняя версия 9.2.

#yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-redhat96-9.6-3.noarch.rpm
#yum install -y postgresql96 
#yum install -y postgresql96-server

Инициализируем базу данных и включаем автоматический запуск:

#/usr/pgsql-9.6/bin/postgresql96-setup initdb
#systemctl enable postgresql-9.6

Перед запуском службы отредактируем файл /var/lib/pgsql/9.6/data/pg_hba.conf в самом конце и заменим строчку в секции IPv4 local connections:

host    all     all     127.0.0.1/32     peer

на

host    all     all     127.0.0.1/32     md5

Можно воспользоваться любым текстовым редактором, как вариант vi:

#vi /var/lib/pgsql/9.6/data/pg_hba.conf

Теперь запускаем саму службу:

#systemctl start postgresql-9.6

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

#sudo -i -u postgres psql
postgres=# \password
Enter new password:
Enter it again:
postgres=# \q

С СУБД (система управления базами данных) закончили, теперь установим остальные пакеты:

#yum install -y -q epel-release http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum-utils
#yum-config-manager --enable remi-php72
#yum update -y -q
#yum install -y php72 php72-php php72-php-gd php72-php-mbstring php72-php-cli php72-pecl-apcu redis php72-php-pecl-redis php72-php-common php72-php-ldap php72-php-pecl-zip php72-php-xml php72-php-intl php72-php-pgsql unzip
#scl enable php72 bash

Если Вы хотите использовать MySQL, то вместо пакета php72-php-pgsql поставьте php72-php-mysqlnd.

Добавляем Apache в автозапуск и запускаем:

#systemctl enable httpd
#systemctl start httpd

Не забываем про firewall:

#firewall-cmd --zone=public --remove-service=dhcpv6-client
#firewall-cmd --zone=public --add-service=http
#firewall-cmd --runtime-to-permanent

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

Apache работает и можно перейти к следующему пункту.

Установка OwnCloud

Теперь переходим к установке самого OwnCloud. Для начала скачаем сам архив на официальном сайте или воспользуемся следующими командами в консоли и проверим целостность:

#wget https://download.owncloud.org/community/owncloud-10.0.10.zip
#wget https://download.owncloud.org/community/owncloud-10.0.10.zip.sha256
#sha256sum -c owncloud-10.0.10.zip.sha256 owncloud-10.0.10.zip
owncloud-10.0.10.zip: OK

Как видим, архив целый, теперь разархивируем его и скопируем в корень директории веб-сервера (по умолчанию /var/www):

#unzip ./owncloud-10.0.10.zip
#cp -r ./owncloud /var/www/
#chown -R apache:apache /var/www/owncloud/

Последней командой мы сменили группу и владельца файлов в директории owncloud. Теперь нам надо донастроить web-сервер Apache, а именно создадим файл:

#touch /etc/httpd/conf.d/owncloud.conf
#vi /etc/httpd/conf.d/owncloud.conf

И запишем в него следующее:

Alias /owncloud "/var/www/owncloud/"
 
 < Directory /var/www/owncloud/>
  Options +FollowSymlinks
  AllowOverride All
 
  < IfModule mod_dav.c>
       Dav off
  < /IfModule>
 
  SetEnv HOME /var/www/owncloud
  SetEnv HTTP_HOME /var/www/owncloud
 
< /Directory>

В этом файле мы указали, что будет использоваться Alias к основному адресу /owncloud, т.е. для того, чтобы открыть страницу owncloud нужно зайти по http://{адрес_сайта}/owncloud, помимо этого, с помощью директивы AllowOverride разрешили использование файлов htaccess, Установили 2 переменные и указали опцию разрешающую переходить по символическим ссылкам. Еще отключили модуль DAV. Осталось перезапустить Apache:

#systemctl restart httpd

Теперь заходим на сайт http://{your_ip}/owncloud, где your_ip - адрес Вашего сервера, и видим следующее:

Нам предлагают создать учетную запись системного администратора, но почему-то будет использоваться СУБД SQLite. Не переживайте! Нужно нажать Хранилище и база данных и Вам раскроется меню, где мы сможем уже выбрать PostgreSQL:

После ввода нажимаем “Завершить установку” и ждем некоторое время. Если выдаст ошибку о пароле к базе данных - просто замените localhost на 127.0.0.1. это происходит из-за того, что php пытается подключиться к адресу ipv6. Можно также отредактировать файл настроек PostgreSQL.

По завершению установки нам снова предложит авторизоваться:

После входа откроется вспомогательное окно:

Здесь нам предлагают установить клиентские приложения и настроить минимальные параметры по работе с OwnCloud. Кстати, установить OwnCloud можно и из консоли:

#yum install -y php72-php-process
#cd /var/www/owncloud/
#sudo -u apache /opt/remi/php72/root/usr/bin/php occ maintenance:install --database "pgsql" --database-name "owncloud" --database-user "postgres" --database-pass "password" --database-host "127.0.0.1" --admin-user "admin" --admin-pass 'password!' --data-dir "/var/www/owncloud/data"

Затем в файле /var/www/owncloud/config/config.php нужно изменить параметры trusted_domains и overwrite.cli.url на внешний адрес Вашего сервера, например вот так:

'trusted_domains' =>
  array (
    0 => '{your_ip}',
  ),
'overwrite.cli.url' => 'http://{your_ip}/owncloud',

На этом минимальная установка сервера OwnCloud закончилась. Поздравляю!

В OwnCloud есть маркет приложений, советую посмотреть и установить необходимые для Вашего использования, в данной статье мы их рассматривать не будем. Дополнительную информацию о приложениях можно почитать на странице по ссылке.

Установка клиентских приложений

Способов работы с OwnCloud много, это и через web-браузер, и через клиентские приложения на различных устройствах. Для начала скачиваем приложение для Windows со страницы и установим его. После завершения установки появится окно подключения. Помните, что сам OwnCloud у нас располагается не по адресу сервера, а в директории owncloud, поэтому указываем именно этот адрес в строке подключения:

Далее вводим имя пользователя и пароль:

Ну и последние настройки:

Теперь у нас добавлено хранилище, посмотрим в списке:

Теперь посмотрим на приложение на мобильное устройство на базе Android. Переходим по ссылке на странице загрузки или, как мы, скачиваем альтернативное приложение от другого разработчика, нам показалось оно более удобным и по отзывам выигрывает у приложения производителя. Скачиваем, устанавливаем. При запуске вводим авторизационные данные и адрес сервера (помним про путь /owncloud) и видим содержимое сервера:

В настройках можно сделать автозагрузку фотографий и видео с устройства. В общем - всё как и в других аналогичных приложениях от других облачных сервисов.

Заключение

Мы рассмотрели с Вами как очень легко и быстро можно развернуть своё собственное облачное хранилище. Из самых главных плюсов - полный контроль над содержимым осуществляется только Вами. Легкость и быстрота установки, гибкость и бесплатность - всё это огромные плюсы OwnCloud. Но нам еще рано расслабляться.

Мы с Вами рассмотрели лишь базовую (минимальную) установку, не включающую в себя оптимизацию, меры безопасности (помним, что сайт сейчас работает по http), чем мы и займемся в следующей статье.

Надежные VDS сервера для установки OwnCloud