Собственное облако. Установка owncloud

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

Выбор версии ownCloud

В репозиториях Debian вообще нет никакой версии ownCloud, даже устаревшей. Возможно, это и к лучшему. В Ubuntu эта программа есть, но из-за нее недавно разразился скандал . Если кратко, разработчики ownCloud попросили удалить свой софт из репозитория Ubuntu, потому как разработчики Ubuntu оставляли дыры в ownCloud даже после выпуска официальных заплаток. Видимо, были сильно заняты интеграцией очередного магазина в Unity. Но сейчас не об этом.

Версию будем брать не из репозиториев, а с официального сайта, самую свежую (из стабильных). Заходим на страницу загрузок и выбираем вариант Archive Files (for server owners). В открывшемся окне жмем на слове Unix. Запускается загрузка архива с ownCloud. На момент написания этой статьи в ходу была версия 7.0.2. Прямая ссылка: https://download.owncloud.org/community/owncloud-7.0.2.tar.bz2 .

Прежде чем закрыть окно браузера, скачаем и руководство для админа: http://doc.owncloud.org/server/7.0/ownCloudAdminManual.pdf . Согласно одному известному правилу, если ничего не получится, придется наконец-то прочитать мануал. Но лучше не доводить до крайностей и пробежаться по разделу Installation до установки ownCloud.

LAMP

Устанавливается LAMP за 2 минуты. Еще столько же уйдет на правку конфигурационных файлов и все сразу заработает. В Debian. На другие дистрибутивы моя гарантия не распространяется. А вот тюнинг отдельных компонентов LAMP - это настоящее искусство. Есть спецы по MySQL, есть по Apache, на тюнинг может уйти много времени, сил, а иногда и денег. Особенно в условиях ограниченных ресурсов (если вы запускаете ownCloud на стороннем хостинге). Но нам сейчас это не понадобится.

ownCloud и Apache

Берем архив с ownCloud и распаковываем в директорию /var/www.

Cp owncloud-7.0.2.tar.bz2 / var/ www/ cd / var/ www/ tar xf owncloud-7.0.2.tar.bz2

Разумеется, все операции под root. Затем нужно переименовать директорию owncloud в название вашего сайта. Например, если для доступа к облачному хранилищу будет использоваться домен mysupercloud.ru, тогда переименовываем так:

Mv owncloud mysupercloud.ru

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

Теперь очень важный шаг, о котором многие забывают, но потом мучаются с правами доступа. И в итоге выставляют на все 777, подвергая свою систему опасности. Web-сервер Apache работает под отдельным пользователем и в отдельной группе. Связано это с тем, что если злоумышленник сможет хакнуть Apache через дыру в самом сервере или через дыру в скриптах сайта, то получит лишь ограниченный доступ к системе. Фактически, каккер сможет перезаписывать только содержимое некоторых файлов в /var/www. Передадим Апачу права на файлы ownCloud:

Chown -R www-data:www-data owncloud

Убедимся, что все в порядке:

Ls -al

Теперь создадим виртуальный Web-сайт, должным образом настроив Apache. Поскольку разработчики Debian любят пользователей, монолитный конфигурационный файл был изящно распилен на части, с которыми уже работать удобнее. На этом сюрпризы от разработчиков Debian не заканчиваются. К услугам пользователей удобный инструментарий a2ensite/a2dissite/a2enmod/a2dismond. Это скрипты на Perl, которые сокращают работу с конфигурационным файлом Apache до минимума.

Переходим в директорию /etc/apache2/sites-available, берем заготовку default и копируем ее под новым именем. Как и в случае с названием директории с owncloud, желательно использовать название домена:

Cp default owncloud

Открываем скопированный файл для редактирования. Очень важно точно указать значения для трех переменных: ServerName, DocumentRoot и Directory. Никаких опечаток, иначе на заработает!

ServerName owncloud ServerAdmin webmaster@localhost DocumentRoot /var/www/owncloud Options FollowSymLinks -MultiViews AllowOverride All Order allow,deny allow from all ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined

