- Введение
- Схема
- Установка ownCloud
- Установка MySQL
- Установка и настройка NGINX
- Установка ntp для синхронизации времени на сервере
- Настройка репликации master — master MySQL
- Настройка
- Клиенты
- Установка ownCloud
- Owncloud установка и настройка
- Безопасное облако owncloud
- Возможности owncloud «из коробки»:
- Заметки
- Настройка доступа к owncloud из интернета через рутер
- Предварительные требования
- Шаг 1 — установка owncloud
- Шаг 2 — настройка корневого каталога документов
- Шаг 3 — настройка базы данных mysql
- Заключение
Введение
ownCloud — платформа обмена файлами и совместной работы с открытым исходным кодом, предназначенная для централизованного хранения персонального контента, в том числе документов и изображений. Платформа позволяет полностью контролировать контент и его безопасность, не полагаясь на такие сторонние службы хостинга, как Dropbox.
В этом обучающем руководстве мы научимся устанавливать и настраивать экземпляр ownCloud на сервере Ubuntu 18.04.
Схема
Имеем:

Установка ownCloud
Собственно все действия по мануалу и математика из репозиториев.
Система Ubuntu 12.03 LTS — LAMP (при установке LAMP не забудьте пароль root)
Для работы с LDAP необходимо доставить php5-ldap
$sudo apt-get install php5-ldap
Для хранения данных мы используем отдельный сервер с доступом по NFS.
На сервере-хранилище NFS-storage
ставим nfs сервер
$ sudo apt-get install nfs-kernel-serverПравим /etc/exports добавляя строчку:
/var/owncloud 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
Создаем папку и меняем ей права:
$sudo mkdir -p /var/owncloud
$sudo chown root:www-data /var/owncloudПерепускаем nfs сервер:
$sudo /etc/init.d/nfs-kernel-server restartС хранилкой закончили.
На серверах-клиентах
nfs ставим:
$ sudo apt-get istall nfs-common
Правим vim /etc/rc.local перед exit 0 добавляем строчку: (для монтирования NFS папки при загрузке системы, пишу в этот файл потому как использование /etc/fstab вызывало тяжело преодолимые проблемы)
Установка 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 Имя_БД; Создаем пользователя, желательно с именем как и у базы данных:
Установка и настройка NGINX
На сервере NGINX
$sudo apt-get install nginx
Создаем файл конфигурации для сайта перенаправления
$ sudo vim /etc/nginx/sites-available/cloud
Правим до такого состояния.
Установка 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 серверов, например на:
Настройка репликации master — master MySQL
На cloud1
# vim /etc/mysql/my.cnf
добавляем строчки
[mysqld]
#Replication
log-bin=mysql-bin
binlog_format=mixed
server-id = 1 /* для каждого сервера уникальный */
slave-compressed = 1
binlog-do-db = cloud /* название базы для репликации */
#bind-address = 127.0.0.1 /* что бы можно было подулючаться с других машин*/
На cloud2
# vim /etc/mysql/my.cnf
добавляем строчки
[mysqld]
#Replication
log-bin=mysql-bin
binlog_format=mixed
server-id = 2 /* для каждого сервера уникальный */
slave-compressed = 1
binlog-do-db = cloud /* название базы для репликации */
#bind-address = 127.0.0.1 /* что бы можно было подулючаться с других машин*/
Заводим пользователя для репликации на обоих серверах.
На cloud1
пользователь repl2 с доступом с IP 192.168.1.11 и паролем u_pass (должны быть права на базу cloud и привелегии SELECT, RELOAD, SUPER, REPLICATION SLAVE)
mysql> grant replication slave on *.* to 'repl2'@192.168.1.12 identified by 'u_pass';На cloud2
пользователь repl1 с доступом с IP 192.168.1.12 и паролем u_pass (должны быть права на базу cloud и привелегии SELECT, RELOAD, SUPER, REPLICATION SLAVE)
mysql> grant replication slave on *.* to 'repl2'@192.168.1.11 identified by 'u_pass';
Далее приводим обе базы в идентичное состояние:
На cloud1
mysql> FLUSH TABLES WITH READ LOCK;
mysql> show master status;
------------------ ---------- -------------- ------------------
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
------------------ ---------- -------------- ------------------
| mysql-bin.000009 | 107 | cloud | |
------------------ ---------- -------------- ------------------
1 row in set (0.00 sec)
Делаем дамп базы cloud
Настройка
Редактируем файл /etc/apache2/sites-enabled/000-default:
sudo gedit /etc/apache2/sites-enabled/000-default
Находим строчку в разделе “”:
AllowOverride None
Меняем на:
AllowOverride All
Сохраняем файл и выходим.
Перезапускаем 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 Клиенты
Воткактотак 🙂
Установка ownCloud
Загружаем последнюю версию ownCloud, на момент написания ownCloud 6:
cd /var/www/ Owncloud установка и настройка
Здравствуйте, уважаемые.
Данная статья посвящена актуальному на данный момент продукту, облаку где можно держать разного рода контент.
Не спорю что существует масса предложений такие как DropBox, iCloud и еще другие о которых возможно я не в курсе, но не всегда мы доверяем этим гигантам свои дорогие сердцу фотки, музыку, документы и т.п…
Тут мы задаемся вопросом о том что, не ужели не существует такого рода предложения от OpenSource сообщества, и вот оно решение
OwnCloud.
Далее хочу рассмотреть процесс установки на мой взгляд очень полезного продукта.
Для установки нам необходимы:
-Apache
-MySQL
-PHP>5.3 (php-zip, php-zlib, php-mbstring)
Думаю установки указанного свыше продуктов не вызовет проблем у читателей, ну а если то это уже другая история.
Приступим, для начало нам необходимо закачать стабильную версию облака с официального сайта разработчиков
Ссылка на закачку.
Распаковываемым файл и добавляем в наш localhost, в моем случаи это /srv/www/htdocs/ и попробуем перейти на наше новосозданное облако, для этого набираем localhos/owncloud и увидем следующее:

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

