OwnCloud создаем свое облачное хранилище
OwnCloud
Сегодня мы расскажем об организации общедоступного файлового хранилища.
Итак, стояла задача создать хранилище для файлов компании с доступом через Интернет с различных устройств. Некий аналог DropBox и Google Drive. Только на первом месте стояла конфиденциальность данных, которые располагаются на хранилище. Соответственно Решение было найдено среди продуктов, которые можно установить на приватный сервер.
Систему строим на базе OwnCloud. Текущая стабильная версия – 9.1. На данный момент система работает на виртуальном сервере под управлением CentOS 7, для которого выделен 1 виртуальный процессор, 2GB RAM, и 20 GB дискового пространства на SSD. В качестве клиента выступает Web-браузер. Также доступны приложения под все самые популярные мобильные платформы.
Для небольших компаний (до 150 человек) предлагается конфигурация, в которой все: веб-сервер и сервер приложения, база данных, хранилище файлов, расположены на одном сервере. Аутентификация пользователей происходит через LDAP или Active Directory.
Для сервера рекомендуется использовать 2 CPU cores, 16GB RAM, размер хранилища определяется пользовательскими данными. Количество используемой памяти для ownCloud сильно зависит от количества пользователей и файлов, активности работы с системой. Минимально рабочим значением является 128MB RAM, однако рекомендуемый минимум – 512 MB RAM.
При выборе операционной системы наиболее проверенным и стабильным дистрибутивом является Ubuntu 16.04 LTS. Также поддерживаются RedHat или SuSE, но для них может потребоваться подключение сторонних репозитариев и выполнение дополнительных настроек.
Рекомендуется использовать SSL для работы системой. Для этого необходимо настроить Apache для использования SSL стандартным способом.
В качестве базы данных рекомендуется использование MySQL / MariaDB, ( MyISAM не поддерживается)
Для сервера приложений рекомендуется локальное управление сессиями..PHP сохраняются в tmpfs, который Смонтирован в место хранения сессии конкретной операционной системы.
Memory Кэш.Рекомендуется APC/APCu для локального кеша. — Redis для Transactional File Locking и распределенного кеширования, запущенный на выделенном сервере. Memcache повышает производительность решения. ownCloud поддерживает до 4х memcaches;
Для максимальной производительности стабильности и полной функциональности рекомендуется использовать
1 2 3 4 |
erating system: Ubuntu 16.04 LTS. Web server: Apache 2.4. Database: MySQL/MariaDB with InnoDB storage engine (MyISAM is not supported, see: : ref:db-storage-engine-label) PHP 7. |
Другие поддерживаемые платформы и конфигурации
1 2 3 4 5 6 7 8 |
Server: Linux (Debian 7 and 8, SUSE Linux Enterprise Server 12 and 12 SP1, Red Hat Enterprise Linux/Centos 6.5 and 7 (7 is 64-bit only), Ubuntu 14.04 LTS, 16.04 LTS) Web server: Apache 2.4 with mod_php Databases: MySQL/MariaDB 5.5+; Oracle 11g (ownCloud Enterprise edition only); PostgreSQL PHP 5.4 + required Hypervisors: Hyper-V, VMware ESX, Xen, KVM Desktop: Windows 7+, Mac OS X 10.7+ (64-bit only), Linux (CentOS 6.5, 7 (7 is 64-bit only), Ubuntu 12.04+, Fedora 20+, openSUSE 12.3+, Debian 7 & 8). Mobile apps: iOS 7+, Android 4+ Web browser: IE11+ (except Compatibility Mode), Firefox 14+, Chrome 18+, Safari 5+ |
Итак, для CentOS 7, установленной в режиме Minimal Installation потребовалось:
- Установка утилиты wget
- Импорт репозитариев и получение установочных файлов
- Установка OwnCloud. Разработчик предоставляет возможность установить только файлы для ownCloud, только зависимости. Или и то и другое в одной команде. Мы использовали последний вариант и помимо файлов были установлены следующие зависимости, среди которых было отмечено отсутствие mySQL:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
apr.x86_64 0:1.4.8-3.el7 apr-util.x86_64 0:1.5.2-6.el7 audit-libs-python.x86_64 0:2.6.5-3.el7_3.1 checkpolicy.x86_64 0:2.5-4.el7 httpd.x86_64 0:2.4.6-45.el7.centos httpd-tools.x86_64 0:2.4.6-45.el7.centos libX11.x86_64 0:1.6.3-3.el7 libX11-common.noarch 0:1.6.3-3.el7 libXau.x86_64 0:1.0.8-2.1.el7 libXpm.x86_64 0:3.5.11-3.el7 libcgroup.x86_64 0:0.41-11.el7 libjpeg-turbo.x86_64 0:1.2.90-5.el7 libpng.x86_64 2:1.5.13-7.el7_2 libsemanage-python.x86_64 0:2.5-5.1.el7_3 libxcb.x86_64 0:1.11-4.el7 libxslt.x86_64 0:1.1.28-5.el7 libzip.x86_64 0:0.10.1-8.el7 mailcap.noarch 0:2.1.41-2.el7 owncloud-deps-php5.noarch 0:9.1.4-2.1 owncloud-files.noarch 0:9.1.4-1.1 php.x86_64 0:5.4.16-42.el7 php-cli.x86_64 0:5.4.16-42.el7 php-common.x86_64 0:5.4.16-42.el7 php-gd.x86_64 0:5.4.16-42.el7 php-ldap.x86_64 0:5.4.16-42.el7 php-mbstring.x86_64 0:5.4.16-42.el7 php-mysql.x86_64 0:5.4.16-42.el7 php-pdo.x86_64 0:5.4.16-42.el7 php-process.x86_64 0:5.4.16-42.el7 php-xml.x86_64 0:5.4.16-42.el7 policycoreutils-python.x86_64 0:2.5-11.el7_3 python-IPy.noarch 0:0.75-6.el7 setools-libs.x86_64 0:3.3.8-1.1.el7 t1lib.x86_64 0:5.1.2-14.el7 |
- Далее был настроен Firewall для использования web
- Запущена служба httpd
- Установлена, сконфигурирована стандартными средствами и запущена служба mariadb
- Настроены права для доступа к файлам ownCloud для пользователя apache согласно инструкции разработчика.
- Настроены разрешения SELinux согласно инструкции разработчика.
После этого появилась возможность финальной конфигурации OwnCloud на странице входа в систему.
Система встретила дружественным интерфейсом и сразу указала на недостатки конфигурации,
Которые были незамедлительно исправлены. Дополнительно были оптимизированы настройки БД согласно инструкции разработчика.
На данный момент система находится в тестовой эксплуатации. Разрабатывается структура и иерархия безопасности для дерева папок.
Развертывание решения заняло 8 рабочих часов от планирования до тонкого тюнинга (без учета предварительного тестирования системы). Программный продукт имеет достаточно подробную инструкцию. На выходе была получена система, позволяющая иметь доступ к приватным данным, обеспечивающая возможность их синхронизации на различных устройствах с использованием WebDAV и контролируемой публикации. Все это на собственных серверных мощностях. OwnCloud является расширяемой платформой с простым, функциональным API. Также имеются готовые плагины и приложения для настройки непосредственно под Ваши задачи.
Заказчик доволен результатом.
В будущем планируется усиление отказоустойчивости решения и настройка двухфакторной аутентификации.
Если Вы планируете использование подобной системы в своей компании, наши специалисты всегда готовы оказать Вам помощь и поддержку во внедрении и сопровождении решения, обращайтесь [email protected]