То есть, в ServerName мы прописываем имя домена (то, что пользователь будет набирать в адресной строке браузера, чтобы получить доступ к ownCloud). DocumentRoot и Directory указывают на директорию с файлами ownCloud.

Теперь запустим сайт:

A2ensite owncloud service apache2 restart

Сайт нам уже отвечает, хотя установка еще далека от завершения. Внимание: если используется «ненастоящий» домен, то его следует явно прописать в /etc/hosts!

На этом настройка Apache завершается и переходим к настройке MySQL.

ownCloud и MySQL

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

Если вы разбираетесь в MySQL, вы легко выполните это с помощью командной строки и прекрасной утилиты mysql. Остальным я рекомендую воспользоваться web-интерфейсом к MySQL под названием phpmyadmin. Этот софт есть в стандартном репозитории Debian, устанавливается командой apt-get install phpmyadmin и работать начинает практически сразу, ведь LAMP у вас уже настроен. Пользователю остается лишь запустить браузер и перейти по адресу http://localhost/phpmyadmin . В целях безопасности рекомендую подправить конфигурацию Apache, чтобы доступ к phpmyadmin имели только пользователи из локальной сети. Дело в том, что phpmyadmin - на редкость дырявое ПО и каккеры часто сканируют сайты в поисках именно phpmyadmin.

Итак, создаем в phpmyadmin пользователя owncloud и присваиваем ему хитрый пароль. Создаем базу данных owncloud. Даем пользователю owncloud полные права на доступ к базе owncloud. На этом настройка MySQL заканчивается. Переходим непосредственно к установке.

Внимание: создавая базу данных, в пункте «сравнение» указывайте utf8_general_ci.

Настройка ownCloud

Запустите браузер и перейдите по адресу http://owncloud (в вашем случае адрес будет тот, который вы указывали в ServerName). В появившемся окне задайте имя администратора и пароль к этой учетной записи. Чуть ниже нажмите на ссылку «Система хранения данных», нажмите на кнопку MySQL и укажите информацию для доступа к созданной в MySQL базе данных - название базы, имя пользователя и пароль. Нажимайте кнопку «Завершить установку».

Опс! На экране предупреждение, что Apache работает без поддержки протокола WebDAV . Собственно, через этот протокол пользователь и работает со своими файлами на сервере. Раз ownCloud просит WebDAV, я считаю, что ему нужно это дать:

A2enmod dav a2enmod dav_fs service apache2 restart

Снова заходим на главную страницу owncloud и видим радостное приветствие. Любезный ownCloud готов начать нас обслуживать.

В заключении

