Грамотно устанавливаем ownCloud 7 — облачное хранилище данных своими руками

Редакцию нашего журнала завалили письмами с просьбами описать установку популярной свободной программы ownCloud, которая применяется для создания частных облачных хранилищ.

Нюансы установки ownCloud 7 уже освещались на Либератуме, но это был переводной материал и читатели жалуются, что хотя они строго следуют инструкции, запустить ownCloud не получается. Хорошо, давайте я сам установлю эту программу, а затем опишу каждый шаг.

Выбор дистрибутива Linux

Большого значения дистрибутив не имеет, так как ownCloud заработает под любым, лишь бы это был Linux. Но я советую Debian — меньше времени потом будет уходить на выяснение причин падения. Все описанные ниже команды будут работать и в Ubuntu, который я использовать не рекомендую.

Выбор версии ownCloud

В репозиториях Debian вообще нет никакой версии ownCloud, даже устаревшей. Возможно, это и к лучшему. В Ubuntu эта программа есть, но из-за нее недавно разразился скандал. Если кратко, разработчики ownCloud попросили удалить свой софт из репозитория Ubuntu, потому как разработчики Ubuntu оставляли дыры в ownCloud даже после выпуска официальных заплаток. Видимо, были сильно заняты интеграцией очередного магазина в Unity. Но сейчас не об этом.

Версию будем брать не из репозиториев, а с официального сайта, самую свежую (из стабильных). Заходим на страницу загрузок и выбираем вариант Archive Files (for server owners). В открывшемся окне жмем на слове Unix. Запускается загрузка архива с ownCloud. На момент написания этой статьи в ходу была версия 7.0.2. Прямая ссылка: https://download.owncloud.org/community/owncloud-7.0.2.tar.bz2.

Прежде чем закрыть окно браузера, скачаем и руководство для админа: http://doc.owncloud.org/server/7.0/ownCloudAdminManual.pdf. Согласно одному известному правилу, если ничего не получится, придется наконец-то прочитать мануал. Но лучше не доводить до крайностей и пробежаться по разделу Installation до установки ownCloud.

LAMP

ownCloud — это скрипты на популярном языке программирования PHP. Делаем предположение, что нам потребуется сетевой стек LAMP. LAMP — это сокращение от Linux, Apache, MySQL и PHP. Останавливаться на его установке не будем. Во-первых, установка предельно проста — нужно указать для apt-get install нужные компоненты и готово. Во-вторых, инструкциями по установке LAMP интернет забит чуть менее, чем полностью. Вот, например.

Устанавливается LAMP за 2 минуты. Еще столько же уйдет на правку конфигурационных файлов и все сразу заработает. В Debian. На другие дистрибутивы моя гарантия не распространяется. А вот тюнинг отдельных компонентов LAMP — это настоящее искусство. Есть спецы по MySQL, есть по Apache, на тюнинг может уйти много времени, сил, а иногда и денег. Особенно в условиях ограниченных ресурсов (если вы запускаете ownCloud на стороннем хостинге). Но нам сейчас это не понадобится.

ownCloud и Apache

Берем архив с ownCloud и распаковываем в директорию /var/www.

cp owncloud-7.0.2.tar.bz2 /var/www/
cd /var/www/
tar xf owncloud-7.0.2.tar.bz2

Разумеется, все операции под root. Затем нужно переименовать директорию owncloud в название вашего сайта. Например, если для доступа к облачному хранилищу будет использоваться домен mysupercloud.ru, тогда переименовываем так:

mv owncloud mysupercloud.ru

Переименовывать необязательно, но очень полезно. Если сайтов на сервере несколько, то именование директорий по доменам позволит не забыть где у вас что. Я же для удобства оставлю название как есть.

Теперь очень важный шаг, о котором многие забывают, но потом мучаются с правами доступа. И в итоге выставляют на все 777, подвергая свою систему опасности. Web-сервер Apache работает под отдельным пользователем и в отдельной группе. Связано это с тем, что если злоумышленник сможет хакнуть Apache через дыру в самом сервере или через дыру в скриптах сайта, то получит лишь ограниченный доступ к системе. Фактически, каккер сможет перезаписывать только содержимое некоторых файлов в /var/www. Передадим Апачу права на файлы ownCloud:

