Честно сказать у меня уже давно чесались руки к созданию своего хранилища с доступом с любых устройств. Тут и пришел на помощь ownCloud. О нем написано не мало и документация не плохая, как для открытого проекта. Как минимум, мне было всё понятно, что касается установки и использования. На правах очередной заметки распишу процесс поднятия этого сервиса на Debian 7, который под рукой.
Установить можно тремя путями: скачать архив, использовать веб-инсталятор или подключить репу и ставить пакетом. Для удобства установки и, в будущем, обновлений, подключим репозитарий. Все эти варианты, как и клиентские программы, есть на странице установки на официальном сайте.
Инструкция гласит приблизительно следующее (немного внес правки):
# nano /etc/apt/sources.list
Дописываем в конец и сохраняем:
# ownCloud deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/ /
Добавляем ключ:
# wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key # apt-key add - < Release.key
Обновляем репозитарии:
# aptitude update && aptitude upgrade
Устанавливаем:
# aptitude install owncloud
Для красоты перенесу папку с ownCloud в более удобное для меня место.
# mkdir /home/www/cloud.site.com/ # mv /var/www/owncloud /home/www/cloud.site.com
Поскольку я apache перестал любить после «знакомства» с nginx, то мне придется настраивать его. Настраивать буду поддомен, т.к. люблю когда всё лежит именно на них. Кстати, меня очень сильно порадовала документация, в которой уже были настройки для целого списка веб-серверов.
# nano /etc/nginx/sites-available/cloud.site.com
Хост будет выглядеть так:
server {
listen 80;
server_name cloud.site.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name cloud.site.com;
include /etc/nginx/ssl-keys.conf;
root /home/www/cloud.site.com;
client_max_body_size 5G; # set max upload size and don't forgot about php.ini
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 / {
index index.php index.html;
autoindex off;
# 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 = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location = /favicon.ico {
log_not_found off;
}
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $2;
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_buffers 256 16k;
fastcgi_max_temp_file_size 0;
fastcgi_param HTTPS on;
include fastcgi_params;
}
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}
}
Включим новый хост:
# ln -s /etc/nginx/sites-available/cloud.site.com /etc/nginx/sites-enabled/cloud.site.com
Отредактируем максимальный размер загружаемых файлов в php.ini:
# nano /etc/php5/fpm/php.ini
Меняем параметры upload_max_filesize и post_max_size на свое усмотрение. Например, 512M.
Перезагрузим PHP и веб-сервер:
# service php5-fpm restart # service nginx restart
Создадим БД и пользователя в MySQL:
CREATE DATABASE `owncloud` CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 'owncloud'@'localhost' IDENTIFIED BY 'pass'; GRANT SELECT, INSERT, UPDATE, REFERENCES, DELETE, CREATE, DROP, ALTER, INDEX, TRIGGER, CREATE VIEW, SHOW VIEW, EXECUTE, ALTER ROUTINE, CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, EVENT ON `owncloud`.* TO 'owncloud'@'localhost'; GRANT GRANT OPTION ON `owncloud`.* TO 'owncloud'@'localhost';
Выставим владельцем папок и файлов юзера веб-сервера:
# chown -R nginx:nginx /home/www/cloud.site.com/
Переходим по адресу:
https://cloud.site.com/
Указываем логин и пароль администратора, выбираем какая БД, вводим данные для доступа к базе и можем указать другое хранилище файлов.
После этого скрипт немного «подумает» и перенаправит Вас в веб-морду.
На этом всё! Удачи, господа 🙂




1 ноября, 2013 at 2:21 пп
[…] ? […]