Если к этой теме будет проявлен дальнейший интерес, то я расскажу о том, как настроить красивые адреса URL (http://owncloud/settings/admin вместо http://owncloud/index.php/settings/admin), как включить безопасный протокол HTTPS вместо HTTP и том, как расширить возможности ownCloud. Спасибо за внимание!

Иметь свое личное онлайн хранилище — отличная возможность для любого IT специалиста. Проект ownCloud позволит сделать это без особых проблем. Нужно иметь VPS (в моем случаем используется виртуальная машина Azure), либо свой домашний сервер с «белым IP», ну или на крайний случай использовать dyndns, если у вас динамический адрес. Также имеются случаи (и возможность) установки указанного сервиса на ARM системы и даже маршрутизаторы.

Не буду вдаваться в подробности и описание сервиса ownCloud , сделать это можно на официальном сайте по ссылке выше, либо в Википедии и подробной статье на habrahabr . Установка и настройка онлайн хранилища будет выполняться в несколько этапов.

Шаг 1. Подготовка сервера

Шаг 2. Установка LAMP

После установки и настройки сервера, переходим к установке веб-сервера, т.е. . Стоит обратить внимание — в зависимости от используемой версии операционной системы — алгоритм установки будет отличаться. Так, в CentOS 6.5 по умолчанию из стандартных репозитариев устанавливается PHP 5.3 и MySQL 5.1, что не подходит для работы сервиса ownCloud, т.к. требуется PHP версии 5.4 и выше. Ранее я уже подготовил краткую . Для наглядности кратко опишу процесс установки LAMP для конкретной задачи.

Устанавливаем apache2:

sudo yum -y install httpd

После установки добавляем сервер Apache в автозапуск:

sudo chkconfig —levels 235 httpd on

И перезапускаем его (перезапуск потребуется в будущем после установки MySQL, PHP и ownCloud):

sudo service httpd restart

Проверить статус веб-сервера можно командой:

sudo service httpd status

После этого переходим к установке MySQL 5.5 и PHP 5.5 .

Создание базы, добавление администратора базы и установка пароля выполняется так::

sudo mysql -uroot -p

CREATE DATABASE owncloud;
GRANT ALL PRIVILEGES ON owncloud.* TO ‘owncloud_user’@’localhost’ IDENTIFIED BY ‘owncloud_user_pasword’;
FLUSH PRIVILEGES;

Если что-то пошло не так с базой MySQL, ее можно удалить командой:

drop database base_name

Иногда бывают случаи, когда MySQL отказывается запускаться (ошибка об отсутствии резолва имени). Для этого в первую очередь проверяем файл /etc/hosts на наличие записи 127.0.0.1 имя_вешего_сервера.

Проверить работу PHP можно создав файл в директории /var/www/html/test.php :

sudo touch /var/www/html/test.php

sudo nano /var/www/html/test.php

sudo rm -f /var/www/html/test.php

Шаг 3. Установка ownCloud

По окончанию установки LAMP и проверки его работоспособности переходим к установке ownCloud :

wget https://download.owncloud.org/community/owncloud-8.0.0.tar.bz2
tar -xjf owncloud-8.0.0.tar.bz2
sudo cp owncloud /var/www/html/owncloud/

Рекомендую скачивать файлы в этом и во всех других случаях (а также копирование любых конфигов перед их редактированием) в отдельных каталог в корне сервера или директории дополнительного пользователя (не root) — об этом сказано в ссылках на записи из первого шага (базовая настройка сервера).

После загрузки файлов сервиса ownCloud устанавливаем требуемые права на файлы и директорию:

sudo chown — R apache . apache / var / www / html / owncloud /

В завершении установки редактируем конфиг веб-сервера Apache2 :

sudo nano /etc/httpd/conf.d/owncloud.conf


Alias /owncloud /var/www/html/owncloud


Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
allow from all

… и перезапускаем его:

sudo service httpd restart

Шаг 5. Финальная настройка ownCloud

После всех проделанных операций переходим в браузере по адресу http://IP_адрес_вашего_сервера/owncloud и выполняем донастройку сервиса. Для этого создаем нового пользователя ownCloud, указываем данные для подключения к базе MySQL (имя базы, логи и пароль администратора, размещение базы). Эти параметры мы указывали при создании базы на шаге 2.

Готово! Установка личного онлайн хранилища на базе CentOS 6.5 / 7 и ownCloud завершена. Все вопросы и замечания оставляйте в комментариях 😉

Здравствуйте, хабравчане! Сегодня я хотел бы рассказать о персональном облачном хранилище ownCloud и его установке.

Для нас уже стало обыденным использование таких сервисов как Dropbox, Google Drive, SkyDrive или даже Облако Mail.Ru, мы пользуемся их услугами каждый день не обращая внимание на явные недостатки тех или иных серверов. На одном, сервисе мало места, на другом нет локализации, на третьем ненадежное хранилище, на четвертом кривой интерфейс и так далее, но у всех этих сервисов есть общий существенный недостаток - ваши данные всегда хранятся на неконтролируемых вами серверах. В случае когда необходимо использовать сервисы для размещения данных не имеющих для вас большой ценности - этих сервисов должно полностью хватить. В случае если, необходима защита контента, полная конфиденциальность, безопасность, неограниченное количество свободного места, возможность организовать многопользовательский доступ для работы в группах, контроль версий, синхронизация, возможность просматривать документы, таблицы, изображения, видеоматериалы, аудиозаписи, заметки из любой точки мира без необходимости их загрузки - ownCloud это то что вам нужно.

Давайте подробнее рассмотрим ownCloud и попробуем его установить

OwnCloud переводиться буквально как «собственное облако». Это CMS с открытым кодом, которое можно загрузить на свой компьютер и позднее установить его на хостинг или собственный сервер. По функциональности ownCloud не отстает от ведущих компаний в мире облачных хранилищ, а некоторых превосходит.

За простым лаконичным интерфейсом скрывается большой функционал расширяемый еще более с помощью предустановленных модулей и собственного App store представленного на официальном сайте.

Возможности ownCloud «из коробки»:

  • Многопоточная загрузка данных «перетягиванием» при помощи технологии Drag-and-drop
  • Редактирование прав на доступ к файлам для конкретных пользователей, групп или интернета
  • Подключение и просмотр новостных RSS лент
  • Просмотр изображений, видео, офисных документов
  • Синхронизируемый календарь, менеджер задач, менеджер контактов, менеджер веб закладок
  • Отслеживание активности пользователей
  • Защищенное соединение, шифрование данных, LDAP\WebDAV аутентификация
  • Поддержка внешних хранилищ: Google Drive, Dropbox, FTP, SMB, WebDAV, Amazon S3, IRODS, OpenStack Object Storage, а так же локальных
  • Клиентские приложения с полной синхронизацией для всех актуальных платформ

Это всего лишь краткий список возможностей ownCloud, но уже сейчас видны его преимущества. При желании можно добавить почтовый клиент, торрент клиент, чат с видео, полноценный офис, проверку фалов на VirusTotal и многое другое.

Перейдем от теории к практике.

Установка ownCloud на сервер под управлением Debian 7 wheezy

1.Установка базового ПО

Прежде чем начинать давайте убедимся что наша система в актуальном состоянии.
Открываем терминал и вводим:
sudo apt-get update && sudo apt-get upgrade
Эти две простые команды обновят все программы на нашем сервере, процесс может занять длительное время в зависимости от скорости интернета и нашего сервера.

Теперь, можно приступить к установке необходимого для работы ownCloud программного обеспечения:
sudo apt-get install apache2 php5 php5-common php5-gd php5-intl php5-mcrypt php5-cli php5-ldap php5-sqlite curl libcurl3 libcurl4-openssl-dev php5-curl php-apc php5-mysql ffmpeg
Теперь у нас есть все необходимое для быстрого развертывания ownCloud на нашем сервере и можно переходить к пункту 4 или продолжить полную установку вместе со мной.

2.Установка MySQL

Устанавливаем MySQL:
apt-get install mysql-client mysql-server
Создаем пароль для базы данных MySQL и идем дальше.

Важно:

Теперь немножко позаботимся о нашей безопасности, вводим в консоль:
mysql_secure_installation
На все вопросы кроме «Change the root password» (Если не хотите менять пароль MySQL) отвечаем положительно Y.

Входим в консоль управления MySQL и вводим пароль (его не видно):
mysql -u root -p
Создаем базу данных:
create database Имя_БД;
Создаем пользователя, желательно с именем как и у базы данных:
create user "Имя_пользователя"@"localhost" IDENTIFIED BY "Новый_пароль";
Важно: пароль не должен совпадать с паролем суперпользователя.

Передаем созданному пользователю полные права на созданную базу данных:
GRANT ALL ON Имя_БД.* to "Имя_пользователя"@"localhost" ;
Выходим:
quit

3.Установка ntp для синхронизации времени на сервере

Устанавливаем ntp клиент:
apt-get install ntp ntpdate
Теперь меняем сервер синхронизации времени на ближайший:
sudo gedit /etc/ntp.conf
В открывшемся фале находим:

server 0.debian.pool.ntp.org iburst dynamic
server 1.debian.pool.ntp.org iburst dynamic
server 2.debian.pool.ntp.org iburst dynamic
server 3.debian.pool.ntp.org iburst dynamic

Меняем на адреса ближайших к нам npt серверов, например на:
server 0.ru.pool.ntp.org iburst dynamic
server 1.ru.pool.ntp.org iburst dynamic
server 2.ru.pool.ntp.org iburst dynamic
server 3.ru.pool.ntp.org iburst dynamic

Сохраняем и выходим из редактора.

Чтобы проверить правильность времени достаточно ввести в терминале:
ntpdate 0.ru.pool.ntp.org
Если время на нашем сервере не соответствует времени полученному с ntp сервера вводим:
ntpdate -bs 0.ru.pool.ntp.org

4.Настройка

Редактируем файл /etc/apache2/sites-enabled/000-default:
sudo gedit /etc/apache2/sites-enabled/000-default
Находим строчку в разделе "":


Меняем на:

Сохраняем файл и выходим.

Перезапускаем apache:
service apache2 restart
Редактируем php.ini:
sudo gedit /etc/php5/apache2/php.ini
Находим строчки:
mysql.default_socket = mysql.cache_size = memory_limit = post_max_size = upload_max_filesize =
Меняем на:
mysql.default_socket=/var/run/mysqld/mysqld.sock mysql.cache_size = 4000 upload_max_filesize = 1024M //максимальный размер файла который мы можем загрузить на наш сайт post_max_size = 1024M //Должен быть больше или равен upload_max_filesize memory_limit = 1024M //Должен быть больше или равен post_max_size
Сохраняем файл и выходим.

Перезапускам apache еще раз:
service apache2 restart

5.Установка ownCloud

Загружаем последнюю версию ownCloud, на момент написания ownCloud 6:
cd /var/www/
wget http://download.owncloud.org/community/owncloud-6.0.0a.tar.bz2

Также, можно просто скачать последнюю версию с официального сайта ownCloud в папку /var/www/

Распаковываем:
tar -xvf owncloud-6.0.0a.tar.bz2

Выставляем права:
sudo chown -R www-data:www-data /var/www/owncloud/

Теперь наш сайт готов, остался только маленький штрих, открываем в браузере localhost/owncloud

А) Для тех кто сразу перешел на пункт 4: Придумываем login и пароль для администратора - входим
B) Для тех кто установил MySQL: Придумываем login и пароль для администратора, выбираем «advanced» затем «MySQL» и вводим имя ранее созданного пользователя базы данных, его пароль, имя самой базы данных, в поле Database host пишем localhost.