chown -R www-data:www-data owncloud

Убедимся, что все в порядке:

ls -al
drwxr-xr-x 12 www-data www-data     4096 Авг 26 13:18 owncloud

Теперь создадим виртуальный Web-сайт, должным образом настроив Apache. Поскольку разработчики Debian любят пользователей, монолитный конфигурационный файл был изящно распилен на части, с которыми уже работать удобнее. На этом сюрпризы от разработчиков Debian не заканчиваются. К услугам пользователей удобный инструментарий a2ensite/a2dissite/a2enmod/a2dismond. Это скрипты на Perl, которые сокращают работу с конфигурационным файлом Apache до минимума.

Переходим в директорию /etc/apache2/sites-available, берем заготовку default и копируем ее под новым именем. Как и в случае с названием директории с owncloud, желательно использовать название домена:

cp default owncloud

Открываем скопированный файл для редактирования. Очень важно точно указать значения для трех переменных: ServerName, DocumentRoot и Directory. Никаких опечаток, иначе на заработает!

<VirtualHost *:80>
 
   ServerName owncloud
   ServerAdmin webmaster@localhost
   DocumentRoot /var/www/owncloud
 
   <Directory /var/www/owncloud>
      Options FollowSymLinks -MultiViews
      AllowOverride All
      Order allow,deny
      allow from all
   </Directory>
 
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
 
</VirtualHost>

То есть, в ServerName мы прописываем имя домена (то, что пользователь будет набирать в адресной строке браузера, чтобы получить доступ к ownCloud). DocumentRoot и Directory указывают на директорию с файлами ownCloud.

Теперь запустим сайт:

a2ensite owncloud
service apache2 restart

Сайт нам уже отвечает, хотя установка еще далека от завершения. Внимание: если используется «ненастоящий» домен, то его следует явно прописать в /etc/hosts!

Установка ownCloud

На этом настройка Apache завершается и переходим к настройке MySQL.

ownCloud и MySQL

Вся настройка заключается лишь в том, что нам потребуется создать отдельного пользователя в MySQL (не путать с пользователями операционной системы), создать базу, связать одно с другим и выставить права доступа.

Если вы разбираетесь в MySQL, вы легко выполните это с помощью командной строки и прекрасной утилиты mysql. Остальным я рекомендую воспользоваться web-интерфейсом к MySQL под названием phpmyadmin. Этот софт есть в стандартном репозитории Debian, устанавливается командой apt-get install phpmyadmin и работать начинает практически сразу, ведь LAMP у вас уже настроен. Пользователю остается лишь запустить браузер и перейти по адресу http://localhost/phpmyadmin. В целях безопасности рекомендую подправить конфигурацию Apache, чтобы доступ к phpmyadmin имели только пользователи из локальной сети. Дело в том, что phpmyadmin — на редкость дырявое ПО и каккеры часто сканируют сайты в поисках именно phpmyadmin.

phpmyadmin для установки ownCloud

Итак, создаем в phpmyadmin пользователя owncloud и присваиваем ему хитрый пароль. Создаем базу данных owncloud. Даем пользователю owncloud полные права на доступ к базе owncloud. На этом настройка MySQL заканчивается. Переходим непосредственно к установке.

Создание базы данных в MySQL

Внимание: создавая базу данных, в пункте «сравнение» указывайте utf8_general_ci.

Настройка ownCloud

Запустите браузер и перейдите по адресу http://owncloud (в вашем случае адрес будет тот, который вы указывали в ServerName). В появившемся окне задайте имя администратора и пароль к этой учетной записи. Чуть ниже нажмите на ссылку «Система хранения данных», нажмите на кнопку MySQL и укажите информацию для доступа к созданной в MySQL базе данных — название базы, имя пользователя и пароль. Нажимайте кнопку «Завершить установку».

Опс! На экране предупреждение, что Apache работает без поддержки протокола WebDAV. Собственно, через этот протокол пользователь и работает со своими файлами на сервере. Раз ownCloud просит WebDAV, я считаю, что ему нужно это дать:

a2enmod dav
a2enmod dav_fs
service apache2 restart

Снова заходим на главную страницу owncloud и видим радостное приветствие. Любезный ownCloud готов начать нас обслуживать.

Установленный ownCloud

