После того, как я, наконец, установил дополнительный SSD на свой домашний сервер, то мне, в первую очередь, захотелось настроить собственное облачное хранилище.
Из opensource решений я знаю только Owncloud. И как раз, пару недель назад вышла пятая версия Owncloud. Вначале я попытался поставить её, но потом отказался от этой идеи, поскольку, во-первых, эта пятая версия упорно не хотела работать на nginx, выдавая ошибку:
This content failed to load.
При этом никакие рекомендации, описанные здесь:
http://forum.owncloud.org/viewtopic.php?f=23&t=9013
мне не помогли.
А во-вторых, для пятой версии ещё не вышел ownCloud Desktop Client. Поэтому я решил ставить версию 4.5.8.
Итак, сперва-наперво, обновим порты во FreeBSD:
portsnap fetch update
Теперь смотрим, какие пакеты нужны для Owncloud:
http://doc.owncloud.org/server/5.0/admin_manual/installation/installation_source.html
И вроде бы, у меня всё стоит, кроме smbclient. Честно говоря, не знаю, пригодится ли оно, но поставить ведь не сложно:
cd /usr/ports/net/samba-smbclient
make install clean
В зависимостях опции сборки оставил по умолчанию.
Но чтобы 100% быть уверенным, что всё необходимое для owncloud у меня есть, я решил сначала поставить owncloud прямо из портов. К этому времени, там тоже уже была 5-я версия. Ставлю:
cd /usr/ports/www/owncloud
make install clean
И не зря я так поступил, потому как owncloud потянул за собой некторые зависимости: mp3info и php53-pdo_mysql. Поэтому делаем вот такие команды:
rehash
service php-fpm restart
Теперь, что касается настройки nginx: для себя, я определился, что облако у меня будет доступно под адресу cloud.example.com. Поэтому, нужно подготовить nginx для нового поддомена. В документации есть страничка о том, как нужно сконфигурировать nginx для owncloud:
Этот конфиг работает с версией 4.5.8, но не работает с пятой версией.
Вообщем, с помощью документации, я в свой конфиг (в конец конфига перед последним завершающим символом « } » ) nginx дописываю вот такие строчки:
# redirect http to https. server { listen 80; server_name cloud.example.com ; return https://$server_name$request_uri; # enforce https } # owncloud (ssl/tls) server { listen 443 ssl; ssl_certificate cert.pem; ssl_certificate_key cert.key; server_name cloud.example.com; root /usr/home/www/owncloud; index index.php; client_max_body_size 1024M; # set maximum upload size # deny direct access location ~ ^/(data|config|\.ht|db_structure\.xml|README) { deny all; } # default try order location / { try_files $uri $uri/ @webdav; } # owncloud WebDAV location @webdav { fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS on; include fastcgi_params; } # enable php location ~ \.php$ { try_files $uri = 404; fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS on; include fastcgi_params; } }
И не забываю перезапустить nginx:
service nginx restart
Затем, вручную скачиваю уже нужную мне версию Owncloud:
fetch http://download.owncloud.org/community/owncloud-4.5.8.tar.bz2
И содержимое архива распаковываю в каталог /usr/home/www/owncloud. При этом, не забываю дать соответствующие права:
chown -R www:www /usr/home/www/owncloud
Далее, нужно создать базу MySQL для облака:
mysql -p
CREATE DATABASE `cloud`;
GRANT ALL PRIVILEGES ON cloud.* TO 'cloud'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Затем открываю браузер, захожу по адресу cloud.example.com и вижу вот такую картинку:
Тут надо нажать кнопку «дополнительно» и ввести логин, пароль и название базы MySQL:
и нажать кнопку «завершить установку».
Есть ещё один момент, который, скорей всего, имеет смысл сделать. Во всяком случае, хуже не должно быть, ибо тут написано:
http://wiki.nginx.org/HttpDavModule
что если нужны полные возможности WebDAV, то нужно пересобрать nginx с опцией расширенных возможностей webdav. А Owncloud благодаря этим возможностям и работает. Сразу скажу, что я не тестировал, работает ли корректно owncloud без расширенный возможностей webdav — я просто сразу пересобрал nginx, включив опцию dav-ext-module, а, за одним, и обновил сам nginx. Делал это так:
Сначала установил программку portupgrade:
cd /usr/ports/ports-mgmt/portupgrade
make install clean
опции сборки зависимостей оставил по умолчанию. О том, что это за программка и как ей пользоваться, я прочитал тут:
http://hotfreebsd.ru/ispolzovanie-portupgrade-dlya-obnovleniya-ustanovlennyx-iz-portov-programm
Установил portupgrade, потом иду в каталог /usr/ports/www/nginx-devel и там выполняю команду:
make config
Появится меню выбора опций сборки, в котором я дополнительно (к тем что у меня уже стояли) отмечаю вот эту опцию:
затем обновляю nginx:
service nginx stop
rehash
portupgrade nginx-devel
Всё должно пройти гладко без всяких запросов. Собственно, после этой процедуры, запускаем nginx обратно и начинаем пользоваться owncloud.
Надо заметить, что по умолчанию owncloud даёт загрузить только файлы не больше 8мб.:
На самом деле, причина этого — настройки php. Находим файл /usr/local/etc/php.ini и открываем для редактирования. Находим в нём строчки «upload_max_filesize» и «post_max_size». Правим их до нужного нам размера:
upload_max_filesize = 1024M
post_max_size = 1024M
Сохраняем и перезапускаем php-fpm:
service php-fpm restart
Собственно, с установкой и конфигурированием закончено на этом. Теперь можно позагружать файлы на облако и скачать ownCloud Desktop Client вот от сюда:
http://owncloud.org/sync-clients
Он там есть и для винды, и для мака, и для линукса. С установкой клиента проблем не должно возникнуть, после чего появится значок в трэе, символизирующий об успешном подключении и синхронизации:
На работе у меня до сих пор стоит Fedora 13 x86_64, поэтому для рабочего компа мне пришлось самому пересобирать пакеты, нужные для owncloud-client, и, собсветнно, сам owncloud-client. Вот они все:
ftp://technotrance.su/files/repo/owncloud-client-1.2.1/owncloud-client-1.2.1-4.1.x86_64.rpm
ftp://technotrance.su/files/repo/iniparser-3.1/iniparser-3.1-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/libqtkeychain-0.20130221-5.1/libqtkeychain0-0.20130221-5.1.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.70.4/owncloud-csync-0.70.4-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.70.4/owncloud-csync-libs-0.70.4-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.70.4/owncloud-csync-plugin-owncloud-0.70.4-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.70.4/owncloud-csync-plugin-sftp-0.70.4-1.fc13.x86_64.rpm
Надо скачать все эти файлы в одну папку, затем, находясь в ней, выполнить команду:
rpm -ivh *.rpm
Эта команда установит все пакеты разом из этой папки.
Также, при пересборке src.rpm-пакетов у меня возникли некоторые проблемы из-за того, что эти src.rpm-ки были сделаны, по-ходу, для suse. Поэтому пришлось их раздраконить и немножко поправить spec-файлы. Выкладываю также src.rpm-ки, которые корректно соберутся под федорой:
ftp://technotrance.su/files/repo/owncloud-csync-0.70.4/owncloud-csync-0.70.4-1.fc19.src.rpm (это вместо ocsync-0.70.4-32.1.src.rpm, который лежит в репозитории owncloud -- он не собирается под федорой)
ftp://technotrance.su/files/repo/libqtkeychain-0.20130221-5.1/libqtkeychain-0.20130221-5.1.src.rpm
ftp://technotrance.su/files/repo/owncloud-client-1.2.1/owncloud-client-1.2.1-4.1.src.rpm
Добавлено 01.04.2013: У owncloud обнаружился один серьёзный косяк. И заключается он в том, что client не может синхронизировать файлы с сервера на комп, если среди них попадаются .zip файлы. С компа на сервер синхронизирует нормально, а вот с сервера на комп − зависает, когда доходит до любого .zip файла. На форуме разработчиков этот баг пока висит открытым. Поэтому сейчас пока придётся либо не использовать zip файлы на сервере, либо ждать когда разработчики исправят этот косяк. Для меня использование zip файлов не принципиально, поэтому пока живу без них, но за обновлениями буду следить. Как только решатся проблемы с zip файлами и работой owncloud на nginx, то попробую обновить своё облако
Добавлено 13.04.2013: Исправили косяк с zip файлами. Ещё с версии клиента 1.2.3. Но тут я уже выложу следующую версию − 1.2.4-5.1 для Fedora 13 x86_64, поскольку мне её вручную пришлось собирать. Как и прежде, готовые пакеты + src-пакеты:
ftp://technotrance.su/files/repo/owncloud-client-1.2.4-5.1/owncloud-client-1.2.4-5.1.x86_64.rpm
ftp://technotrance.su/files/repo/iniparser-3.1/iniparser-3.1-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/libqtkeychain-0.20130221-7.1/libqtkeychain0-0.20130221-7.1.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.70.6/owncloud-csync-0.70.6-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.70.6/owncloud-csync-libs-0.70.6-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.70.6/owncloud-csync-plugin-owncloud-0.70.6-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.70.6/owncloud-csync-plugin-sftp-0.70.6-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.70.6/owncloud-csync-0.70.6-1.fc20.src.rpm
ftp://technotrance.su/files/repo/libqtkeychain-0.20130221-7.1/libqtkeychain-0.20130221-7.1.src.rpm
ftp://technotrance.su/files/repo/owncloud-client-1.2.4-5.1/owncloud-client-1.2.4-5.1.src.rpm
Добавлено 21.04.2013: Дождался я пока разработчики залатают бОльшую часть багов в новой пятой версии Owncloud. И решил снова попробовать установить пятую версию облака себе. На этот раз, вроде, всё прошло нормально. Установил себе версию 5.0.5.
Итак опишу этот процесс. Начну с того, что в документации выложили весьма изменённый конфиг для nginx:
http://doc.owncloud.org/server/5.0/admin_manual/installation/installation_others.html
У меня он получился вот таким:
# redirect http to https.
server {
listen 80;
server_name cloud.example.com;
return https://$server_name$request_uri; # enforce https
}
# owncloud (ssl/tls)
server {
listen 443 ssl;
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
server_name cloud.example.com;
root /usr/home/www/owncloud;
index index.php;
client_max_body_size 10G; # set maximum upload size
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
error_page 403 = /core/templates/403.php;
error_page 404 = /core/templates/404.php;
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param PATH_INFO $2;
fastcgi_param HTTPS on;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/tmp/php-fpm.sock;
}
# Optional: set long EXPIRES header on static assets
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}
}
Собственно, он почти такой же, как и в документации, однако без строчки, выделенной зелёным, ни шиша не работало!
Затем, я скачал архив owncloud-5.0.5.tar.bz2 и распаковал его в каталог /usr/home/www/owncloud. Ну, а дальше всё, как и раньше — то бишь что я описывал выше при установке версии 4.5.8. Я не стал заморачиваться с так называемым "джедайским" методом обновления четвёртой версии до пятой, поскольку у меня за это время не так много данных накопилось — мне проще скопировать всё заново на облако
Не забываем, кстати, mysql-базу пересоздать.
Донаты принимаются на кошельки:
Yoomoney:
4100118091867315
Карта Т-Банк (бывший Тиньков):
2200 7017 2612 2077
Карта Альфа-Банк:
2200 1539 1357 2013
Добавлено 27.04.2013:
ftp://technotrance.su/files/repo/owncloud-client-1.2.5-5.1/owncloud-client-1.2.5-5.1.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.70.7-1/owncloud-csync-0.70.7-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.70.7-1/owncloud-csync-devel-0.70.7-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.70.7-1/owncloud-csync-libs-0.70.7-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.70.7-1/owncloud-csync-plugin-owncloud-0.70.7-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.70.7-1/owncloud-csync-plugin-sftp-0.70.7-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/libqtkeychain-0.20130221-7.1/libqtkeychain0-0.20130221-7.1.x86_64.rpm
ftp://technotrance.su/files/repo/iniparser-3.1/iniparser-3.1-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-client-1.2.5-5.1/owncloud-client-1.2.5-5.1.src.rpm
ftp://technotrance.su/files/repo/libqtkeychain-0.20130221-7.1/libqtkeychain-0.20130221-7.1.src.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.70.7-1/owncloud-csync-0.70.7-1.fc19.src.rpm
Добавлено 03.07.2013:
ftp://technotrance.su/files/repo/libiniparser-3.1-3.2/libiniparser-3.1-3.2.x86_64.rpm
ftp://technotrance.su/files/repo/libqtkeychain-0.20130221-7.2/libqtkeychain0-0.20130221-7.2.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.80.0-1/owncloud-csync-0.80.0-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.80.0-1/owncloud-csync-libs-0.80.0-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.80.0-1/owncloud-csync-plugin-owncloud-0.80.0-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.80.0-1/owncloud-csync-plugin-sftp-0.80.0-1.fc13.x86_64.rpm
ftp://technotrance.su/files/repo/owncloud-client-1.3.0-6.1/owncloud-client-1.3.0-6.1.x86_64.rpm
ftp://technotrance.su/files/repo/libiniparser-3.1-3.2/libiniparser-3.1-3.2.src.rpm
ftp://technotrance.su/files/repo/libqtkeychain-0.20130221-7.2/libqtkeychain-0.20130221-7.2.src.rpm
ftp://technotrance.su/files/repo/owncloud-csync-0.80.0-1/owncloud-csync-0.80.0-1.fc13.src.rpm
ftp://technotrance.su/files/repo/owncloud-client-1.3.0-6.1/owncloud-client-1.3.0-6.1.src.rpm
Комментарии
Нашел у вас много всего интересного. Останавливает лишь то, что у меня опыт общения только с Ubuntu. Не уверен что все это смогу сделать на ней.
Ещё более удивительно то, что нет ни одного комментария и благодарностей.
Спасибо за проделанный труд и доступность изложения.
А на убунте можно сделать абсолютно всё, что я сделал здесь на федоре и на фрюхе.
Попытка подключения к ownCloud на 192.168.0.5/owncloud/remote.php/webdav/ ...
Не удалось подключиться к ownCloud!
Ошибка: Отказано в соединении
Подключение к ownCloud не может быть установлено. Пожалуйста, проверьте еще раз. Версия ownCloud 5.0.6
Ну а русский язык и клиенты для айфонов и андроидов -- это и у owncloud есть.
>wiki.nginx.org/HttpDavModule
Абсолютная бессмыслица, у nginx своя реализация webdav, у owncloud тоже своя. Они никак не пересекаются.