Готово! Теперь вы счастливый обладатель персонального облака owncloud с синхронизацией на всех устройствах в вашей домашней сети, для этого достаточно набрать в браузере ваш_внутренний_IP/ownCloud или если вы подключены к интернету напрямую можно получить доступ к owncloud набрав внешний_IP/ownCloud.

Настройка доступа к ownCloud из интернета через рутер

Рассмотрим пример на основе роутера asus rt-n16:

Из браузера заходим на адрес 192.168.1.1, вводим логин и пароль и входим в веб интерфейс роутера:

веб интерфейс


1. Переходим во вкладку «интернет» 2. Переходим во вкладку «переадресация портов» (Virtual Server / Port Forwarding) 3. Включаем переадресацию.

Меню переадресации портов


4. Выбираем уже заботливо подготовленные для нас профили: FTP и HTTP.

Выбор подготовленных профилей


5. Выбираем внутренний IP адрес нашего сервера («ip a» в терминале, адрес вида 192.168.1.X или 192.168.0.X) и нажимаем "+" что бы добавить в список

Выбор внутреннего IP сервера


6. По аналогии заполняем и добавляем нужные нам порты, затем нажимаем кнопку «Применить»

Список портов для ownCloud

Заметки

1. Некорректная установка приложения в разделе Apps

