Поиск по сайту:

Запустите собственное облако: установка 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 в текстовом редакторе. Внесите следующие изменения:

  1. Найдите строку ServerName и раскомментируйте ее, удалив начальный #
  2. Измените значение ServerName, чтобы оно соответствовало имени хоста, которое будет отображаться в URL-адресе, который вы используете для доступа к серверу: например, www.mypersonaldomain.com или мое имя хоста
  3. Добавьте следующие строки в конец файла, изменив имя каталога так, чтобы оно соответствовало местоположению, в которое вы поместили 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. При необходимости создайте новую пару сертификат/ключ.

Раздел  уже содержит три важные строки для включения SSL при доступе к сайту по HTTPS:

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://. Обратите внимание, что вы получите предупреждение в своем веб-браузере, потому что ваш сертификат является самоподписанным. Вам нужно будет вручную добавить свой сайт в исключение, прежде чем устанавливать безопасное соединение.