Default Green Orange
Gemini_13's Blog
Блокнот полезных вещей
Home
    • Карта сайта
    • Обо мне
RSS

Свой облачный хостинг с помощью ownCloud

Linux, Настройка сервера, Разное Add comments

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

owncloud

Указываем логин и пароль администратора, выбираем какая БД, вводим данные для доступа к базе и можем указать другое хранилище файлов.

После этого скрипт немного «подумает» и перенаправит Вас в веб-морду.
На этом всё! Удачи, господа 🙂


20 октября, 2013  
Tags: cloud, debian, nginx, owncloud, php, wheezy, облако, свое облако

One Response to “Свой облачный хостинг с помощью ownCloud”

  1. Свой облачный хостинг с помощью ownCloud | Note
    1 ноября, 2013 at 2:21 пп

    […] ? […]


Leave a Reply

  • Рубрики

    • FreeBSD (20)
    • Linux (46)
    • MySQL (11)
    • Windows (14)
    • Железо (3)
    • Мои моды к TorrentPier II (16)
    • Настройка сервера (49)
    • Разное (33)
    • Скрипты (30)
  • Свежие записи

    • Поля форм на Yii2: textInput(), passwordInput() и hiddenInput()
    • Поля форм на Yii2: CheckboxList()
    • SpeedTest датацентров Digital Ocean
    • Патчим Gearman на Debian
    • nginx + Apache 2.4 и REMOTE_ADDR (решение проблемы)
    • Создание и подключение swap-файла в Debian
    • Запуск PhpStorm 9 x64 на Windows
    • Рекурсивная замена прав доступа для папок и файлов в Linux
    • VirtualBox 5 + phpVirtualBox на Debian 8.2 (jessie)
    • Обработка сессий PHP с помощью Redis + phpredis на Debian 7.8
  • Ссылки

    • My GitHub
  • Архивы

    • Июнь 2016 (2)
    • Март 2016 (2)
    • Январь 2016 (3)
    • Ноябрь 2015 (2)
    • Август 2015 (1)
    • Февраль 2015 (1)
    • Январь 2015 (7)
    • Октябрь 2014 (1)
    • Июнь 2014 (1)
    • Май 2014 (1)
    • Апрель 2014 (7)
    • Февраль 2014 (9)
    • Январь 2014 (5)
    • Декабрь 2013 (7)
    • Ноябрь 2013 (1)
    • Октябрь 2013 (3)
    • Август 2013 (4)
    • Июль 2013 (4)
    • Июнь 2013 (3)
    • Апрель 2013 (2)
    • Март 2013 (2)
    • Февраль 2013 (6)
    • Январь 2013 (2)
    • Декабрь 2012 (1)
    • Ноябрь 2012 (2)
    • Октябрь 2012 (7)
    • Сентябрь 2012 (22)
Все права защищены © 2013 Gemini_13's Blog
G13.org.ua