В случае если после включения приложения веб сайт начал некорректно работать я нашел 3 решения:
1.Полная переустановка.
2.Очистить базу данных созданную для owncloud в phpmyadmin и удалить файл:
rm -f \var\www\owncloud\config\config.php
3.Наверное самый приятный вариант, переместить папку с приложением после которого начались проблемы из папки \var\www\owncloud\apps в любую другую, проверить что сайт работает, вернуть папку на место и не трогать до фикса.

2. Авто login пользователя как только он заходит на сайт

1. Создаем в админ панели пользователя, к примеру Gman с паролем noclip.
2. Открываем файл base.php:
Sudo gedit /var/www/owncloud/lib/base.php
3. В самом конце находим строчи:
protected static function tryBasicAuthLogin() { if (!isset($_SERVER["PHP_AUTH_USER"]) || !isset($_SERVER["PHP_AUTH_PW"])) { return false; } OC_App::loadApps(array("authentication")); if (OC_User::login($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])) { //OC_Log::write("core","Logged in with HTTP Authentication", OC_Log::DEBUG);

Заменяем на

Protected static function tryBasicAuthLogin() { //if (!isset($_SERVER["PHP_AUTH_USER"]) // || !isset($_SERVER["PHP_AUTH_PW"]) //) { // return false; //} if (OC_User::login(Gman, noclip)) { OC_App::loadApps(array("authentication")); //if (OC_User::login($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])) { //OC_Log::write("core","Logged in with HTTP Authentication", OC_Log::DEBUG);

1. Открываем fileactions.js
Sudo gedit /var/www/owncloud/apps/files/js/fileactions.js
2. Ищем следующие строки:
remove the existing delete action parent.parent().children().last().find(".action.delete").remove(); if (actions["Delete"]) { var img = FileActions.icons["Delete"]; if (img.call) { img = img(file); } if (typeof trashBinApp !== "undefined" && trashBinApp) { var html = ""; } else { var html = ""; } var element = $(html); element.data("action", actions["Delete"]); element.on("click", {a: null, elem: parent, actionFunc: actions["Delete"]}, actionHandler); parent.parent().children().last().append(element); }
3. Комментируем их:
// remove the existing delete action // parent.parent().children().last().find(".action.delete").remove(); // if (actions["Delete"]) { // var img = FileActions.icons["Delete"]; // if (img.call) { // img = img(file); // } // if (typeof trashBinApp !== "undefined" && trashBinApp) { // var html = "
"; // } else { // var html = ""; // } // var element = $(html); // element.data("action", actions["Delete"]); // element.on("click", {a: null, elem: parent, actionFunc: actions["Delete"]}, actionHandler); // parent.parent().children().last().append(element); // }

4. Открываем:
Sudo gedit /var/www/owncloud/apps/files/js/files.js

5. Находим следующие строчки:

$(".delete-selected").click(function(event) { var files=getSelectedFilesTrash("name"); event.preventDefault(); FileList.do_delete(files); return false; });

6. Комментируем их:
//$(".delete-selected").click(function(event) { // var files=getSelectedFilesTrash("name"); // event.preventDefault(); // FileList.do_delete(files); // return false; // });

Здесь мы поговорим об . Поскольку однозначного руководства на офф.сайте нет, здесь я напишу скомпилированный гайд по установке.

— это свободное ПО, предназначенное для построения частных облаков-хранилищ на своих мощностях. Есть коммерческая лицензия (поддержка мобильных приложений и прочие вкусности). Мы же поговорим об свободной версии (а также об подключении к хранилищу папок по протоколу samba, ftp и sftp, авторизация пользователей из Active Directory ). Свободных доступ к хранилищу возможен посредством веб-интерфейса или подключение сетевого диска по WebDAV .

I. Подготовка к установке, установка (работа с консолью)

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

1) Полное обновление системы и установка необходимых пакетов

sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y && sudo apt-get autoclean -y sudo tasksel install lamp-server sudo apt-get install php5-gd php5-json php5-mysql php5-curl php5-intl php5-mcrypt php5-imagick php5-ldap smbclient

2) Настройка веб-сервера Apache

