Грамотно устанавливаем 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
Убедимся, что все в порядке:
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, желательно использовать название домена:
Открываем скопированный файл для редактирования. Очень важно точно указать значения для трех переменных: 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!
На этом настройка 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 и присваиваем ему хитрый пароль. Создаем базу данных owncloud. Даем пользователю owncloud полные права на доступ к базе owncloud. На этом настройка MySQL заканчивается. Переходим непосредственно к установке.
Внимание: создавая базу данных, в пункте «сравнение» указывайте utf8_general_ci.
Настройка ownCloud
Запустите браузер и перейдите по адресу http://owncloud (в вашем случае адрес будет тот, который вы указывали в ServerName). В появившемся окне задайте имя администратора и пароль к этой учетной записи. Чуть ниже нажмите на ссылку «Система хранения данных», нажмите на кнопку MySQL и укажите информацию для доступа к созданной в MySQL базе данных — название базы, имя пользователя и пароль. Нажимайте кнопку «Завершить установку».
Опс! На экране предупреждение, что Apache работает без поддержки протокола WebDAV. Собственно, через этот протокол пользователь и работает со своими файлами на сервере. Раз ownCloud просит WebDAV, я считаю, что ему нужно это дать:
a2enmod dav
a2enmod dav_fs
service apache2 restart
Снова заходим на главную страницу owncloud и видим радостное приветствие. Любезный ownCloud готов начать нас обслуживать.
В заключении
Если к этой теме будет проявлен дальнейший интерес, то я расскажу о том, как настроить красивые адреса URL (http://owncloud/settings/admin вместо http://owncloud/index.php/settings/admin), как включить безопасный протокол HTTPS вместо HTTP и том, как расширить возможности ownCloud. Спасибо за внимание!
Гайд полезный. сам Недавно возился с ним.
Догадки на будущий пост:
1) Хмм... mod_rewrite включить?
2) Добавить еще один vhost, Только указав и не забыв добавить в /config/config.php в массив trusted_domains новую запись
1 => 'owncloud:443'
правда ssl серт зачастую самоподписаный (будет гуглом хромо считаться snake oil-ом)
3) в админке есть «Плагины». Не пробовал, но думаю не очень сложно, если все интерактивно.
сейчас с постфиксом мучаюсь, вот тут запары.
сборка iredmail не встала, приходится связывать довекот, постфикс и вебпанельку roundcube друг с другом
А его вообще всегда полезно включать. Сейчас трудно найти CMS, которая не предлагала бы clean URL. Но включения модуля недостаточно, надо еще .htaccess правильный запилить.
А это и не важно. Главное, что заработает шифрование. Но для увлеченных граждан есть контора, раздающая сертификаты класса 1 на халяву.
Тоже через это прошел. Небольшие проблемы были только с RoundCube, там конфиг какой-то немного придурочный. Кстати, не забудьте к Постфиксу прикрутить Постгрей, а то спамеры быстро все ящики закакают.
Я к этому и стремлюсь. ТАм одно из требований — наличие у домена почтового сервиса, без оного вроде как не дают ssl серт.
Помимо грейлистинга поставлю еще fail2ban и антивирус.
Надеюсь что все у Вас получилось с почтой ))
iredmail ставится ТОЛЬКО на свежеустановленную систему. Сам с ним игрался — на своем домене почту поднимал. Получилось поставить только на чистую систему, да и в мануалах об этом пишуть... Но зато ставится влет, и работает качественно ))
спасибо за труд и доступность написания
Хороший мануал, спасибо!
Не за что. Недавно переустанавливал ownCloud для личных нужд и вместо Apache использовал nginx, который статику отдает чуть шустрее. Кто-то интересовался настойкой nginx. В любом случае, если будут вопросы, задавайте!
Хотелось бы узнать поподробнее как подружить ownCloud и nginx вместе.
Планирую поднимать у себя в офисе компании собственное облако.
Не поможете?
На сайте ownCloud подробно расписали настройку под Nginx и даже выложили готовый конфиг. Воспользуйтесь этим руководством и если возникнут проблемы, то я помогу.
ownCloud — не облако вовсе, а Web-гуй на PHP для организации файлопомойки. Если нужно настоящее частное облако, то это OpenStack.
Приветствую!
Просьба ногами не пинать, только начинаю разбираться с никсами ))
Вопрос такой. Делаю все как у вас написано, дохожу до конфигурационного файла 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.
И копировал, и руками перебивал, ничего не помогает ((
Подскажите, куды копнуть?
Отвечу сам себе ))
в строке
Options FollowSymLinks -MultiViews
НЕ ДОЛЖНО стоять МИНУСА ( -MultiViews)
Если не сложно, автор, поправьте пожалуйста эту строчку ))
И все равно что-то не доделал (((
прописал вроде все что только возможно, пару раз систему откатывал до чистой, ставил с нуля, и все равно не могу зайти на страницу сайта.
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
Подскажите таки, куда копнуть?
Может с названиями серверов и хостов косяк? Если что надо выложить — скажите ))
Ггг )) Так сам с собой и буду тут говорить ))
В итоге.
Если Вы разворачиваете сию конструкцию на поиграть в локальной сетке, и не хотите давать всякие доменные имена машине, то необходимо, чтобы можно было с рабочего компа подключиться к веб-морде этого стенда, в конфигурационном файле писать следующее:
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
Ну по крайней мере у меня так заработало )))
А что вы хотите, чтобы вам на эту глупость ответили? Убрать "Options -MultiViews" — поставить свой комп раком перед хакерами. Читайте мануал к Апачу, зубрите его, постигайте азы. За вас это никто не сделает.
Ах да, и в Linux без знания английского делать нечего. Вам же написали: Either all Options must start with + or -, or no Option may. Всего-то нужно было перед FollowSymLinks плюс поставить.
Такие дела:
"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, проставив перед ним знак "-".
После этого сервер перезагрузился.
Но, как же сделать правильно?
Доброе время суток!
Ребята нужна Ваша помощь. Впервые использую owncloud, немогу побороть небольшой косяк, когда на виндовых тачках прикручую диск по Webdav все норм цыпляет, но когда открываю файлы(word,exel) он меня постоянно запрашивает пароль, можно как то обойти решение, и еще вопрос, не могу подцепить диск по https, только http цыпляеться, куда копать не подскажите?