Всего 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), чем мы и займемся в следующей статье.