Сначала настроим Apache , активируя файлы.htaccess:

Sudo nano /etc/apache2/apache2.conf AccessFileName .htaccess ... Options Indexes FollowSymLinks AllowOverride All Require all granted

Перезапустим сервис:

Теперь активируем дополнительные модули Apache:

Sudo a2enmod rewrite sudo a2enmod headers sudo a2enmod env sudo a2enmod dir sudo a2enmod mime sudo a2enmod setenvif sudo a2enmod ssl sudo a2ensite default-ssl

Перезапустим сервис:

Sudo service apache2 restart

3) Настройка PHP

Sudo nano /etc/php5/apache2/php.ini upload_max_filesize post_max_size

Ребутимся:

Sudo reboot

4) Создание базы MySQL (через Webmin, опционально)

Я лично базы через командную строку создавать не люблю и делаю это через Webmin. Устанавливается он так:

Sudo nano /etc/apt/sources.list deb http://download.webmin.com/download/repository sarge contrib deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib

Добавляем и активируем ключ:

Wget http://www.webmin.com/jcameron-key.asc sudo apt-key add jcameron-key.asc

Обновляем список источников:

Sudo apt-get update

Устанавливаем Webmin :

5) Установка

Осталось немного. Установим с репозитория:

Sudo sh -c "echo "deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/xUbuntu_14.04/ /" >> /etc/apt/sources.list.d/owncloud.list" wget http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_14.04/Release.key sudo apt-key add - < Release.key

