基于Ubuntu搭建ownCloud(私人云盘)

ownCloud是一个开源的web套件,它通过网络提供云存储。数据可以通过浏览器上传/下载,也可以通过软件
客户端免费下载。ownCloud基于PHP,可以在所有满足需求的平台上运行。它提供了商业套件中几乎所有的
功能; ownCloud在AGPLv3许可下发布,所以我们通过它来搭建自己的云存储服务器,而不需要任何额外的成
本。ownCloud基于PHP和数据库的组合。数据库可以是SQLite、MySQL、Oracle或PostgreSQL。
搭建环境
系统: Ubuntu 16.04.5 LTS (GNU/Linux 4.4.0-141-generic x86_64)
数据库: MariaDB
PHP: PHP 7.0
web服务: Apache2
ownCloud: ownCloud 10.0.10 (stable)
准备工作
1,安装必要的PHP扩展
sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get -y install libapache2-mod-php php-gd php-json php-mysql php-curl php-intl php-mcrypt php-imagick php-zip php-xml php-mbstring
2,安装 wget,mariadb-server,apache2
sudo apt-get -y install wget mariadb-server apache2
3,配置安装源
sudo wget -nv https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/ /' > /etc/apt/sources.list.d/owncloud.list"
开始安装
1,以上准备工作完成以后,执行以下命令安装ownCloud
sudo apt-get update
sudo apt-get install owncloud-files
2,创建数据库,这里我们创建一个名为"ownclouddb"的数据库,并创建用户"ownclouduser"
sudo mysql -u root -p
create database ownclouddb;
grant all on ownclouddb.* to 'ownclouduser'@'localhost' identified by 'password';
FLUSH PRIVILEGES;
exit
3,配置Apache
3.1 为ownCloud创建一个虚拟主机文件
sudo vi /etc/apache2/sites-available/owncloud.conf
3.2 编辑肉容如下:
Alias /owncloud "/var/www/owncloud/"
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dev.c>
Dav off
</IfModule>

SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud
</Directory>
3.3 激活VHost及相关模块
sudo a2ensite owncloud
sudo a2enmod rewrite
sudo a2enmod headers
3.4 重启Apache服务
sudo systemctl restart apache2
配置ownCloud
1,通过以上操作,ownCloud已经安装完成,通过浏览器打开服务器IP地址对ownCloud进行配置。
2,创建管理员账号。
3,配置数据目录。 默认路径为/var/www/owncloud/data。
4,配置数据库。填入前面我们创建的数据库名称及用户名密码。
5,以上信息填写完毕以后,点击"安装完成"。
6,到这里ownCloud就安装完成了。输入账号密码即可登录
7,ownCloud支持多种客户端,包括Windows,Android及iOS客户端,可以按需下载使用。
开启HTTPS访问
前面我们已经安装好了ownCloud并已经可以使用,但是如果你的网盘是安装在云平台,比如阿里云,那么你
在访问时最好开启HTTPS访问,好处自然是因为安全性,因此我们需要在ownCloud中启用SSL支持。这里我
们为SSL使用一个自签名的证书来进行安全访问,在正式的使用环境中建议申请可信SSL证书。
1,创建一个储存服务器密钥和证书的目录:
sudo mkdir /etc/apache2/ssl
2,创建一个证书(并有一个密钥来保护它),它有一年的有效期。
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
3,编辑/etc/apache2/sites-enabled/owncloud.conf 启用HTTPS。
sudo vi /etc/apache2/sites-enabled/owncloud.conf
4,编辑配置文件如下
<VirtualHost *:80>
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>

Optionally load the headers module:
LoadModule headers_module modules/mod_headers.so

<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
DocumentRoot /var/www/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>
</VirtualHost>
5,编辑完成后,重启Apache
sudo systemctl restart apache2.service
6,在浏览器以https的方式访问ownCloud,注意由于是自签证书,浏览器还是会提示不安全,这是因为现在
浏览器都不对自签证书进行支持,也就是说证书的颁发机构不是浏览器支持的。可以放心地忽略此消息。唯一
支持的自签证书是从Let' Encrypt申请的自签证书,但前提是要拥有可用的域名并且已经可以正确解析,使
用IP地址是无法申请的。
安全设置警告
1,HTTP 严格传输安全(Strict-Transport-Security)报头未配置到至少“15552000”秒。处于增强安全
性考虑,我们推荐按照安全提示启用 HSTS。
解决方法:
编辑owncloud.conf,并在VirtualHost 443中添加如下字段:
# Optionally load the headers module:
LoadModule headers_module modules/mod_headers.so

Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
2,事务文件锁定应配置为使用基于内存的锁定,而不是默认的基于慢速数据库的锁定。
解决方法:
2.1 安装Redis以及相应的php扩展
apt-get install redis-server php-redis
2.2 确认Redis已经在运行
ps ax |grep redis
2.3 启用相应的php模块,编辑php.ini
sudo vi /etc/php/7.0/apache2/php.ini
添加以下内容:
Redis php extensionextension=redis.soEOF
2.4 编辑完成后,重启Apache
sudo systemctl restart apache2.service
2.5 在ownCloud的config/config.php文件中添加以下内容来为ownCloud启用Redis:
'memcache.local' => '\OC\Memcache\Redis', 'redis' => [ 'host' => 'localhost', 'port' => 6379, ],
'memcache.locking' => '\OC\Memcache\Redis',
2.6 添加完成后,重启一下系统,查看安全及设置警告,所有问题解决后,提示所有检查己通过。
配置电子邮件服务器
这里需要注意的是凭证要填写完整的邮箱地址,凭据为邮件服务商提供的授权码,不是邮箱的密码。

发表评论