运行你自己的云:在 Debian 8 上安装 OwnCloud 9
OwnCloud 让您能够运行您自己管理和控制的云存储服务。最新版本 ownCloud 9.0 已于 3 月 8 日发布。
安装ownCloud
让我们看看在运行 Debian Jessie 的系统上安装 ownCloud 9.0 的过程。
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 哈希、ownClouds 公共 PGP 签名和软件包的 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 来验证软件包的真伪。为此,首先将 ownClouds 公共 PGP 密钥导入您的 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 目录及其内容复制到您的 Web 文档根目录中。在 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.符号链接配置文件进入/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 用户/组有权更改 ownClouds 文件。在 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 组] 所有
- 这两个 .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使用。以数据库root用户登录MariaDB客户端:
mysql -u root -p
系统将提示您输入数据库根用户密码。如果您是在步骤 1 中首次安装 MariaDB,系统会提示您创建此密码。现在输入。您将被置于 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.在Apache2中启用SSL
a2enmod ssl
a2ensite default-ssl
2.在owncloud.conf中添加SSL Virtualhost配置
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
您现在应该能够使用 https:// URL 访问您的 ownCloud 安装。请注意,您将在 Web 浏览器中收到警告,因为您的证书是自签名的。在建立安全连接之前,您需要手动将站点添加为例外。