Установка и обновление:

Sudo apt-get update sudo apt-get install owncloud

Выдаем права:

Sudo chown www-data:www-data -R /var/www

II. Настройка ownCloud (работа с веб-интерфейсом)

Дальнейшая настройка происходит через веб-интерфейс. Там, в принципе, все понятно. Дополнительные функции подключаются через некие «приложения» (аддоны). Мы тут поговорим о двух из них, один для авторизации из АД, а второй для подключения различных сетевых папок и т.д. Пользователь уже на старте может подключать хранилище через WebDAV по https (у него в веб-интерфейсе будет ссылка).

6) Приложение «LDAP» (авторизация из AD)

вход: логин@domain.ru




7) Приложение «External Storage»

Тут есть разные варианты его подключения, ну например вот такой (с технической учеткой):

Заключение

Собственно вот и все, это базовая настройка. Еще там есть множество дополнительных и полезных приложений, которые также можно использовать. В контексте корпоративного использования, также имеет смысл сделать force-redirect от http > https, но на таких базовых вещах я останавливаться на буду, там несложно и зависит от текущего конфига самого сервера.

Итого мы имеем хорошее корпоративное решение в виде готового облака.)

27 июля 2012 в 07:49

ownCloud, делаем своё собственное защищённое облако

  • Облачные сервисы

ownCloud представляет собой Open Source решение для организации своего собственного dropbox-подобного хранилища файлов. Кроме, собственно, синхронизации файлов доступны так же дополнительные возможности, как то: синхронизация контактов, календарей (наличествует поддержка CalDAV) и задач, фотогалерея, проигрыватель аудио (с поддержкой протокола Ampache). Сервис работает в многопользовательском режиме, есть функционал общих папок.

Клиенты синхронизации доступны для Windows / Mac / Linux / Android, версия для iOS, по заверениям разработчиков, в финальной стадии. Наличествует достаточно интересная, но пока экспериментальная функция External Storage, позволяющая монтировать Dropbox и GDrive в папку с ownCloud.

Важной для меня функцией в Android-клиенте является Instant Upload, автоматически загружающий видео и фотографии в облако сразу после съёмки, аналогично клиенту Dropbox.

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

В качестве хостинга можно выбрать VDS или домашний сервер на антресоли.

Рассмотрим вариант с «домашним сервером».