В заключении

Если к этой теме будет проявлен дальнейший интерес, то я расскажу о том, как настроить красивые адреса URL (http://owncloud/settings/admin вместо http://owncloud/index.php/settings/admin), как включить безопасный протокол HTTPS вместо HTTP и том, как расширить возможности ownCloud. Спасибо за внимание!

Удаленный доступ к файлам через web-интерфейс

Ваша оценка: Нет Средняя оценка: 4.9 (21 votes)
a

Гайд полезный. сам Недавно возился с ним.

Догадки на будущий пост:

1) Хмм... mod_rewrite включить?

2) Добавить еще один vhost, Только указав и не забыв добавить в /config/config.php в массив trusted_domains новую запись
1 => 'owncloud:443'
правда ssl серт зачастую самоподписаный (будет гуглом хромо считаться snake oil-ом)

3) в админке есть «Плагины». Не пробовал, но думаю не очень сложно, если все интерактивно.

сейчас с постфиксом мучаюсь, вот тут запары.
сборка iredmail не встала, приходится связывать довекот, постфикс и вебпанельку roundcube друг с другом

Ваша оценка: Нет Средняя оценка: 5 (2 votes)
11
pomodor

mod_rewrite включить

А его вообще всегда полезно включать. Сейчас трудно найти CMS, которая не предлагала бы clean URL. Но включения модуля недостаточно, надо еще .htaccess правильный запилить.

правда ssl серт зачастую самоподписаный

А это и не важно. Главное, что заработает шифрование. Но для увлеченных граждан есть контора, раздающая сертификаты класса 1 на халяву.

приходится связывать довекот, постфикс и вебпанельку roundcube друг с другом

Тоже через это прошел. Небольшие проблемы были только с RoundCube, там конфиг какой-то немного придурочный. Кстати, не забудьте к Постфиксу прикрутить Постгрей, а то спамеры быстро все ящики закакают.

Ваша оценка: Нет Средняя оценка: 5 (2 votes)
a

Я к этому и стремлюсь. ТАм одно из требований — наличие у домена почтового сервиса, без оного вроде как не дают ssl серт.
Помимо грейлистинга поставлю еще fail2ban и антивирус.

Ваша оценка: Нет
a

Надеюсь что все у Вас получилось с почтой ))

iredmail ставится ТОЛЬКО на свежеустановленную систему. Сам с ним игрался — на своем домене почту поднимал. Получилось поставить только на чистую систему, да и в мануалах об этом пишуть... Но зато ставится влет, и работает качественно ))

Ваша оценка: Нет
a

спасибо за труд и доступность написания

Ваша оценка: Нет
a

Хороший мануал, спасибо!

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
11
pomodor

Не за что. Недавно переустанавливал ownCloud для личных нужд и вместо Apache использовал nginx, который статику отдает чуть шустрее. Кто-то интересовался настойкой nginx. В любом случае, если будут вопросы, задавайте!

Ваша оценка: Нет
a

Хотелось бы узнать поподробнее как подружить ownCloud и nginx вместе.
Планирую поднимать у себя в офисе компании собственное облако.
Не поможете?

Ваша оценка: Нет
11
pomodor

На сайте ownCloud подробно расписали настройку под Nginx и даже выложили готовый конфиг. Воспользуйтесь этим руководством и если возникнут проблемы, то я помогу.

Ваша оценка: Нет
11
pomodor

Планирую поднимать у себя в офисе компании собственное облако.

ownCloud — не облако вовсе, а Web-гуй на PHP для организации файлопомойки. Если нужно настоящее частное облако, то это OpenStack.

Ваша оценка: Нет
a

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

root@ownCloud:~# service apache2 restart
* Restarting web server apache2
...fail!
* The apache2 configtest failed.
Output of config test was:
AH00526: Syntax error on line 6 of /etc/apache2/sites-enabled/owncloud.conf:
Either all Options must start with + or -, or no Option may.
Action 'configtest' failed.
The Apache error log may have more information.

И копировал, и руками перебивал, ничего не помогает ((

Подскажите, куды копнуть?

Ваша оценка: Нет
a

Отвечу сам себе ))

в строке
Options FollowSymLinks -MultiViews

НЕ ДОЛЖНО стоять МИНУСА ( -MultiViews)