Ссылка на скачивание
Далее настроем синхронизацию файлов в приложении для ПК, это делается очень легко и удобный интерфейс поможет сделать это даже не особо одаренному пользователю ПК.
После установки в панеле задач у нас появится значок OwnCloud-а, при нажатии мы увидим окошко где уже есть стандартная настройка, можно изменить ее либо добавить новую настройку.
Для добавления новой настройки нажимаем AddSync и далее указываем какую папку из ПК необходимо синхронизировать с сервером.
И вот свершилось через пару секунд наши данные на сервере и можно смело подчищать место на компьютере.
Безопасное облако owncloud
Добрый день, сегодня я расскажу о безопасном хранении данных. Это тема назревала давно, так как
я не доверяю сервисам типа Dropbox, в связи с тем,
что мои данные храняться на чужом сервере и не понятно кто к ним имеет доступ.
И так приступим к установке. Я взял чисто установленный сервер Ubuntu 14.04. Так как
ownCloud убрали из стандартных репозиториев нам надо добавить
репозиторий http://download.opensuse.org/repositories/isv:/ownCloud:/community/xUbuntu_14.04/ сделать это легко,
открываем файл:
sudo nano /etc/apt/sources.list.d/owncloud.list
И прописываем в него deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/xUbuntu_14.04/ /
Теперь обновляем список репозиториев:
sudo apt-get update
Устанавливаем сам ownCloud, вместе с ним так же
установятся все необходимые пакеты.
Во время установки необходимо задать пароль для mysql
После того как все пакеты будут установлены, нам необходимо обезопасить наше хранилище и сделать к нему доступ
только по HTTPS с использованием сертификатов. Для этого мы создаем папку с сертификатами:
sudo mkdir /etc/apache2/ssl
cd /etc/apache2/ssl
Теперь создадим ключ rsa.
sudo openssl genrsa -out owncloud.key 2048
Я использую 2048 бит, можете использовать и больше. Я считаю, что 2048 бит вполне достаточно. Теперь подпишем
этим ключем наш новый сертификат.
sudo openssl req -x509 -new -key owncloud.key -days 365 -out owncloud.crt
Я поставил срок жизни сертификата в 1 год (365 дней), можете установить любое количество дней. Сертификат можно
выкладывать в открытый доступ, а вот ключ надо хранить как зеницу ока!!! Заполняем данные сертификата.
Теперь необходимо настроить apache на HTTPS. Для этого открываем файл /etc/apache2/sites-available/default-ssl.conf
sudo nano /etc/apache2/sites-available/default-ssl.conf
В нём меняем e-mail, дописываем в него после строки SSLEngine on стороку SSLProtocol all -SSLv2 тем самым отключаем устаревший протокол. И меняем
два параметра на:
SSLCertificateFile /etc/apache2/ssl/owncloud.crt #Путь к сертификату SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key №Путь к ключу
Теперь с помощью утилит a2enmod и a2ensite говорим apache что надо использовать SSL
sudo a2enmod default-ssl
sudo a2ensite default-ssl
Перезапускаем apache командой:
sudo services apache restart
Заходим на нашес сервер https://НашСервер/owncloud подтверждаем безопасность открытия данной страницы, так как
мы знаем что это наш сервер и его сертификат безопасен. И видим окно логина, задаем имя пользователя и пароль администратора.
Настоятельно рекомендую использовать эти учетные данные только для администрирования сервера.
Теперь нам надо сказать ownCloud чтоб он использовал только HTTPS. В правом верхнем углу нажимаем на имя учетной записи и
жмем “Администрирование”, пролистываем почти в самый низ до пункта “Безопасность” и ставим там галочку “Принудить к HTTPS”.
Все готово, теперь создаем пользователей и можно пользоваться своим собственным хранилищем.
Возможности owncloud «из коробки»:
Многопоточная загрузка данных «перетягиванием» при помощи технологии drag-and-drop
Редактирование прав на доступ к файлам для конкретных пользователей, групп или интернета
Подключение и просмотр новостных rss лент
Просмотр изображений, видео, офисных документов
Синхронизируемый календарь, менеджер задач, менеджер контактов, менеджер веб закладок
Отслеживание активности пользователей
Защищенное соединение, шифрование данных, ldapwebdav аутентификация
Поддержка внешних хранилищ: google drive, dropbox, ftp, smb, webdav, amazon s3, irods, openstack object storage, а так же локальных
Клиентские приложения с полной синхронизацией для всех актуальных платформ
Это всего лишь краткий список возможностей ownCloud, но уже сейчас видны его преимущества. При желании можно добавить почтовый клиент, торрент клиент, чат с видео, полноценный офис, проверку фалов на VirusTotal и многое другое.
Перейдем от теории к практике.
Заметки
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 = '<a href="#" original-title="' t('files', 'Delete permanently') '" class="action delete delete-icon" />';
} else {
var html = '<a href="#" class="action delete delete-icon" />';
}
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 = '<a href="#" original-title="' t('files', 'Delete permanently') '" class="action delete delete-icon" />';
// } else {
// var html = '<a href="#" class="action delete delete-icon" />';
// }
// 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;
// }); Настройка доступа к owncloud из интернета через рутер
Рассмотрим пример на основе роутера asus rt-n16:
Предварительные требования
Чтобы выполнить перечисленные в настоящем руководстве шаги, вам потребуется следующее:
- Пользователь sudo и брандмауэр на вашем сервере. Вы можете создать пользователя с привилегиями
sudoи настроить базовый брандмауэр в соответствии с указаниями руководства Начальная настройка сервера Ubuntu 18.04. - Стек LAMP. Для работы ownCloud требуются веб-сервер, база данных и PHP. Установка на сервер стека LAMP (Linux, Apache, MySQL и PHP) позволяет удовлетворить все эти требования. Воспользуйтесь этим руководством для установки и настройки данного программного обеспечения.
- Сертификат SSL. Настройка сертификата зависит от того, присвоено ли вашему серверу доменное имя.
Шаг 1 — установка owncloud
Пакет сервера ownCloud отсутствует в репозиториях Ubuntu по умолчанию. Однако для распространения ownCloud имеется собственный репозиторий, который мы можем добавить на наш сервер.
Для начала загрузите ключ релиза с помощью команды curl и импортируйте его с помощью утилиты apt-key, используя команду add:
Файл Release.key содержит открытый ключ PGP, который apt использует для проверки подлинности пакета ownCloud.
Помимо импорта ключа вам нужно будет создать файл owncloud.list в директории sources.list.d для apt. В этом файле будет содержаться адрес репозитория ownCloud.
Сейчас мы можем использовать диспетчер пакетов для поиска и установки ownCloud. Вместе с основным пакетом мы установим несколько дополнительных библиотек PHP, которые используются ownCloud для добавления дополнительных функций. Обновите индекс локальных пакетов и установите все необходимое с помощью следующей команды:
Мы установим на сервер все, что нам потребуется, а затем сможем закончить настройку и начать использование службы.
Шаг 2 — настройка корневого каталога документов
Установленный нами пакет ownCloud копирует веб-файлы в директорию /var/www/owncloud на сервере. Конфигурация виртуального хоста Apache настроена для выдачи файлов из другой директории. Нам нужно изменить параметр DocumentRoot в нашей конфигурации, чтобы он указывал на новую директорию.
Чтобы определить, какие файлы виртуального хоста ссылаются на ваше доменное имя или IP-адрес, нужно использовать утилиту apache2ctl с опцией DUMP_VHOSTS. Отфильтруйте результаты по доменному имени или IP-адресу вашего сервера, чтобы определить, какие файлы нужно отредактировать с помощью следующих нескольких команд:
Результаты будут выглядеть примерно так:
Output
*:443 server_domain_or_IP (/etc/apache2/sites-enabled/server_domain_or_IP-le-ssl.conf:2)
port 80 namevhost server_domain_or_IP (/etc/apache2/sites-enabled/server_domain_or_IP.conf:1)
В скобках показаны все файлы, ссылающиеся на доменное имя или IP-адрес, которые мы будем использовать для доступа к ownCloud. Это те файлы, которые вам нужно отредактировать.
Откройте каждый из совпадающих файлов в текстовом редакторе с привилегиями sudo:
Найдите в каждом из файлов директиву DocumentRoot. Измените эту строку так, чтобы она указывала на директорию /var/www/owncloud:
Example DocumentRoot edit
Сохраните файл и закройте его после завершения. Завершите эту процедуру для каждого из файлов, ссылающихся на ваше доменное имя (или на IP-адрес, если у вашего сервера нет доменного имени).
Закончив редактирование, проверьте синтаксис файлов Apache и убедитесь, что в конфигурации отсутствуют заметные опечатки:
Output
Syntax OK
В зависимости от вашей конфигурации вы можете увидеть предупреждение относительно настройки параметра ServerName как глобального. Если в конце страницы результатов отображается надпись Syntax OK, вы можете игнорировать это предупреждение. Если вы видите дополнительные ошибки, проверьте отредактированные файлы на наличие ошибок.
Если файлы прошли проверку синтаксиса, перезапустите службу Apache для активации изменений:
Теперь Apache должен выводить ваши файлы ownCloud с вашего сервера.
Шаг 3 — настройка базы данных mysql
Прежде чем перейти к настройке веб-конфигурации, нам нужно настроить базу данных. В процессе настройки веб-конфигурации нам нужно указать имя базы данных, имя пользователя базы данных и пароль для базы данных. Все это необходимо ownCloud для подключения к базе данных MySQL и управления своими данными.
Для начала войдите в базу данных как администратор MySQL:
Если вы задали использование пароля для учетной записи MySQL root, используйте следующий синтаксис:
Создайте выделенную базу данных для ownCloud. Для удобства мы присвоим базе данных имя owncloud:
Примечание. Каждый оператор MySQL должен заканчиваться точкой с запятой (;). Обязательно проверьте это, если у вас возникнут проблемы.
Затем создайте отдельную учетную запись пользователя MySQL для управления созданной базой данных. Создание баз данных и учетных записей с одной функцией является хорошей идеей с точки зрения управления и безопасности. Выберите предпочитаемое имя пользователя. Для целей этого обучающего модуля мы решили использовать имя owncloud.
Предупреждение. Обязательно введите реальный пароль там, где в команде стоит: owncloud_database_password
С назначенным пользователем доступом к базе данных выполните операцию очистки привилегий, чтобы работающему экземпляру MySQL было известно о недавнем назначении привилегий:
Теперь вы можете закрыть сеанс MySQL с помощью следующей команды:
Мы установили сервер ownCloud и настроили базу данных. Теперь можно переходить к настройке приложения ownCloud.
Заключение
ownCloud позволяет воспроизводить возможности популярных сторонних облачных сервисов хранения файлов. Контентом можно делиться с другими пользователями или делать его общедоступным через публичные URL. Преимущество ownCloud заключается в том, что вы контролируете место хранения данных и управляете им без использования сторонних услуг.
Изучите интерфейс и установите плагины из магазина приложений ownCloud, если вам требуются дополнительные возможности.