В качестве железки выбран простенький неттоп, операционная система - Ubuntu Server 12.04, прямой ip и доменное имя. Храниться данные будут в зашифрованном LVM-разделе, доступ клиентов к серверу организован поверх SSL.

  • Устанавливаем «голый» ubuntu server 12.04, в процессе установки не забываем про LVM-encrypted с устойчивой к подбору парольной фразой.
  • Устанавливаем необходимые пакеты:
    apt-get install apache2 php5 php5-common php5-gd php5-sqlite curl libcurl3 libcurl3-dev php5-curl
  • Скачиваем ownCloud:
    wget download.owncloud.org/releases/owncloud-4.0.5.tar.bz2
    (ссылку на последнюю версию можно взять непосредственно на сайте проекта) и распаковываем его:
    tar -xjf owncloud-4.0.5.tar.bz2
  • Копируем папку с ownCloud в корень web-сервера:
    cp -r owncloud /var/www/
  • Создаём необходимые папки
    mkdir /var/www/owncloud/data
    и меняем их владельца на www-data
    chown -R www-data:www-data /var/www/owncloud/apps
    chown -R www-data:www-data /var/www/owncloud/config
    chown -R www-data:www-data /var/www/owncloud/data
  • Редактируем /etc/apache2/sites-enabled/000-default
    Здесь AllowOverride=All в разделе «Directory /var/www»
  • Включаем модули rewrite, headers и ssl в apache:
    a2enmod rewrite && a2enmod headers && a2enmod ssl
  • Устанавливаем openssl:
    apt-get install openssl (вероятно, уже установлен)
    генерируем самоподписанные сертификаты и размещаем их по соответствующим папкам:
    openssl genrsa -des3 -out server.key 1024
    mv server.key server.key.old
    openssl rsa -in server.key.old -out server.key
    openssl req -new -key server.key -out cert.csr
    openssl x509 -req -days 365 -in cert.csr -signkey server.key -out cert.crt
    mv cert.crt /etc/ssl/certs/
    mv server.key /etc/ssl/private/
  • Редактируем /etc/apache2/sites-available/default-ssl
    Указываем в SSLCertificateFile сгенерированный ранее сертификат /etc/ssl/certs/cert.crt, а в SSLCertificateKeyFile свой ключ /etc/ssl/private/server.key
    Не забываем также указать имя домена и сайта.
  • Указываем апачу основной сайт:
    a2ensite default-ssl
  • Рестартим апач:
    service apache2 reload
    На этом этап установки завершён, далее нужно будет настроить, собственно owncloud.
  • Заходим по адресу yourip.address/owncloud , принимаем самоподписанный сертификат, проходим все необходимые шаги (точнее, всего один шаг) по настройке ownCloud. Попадаем в достаточно приятный веб-интерфейс.
  • Далее устанавливаем на компьютерах/смартфонах клиенты. Настройка клиента сводится к указанию адреса owncloud - yourip.address/owncloud , вводу имени и пароля и конечной папки на компьютере. Не забываем в адресе указать https, а не http.

На практике работает всё очень похоже с dropbox - заливаешь файл, он «расползается» по всем клиентам. Снимаешь на камеру Android-смартфона - изображение или видео через некоторое время попадает на компьютер. Особо хочу отметить, что Android-клиент поддерживает общесистемную функцию Easy Share Action, потому практически из любого приложения файл можно поместить в ownCloud.

OwnCloud имеет встроенную поддержку WebDAV, потому на большинстве десктопных ОС можно обойтись вообще без клиентского приложения (в случае, если например неважна синхронизация, а нужен только доступ к файлам). Непосредственно на сервере данные хранятся в виде обычных файлов и, если включить фантазию и засучить рукава, можно совместить ownCloud с FTP/AFP/Samba-сервером, организовать автоматическое скачивание торрентов посредством rtorrent, а в корпоративных средах открываются поистине безграничные возможности организации доступа к файлам. В общем, всё ограничивается вашей фантазией.

Функционал легко расширяется с помощью дополнительных плагинов (Applications в терминологии ownCloud). Например, в случае физической невозможности зашифровать диск сервера можно воспользоваться плагином Encryption, тогда всё содержимое облако будет зашифровано встроенными средствами.

Объём хранилища ограничен только вашим жёстким диском. Облако в 2Tb - не вопрос. Поддержка версионности файлов наличествует. Один десктопный клиент, кстати, может подключаться к нескольким ownCloud облакам одновременно.

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

У данного решения с LVM-encrypted диском есть один недостаток - в случае перезагрузки мы потеряем удалённый доступ к серверу, поскольку при загрузке система будет просить парольную фразу для расшифровки диска на физической консоли. Так же из недостатков замечено, что при активной работе клиентов сервис апача на сервере неслабо отъедает процессорные ресурсы.

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

От себя всячески желаю проекту дальнейшего развития и процветания.