Если не сложно, автор, поправьте пожалуйста эту строчку ))

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
a

И все равно что-то не доделал (((

прописал вроде все что только возможно, пару раз систему откатывал до чистой, ставил с нуля, и все равно не могу зайти на страницу сайта.

Not Found
The requested URL /ownCloud was not found on this server.
Apache/2.4.7 (Ubuntu) Server at 192.168.19.103 Port 80

Подскажите таки, куда копнуть?

Может с названиями серверов и хостов косяк? Если что надо выложить — скажите ))

Ваша оценка: Нет
a

Ггг )) Так сам с собой и буду тут говорить ))

В итоге.

Если Вы разворачиваете сию конструкцию на поиграть в локальной сетке, и не хотите давать всякие доменные имена машине, то необходимо, чтобы можно было с рабочего компа подключиться к веб-морде этого стенда, в конфигурационном файле писать следующее:

ServerName owncloud
ServerAlias 192.168.19.103
ServerAdmin webmaster@localhost

DocumentRoot /var/www/owncloud/
Alias /owncloud /var/www/owncloud

Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

Ну по крайней мере у меня так заработало )))

Ваша оценка: Нет
11
pomodor

Так сам с собой и буду тут говорить

А что вы хотите, чтобы вам на эту глупость ответили? Убрать "Options -MultiViews" — поставить свой комп раком перед хакерами. Читайте мануал к Апачу, зубрите его, постигайте азы. За вас это никто не сделает.

Ваша оценка: Нет Средняя оценка: 1 (3 votes)
11
pomodor

Ах да, и в Linux без знания английского делать нечего. Вам же написали: Either all Options must start with + or -, or no Option may. Всего-то нужно было перед FollowSymLinks плюс поставить.

Ваша оценка: Нет Средняя оценка: 1 (1 vote)
a

Такие дела:
"Output of config test was:
AH00526: Syntax error on line 8 of /etc/apache2/sites-enabled/owncloud.conf:
Either all Options must start with + or -, or no Option may."
Вот восьмая строка того самого материала:
"Options FollowSymLinks -MultiViews"
Отсутствует знак + или — перед FollowSymLinks.
Прочитав вот эту статью (и будучи полным дилетантом в информатике): habrahabr.ru/sandbox/90459/, я решил отключить FollowSymLinks, проставив перед ним знак "-".
После этого сервер перезагрузился.
Но, как же сделать правильно?

Ваша оценка: Нет
a

Доброе время суток!
Ребята нужна Ваша помощь. Впервые использую owncloud, немогу побороть небольшой косяк, когда на виндовых тачках прикручую диск по Webdav все норм цыпляет, но когда открываю файлы(word,exel) он меня постоянно запрашивает пароль, можно как то обойти решение, и еще вопрос, не могу подцепить диск по https, только http цыпляеться, куда копать не подскажите?

Ваша оценка: Нет
a

Лично мне непонятно зачем весь этот геморрой? Если есть отличные, специально заточенные
под эти нужды решения. Такие как nas4free и FreeNas > freenas.org nas4free.org.

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
a

... или просто смонтировать за 5 сек нужную директорию по sshfs, Автор оставлял тут уже статью "Как расшарить файлы в Linux. Самый простой способ с SSHFS"

Ваша оценка: Нет
a

Доброго времени суток! В owncloud Файлы более 4 Гб с сервера в windows клиент не закачиваются, а из windows клиента на сервер загружаются. Через веб интерфес сервера и загружаются и скачиваются файлы по 20 Гб. Прошу оказать помощь.

Ваша оценка: Нет
3
gundenaf

Сервис прикольный, но перешел на другой форк — nextcloud. Повеселее будет)

Ваша оценка: Нет
Отправить комментарий
КАПЧА
Вы человек? Подсказка: зарегистрируйтесь, чтобы этот вопрос больше никогда не возникал. Кстати, анонимные ссылки запрещены.
CAPTCHA на основе изображений
Enter the characters shown in the image.
Linux I класса
Linux II класса
Linux III класса
Счетчики
  • Самый популярный сайт о Linux и Windows 10
О Либератуме

Liberatum — это новости мира дистрибутивов Linux, обзоры, сборки, блоги, а также лучший сайт об Ubuntu*.