Честно сказать у меня уже давно чесались руки к созданию своего хранилища с доступом с любых устройств. Тут и пришел на помощь 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 пп
[…] ? […]