Запустите собственное облако: установка OwnCloud 9 на Debian 8
OwnCloud предлагает вам возможность запустить службу облачного хранилища, которую вы администрируете и контролируете самостоятельно. Последняя версия ownCloud 9.0 была выпущена 8 марта.
Установка ownCloud
Давайте посмотрим на процесс установки ownCloud 9.0 в системе с Debian Jessie.
1. Установите необходимые и рекомендуемые пакеты
Начните с установки пакетов вспомогательного программного обеспечения. OwnCloud использует PHP и рекомендует MariaDB в качестве своей базы данных. Как root, установите следующие пакеты с помощью apt-get:
apt-get install mariadb-server mariadb-client apache2 libapache2-mod-php5 php5-json php5-gd php5-mysql php5-curl php5-intl php5-mcrypt php5-imagick
2. Скачать
Затем загрузите пакет ownCloud 9.0. На этом этапе мы также загрузим хэш SHA256, общедоступную подпись PGP ownClouds и подпись PGP для пакета программного обеспечения. Хорошо используйте их в следующих шагах, чтобы проверить и аутентифицировать программное обеспечение перед его установкой. SHA256 — рекомендуемый алгоритм проверки, но если вы предпочитаете проверять с помощью MD5, этот хэш также доступен для загрузки на веб-сайте ownClouds.
Эти команды используют wget для загрузки файлов, но вы можете так же легко загрузить их, введя URL-адреса в свой веб-браузер.
wget https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
wget https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2.sha256
wget https://owncloud.org/owncloud.asc
wget https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2.asc
3. Проверьте целостность скачанного пакета
Убедитесь, что хэш SHA256 загруженного архива программного обеспечения совпадает с суммой, предоставленной ownCloud:
sha256sum -c owncloud-9.0.0.tar.bz2.sha256
Успешный вывод:
owncloud-9.0.0.tar.bz2: OK
Если суммы не совпадают, вы не должны продолжать! Перед выполнением оставшихся шагов убедитесь, что загрузка проверена.
4. Импортируйте открытый ключ ownCloud PGP в связку ключей GnuPG.
Затем используйте GnuPG для проверки подлинности программного пакета. Для этого сначала импортируйте общедоступный PGP-ключ ownClouds в свою связку ключей GnuPG.
gpg --import owncloud.asc
Успешный вывод:
[...]
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
5. Проверьте подлинность подписи пакета
Затем используйте GnuPG для проверки подписи программного пакета. Он проверит подпись в архиве, используя ключ, который вы импортировали на предыдущем шаге.
gpg --verify owncloud-9.0.0.tar.bz2.asc
Успешный вывод:
[...]
gpg: Хорошая подпись от \ownCloud <[email >\
[...]
Вы получите предупреждение о том, что подпись ownClouds еще не является доверенной. Доверие к подписи — это необязательный шаг, который вы должны выполнить самостоятельно. Для получения дополнительной информации о доверии к открытым ключам обратитесь к Справочнику по конфиденциальности GNU, глава 3.
6. Извлеките пакет программного обеспечения
После того, как загрузка будет проверена и аутентифицирована, извлеките ее.
tar xjvf owncloud-9.0.0.tar.bz2
7. Скопируйте каталог ownCloud в корень документа Apache2.
Затем скопируйте только что созданный каталог owncloud и его содержимое в корень веб-документа. В Debian 8 Apache2 использует /var/www/html в качестве корня документа по умолчанию; вы можете настроить это местоположение, если хотите. В этом руководстве мы поместим owncloud непосредственно в /var/www.
cp -r owncloud /var/www
8. Добавьте owncloud на доступные сайты Apache2
Теперь мы можем приступить к настройке Apache2. Создайте копию файла конфигурации сайта по умолчанию, /etc/apache2/sites-available/000-default.conf, назвав ее owncloud.conf.
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/owncloud.conf
9. Отредактируйте конфигурацию сайта ownCoud
От имени пользователя root откройте /etc/apache2/sites-available/owncloud.conf в текстовом редакторе. Внесите следующие изменения:
- Найдите строку ServerName и раскомментируйте ее, удалив начальный #
- Измените значение ServerName, чтобы оно соответствовало имени хоста, которое будет отображаться в URL-адресе, который вы используете для доступа к серверу: например, www.mypersonaldomain.com или мое имя хоста
- Добавьте следующие строки в конец файла, изменив имя каталога так, чтобы оно соответствовало местоположению, в которое вы поместили owncloud:
Alias /owncloud "/var/www/owncloud/"
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud
</Directory>
10. Файл конфигурации Symlink в /etc/apache2/sites-enabled
Создайте символическую ссылку на конфигурацию вашего сайта в каталоге /etc/apache2/sites-enabled:
ln -s /etc/apache2/sites-available/owncloud.conf /etc/apache2/sites-enabled/owncloud.conf
11. Включить модули Apache2
Для OwnCloud требуется mod_rewrite. Включите это:
a2enmod rewrite
Рекомендуется использовать модуль headers. Включите это:
a2enmod headers
Также рекомендуются модули env, dir и mime. Обычно они включены по умолчанию, но вы можете включить их вручную, чтобы быть в безопасности:
a2enmod env
a2enmod dir
a2enmod mime
12. Включите конфигурацию сайта ownCloud и перезапустите Apache2.
Включите конфигурацию вашего сайта:
a2ensite owncloud
Перезапустите службу Apache2, чтобы ваши изменения вступили в силу:
service apache2 restart
13. Установите разрешения для файлов ownCloud
Прежде чем приступить к настройке ownCloud, необходимо убедиться, что у пользователя/группы HTTP есть разрешение на внесение изменений в файлы ownCloud. В Debian этот пользователь и группа называются www-data. Сделайте их владельцами каталога owncloud и всего его содержимого.
chown -R www-data:www-data /var/www/owncloud/
Затем уточните эти разрешения. Точные разрешения для установки owncloud:
- Все файлы должны быть доступны для чтения и записи для владельца файла, только для чтения для владельца группы и недоступны для других.
- Все каталоги должны быть исполняемыми, доступными для чтения и записи для владельца каталога и доступными только для чтения для владельца группы.
- Каталог apps/ должен принадлежать [HTTP-пользователю]:[HTTP-группе]
- Каталог config/ должен принадлежать [HTTP-пользователю]:[HTTP-группе]
- Каталог themes/ должен принадлежать [HTTP-пользователю]:[HTTP-группе]
- Каталог assets/ должен принадлежать [HTTP-пользователю]:[HTTP-группе]
- Каталог data/ должен принадлежать [HTTP-пользователю]:[HTTP-группе]
- Файл [ocpath]/.htaccess должен принадлежать root:[HTTP group]
- Файл data/.htaccess должен принадлежать root:[HTTP group]
- Оба файла .htaccess должны быть доступны для чтения и записи для владельца файла, только для чтения для владельца группы и недоступны для других.
Чтобы соответствовать этой структуре разрешений, скопируйте и вставьте следующий скрипт в новый файл. В этом примере имя файла сценария будет /root/oc-perms.sh. Измените значение ocpath , если вы используете пользовательское местоположение.
#!/bin/bash
ocpath='/var/www/owncloud'
htuser='www-data'
htgroup='www-data'
rootuser='root'
printf "Creating possible missing Directories\n"
mkdir -p $ocpath/data
mkdir -p $ocpath/assets
printf "chmod Files and Directories\n"
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/assets/
chmod +x ${ocpath}/occ
printf "chmod/chown .htaccess\n"
if [ -f ${ocpath}/.htaccess ]
then
chmod 0644 ${ocpath}/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
fi
if [ -f ${ocpath}/data/.htaccess ]
then
chmod 0644 ${ocpath}/data/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
fi
Сделайте скрипт исполняемым:
chmod u+x /root/oc-perms.sh
Выполните это:
/root/oc-perms.sh
14. Создайте базу данных ownCloud и пользователя базы данных
Затем подготовьте базу данных для использования ownCloud. Войдите в клиент MariaDB как пользователь root базы данных:
mysql -u root -p
Вам будет предложено ввести пароль пользователя root базы данных. Если вы впервые установили MariaDB на шаге 1, вам было предложено создать этот пароль. Введите его сейчас. Вы окажетесь в командной строке клиента MariaDB.
Выберите имя для своей базы данных owncloud (ocdbname), пользователя базы данных owncloud (ocuser) и пароль для этого пользователя (ocuserpw). Затем выполните следующие две команды в командной строке MariaDB, заменив значения в квадратных скобках своими собственными:
CREATE DATABASE [ocdbname];
GRANT ALL ON [ocdbname].* TO [ocuser]@localhost IDENTIFIED BY '[ocuserpw]';
Выйдите из клиента базы данных:
quit
15. Настройте клиент ownCloud
Перейдите в веб-браузере к вашей установке ownCloud, например. http://myhostname/owncloud. Вам будут представлены поля, в которых вы можете создать учетную запись администратора ownCloud и ввести значения конфигурации базы данных.
Имя пользователя и Пароль — это значения для пользователя, который будет администрировать установку; установите их на все, что вам нравится.
Пользователь базы данных, пароль базы данных и имя базы данных должны соответствовать параметрам [ocuser], [ocuserpw ] и значения [ocdbname], которые вы создали на предыдущем шаге.
Нажмите Завершить настройку.
Поздравляем! Вы готовы начать использовать ownCloud.
Необязательно: использование SSL
Желательно шифровать сетевой трафик, который будет проходить в и из ownCloud. Вот несколько шагов, чтобы настроить и запустить HTTPS в вашей установке.
1. Включите SSL в Apache2
a2enmod ssl
a2ensite default-ssl
2. Добавьте конфигурацию SSL Virtualhost в owncloud.conf.
Apache2 поставляется с конфигурацией сайта SSL по умолчанию, расположенной в /etc/apache2/sites-available/default-ssl.conf. Скопируйте содержимое этого файла и вставьте его в начало owncloud.conf. В разделе
Добавьте строку ServerName с именем вашего хоста в качестве значения, например:
ServerName myhostname
Отредактируйте строку DocumentRoot, указав родительский каталог установки owncloud, например:
DocumentRoot /var/www/
3. При необходимости создайте новую пару сертификат/ключ.
Раздел
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
Значения SSLCertificateFile и SSLCertificateKeyFile указывают на файлы, которые уже должны существовать в вашей системе, установленные как часть по умолчанию openssl и ssl- пакеты сертификатов. Однако при определенных обстоятельствах вам может потребоваться повторно создать эти файлы — например, если вы вносите изменения в конфигурацию в /etc/hosts.
Если вам нужно восстановить эти файлы, используйте команду:
make-ssl-cert generate-default-snakeoil --force-overwrite
Для получения дополнительной информации и устранения ошибок сертификатов см. примечания в /usr/share/doc/apache2/README.Debian.gz.
4. Перезагрузите конфигурацию Apache2.
service apache2 reload
Теперь у вас должен быть доступ к установке ownCloud с помощью URL-адреса https://. Обратите внимание, что вы получите предупреждение в своем веб-браузере, потому что ваш сертификат является самоподписанным. Вам нужно будет вручную добавить свой сайт в исключение, прежде чем устанавливать безопасное соединение.