您的位置:首页 > 数据库 > MariaDB

使用 Caddy 和 owncloud 搭建自己的私有云服务 (php7 MariaDB ubuntu)

2016-08-17 17:26 671 查看

Serving ownCloud with Caddy

在这篇文章中,我会带着你用 Caddy 搭建一个安全的 ownCloud 个人云服务,此教程中所使用的平台为 Ubuntu 14 。

更新:Caddy 当前的正式版还没有支持 WebDav ,所以桌面和手机客户端就没法用了 (*゚ー゚) 不过好消息是开发分支是有这个特性的,所以你想爽一把就只能等下个版本或者自己编译了。

ownCloud

给小白们的 ownCloud 介绍:

ownCloud是一个自由且开源的个人云存储解决方案,包括兩個部分:服务器和客戶端。ownCloud 最早由KDE开发者Frank Karlitschek于2010年一月创建,目标是成为商业云服务提供商的替代。与商业云存储服务不同,ownCloud可以自由获取无需付费,但相應地,使用者必須自行架設 ownCloud的服务器,這需要一點技術。不過也是有商业云存储服务提供商使用 ownCloud 作為服务器,例如奧地利商的 OwnCube。

ownCloud在客户端可通过网页界面,或者安装专用的客户端软件来使用。网页界面当然就是任何能开网页的平台都支持,而客户端软件也支持相当多平台,Windows、Linux、iOS、Android皆有。

除了云存储之外,ownCloud也可用于同步日历、电子邮件联系人、网页浏览器的书签;此外还有多人在线文件同步协作的功能(类似google documents或Duddle等等)。

安装 MariaDB

因为 ownCloud 需要使用到数据库,所以我们先安装一下 MariaDB 。使用以下命令来安装 MariaDB 服务端以及客户端:

$ sudo apt-get install mariadb-server


完成安装后,如果想要提升安装的安全性的话,可以运行以下命令:

$ sudo /usr/bin/mysql_secure_installation


创建 ownCloud 用户及数据库

现在运行以下命令并输入密码,就可以使用 root 账号登陆 MySQL 命令行客户端了:

$ mysql -u root -p


然后给 ownCloud 创建一个新数据库:

MariaDB [(none)]> create database owncloud;


新增一名用户:

MariaDB [(none)]> grant usage on *.* to owncloud@localhost identified by 'somepassword';


给新用户赋予方才建立的数据库的权限:

MariaDB [(none)]> grant all privileges on owncloud.* to owncloud@localhost;


现在你就有了一个用户名为 owncloud 密码为 somepassword ,拥有 owncloud 数据库访问权限的的新用户了。

安装 PHP-FPM

PHP 7 都已经发布了好几个月了,所以我们当然要用新版啦!

首先添加 PHP 7 的 repository :

$ sudo add-apt-repository ppa:ondrej/php $ sudo apt-get update


然后安装 PHP:

$ sudo apt-get install php7.0-fpm


只是安装 PHP 还不够,还需要安装一些 PHP 扩展。

ownCloud 所需要的详细扩展列表可以在这里找到。

一些 PHP 默认没安装,但是必须推荐你装的包:

PHP mysql driver

PHP gd

PHP curl

PHP intl

PHP mcrypt

PHP imagick

一次性安装命令:

$ sudo apt-get install php7.0-mysql php7.0-gd php7.0-curl php7.0-intl php7.0-mcrypt


如果你需要预览视频跟文档的话,那还得安装这两个包(非 PHP):

ffmpeg 或者 avconv

LibreOffice

为了更好的兼容 Caddy ,最好把 PHP-FPM 监听从 Unix socket 改成 TCP socket:

/etc/php/7.0/fpm/pool.d/www.conf
文件中,把
listen = /run/php/php7.0-fpm.socket
改为
listen = 127.0.0.1:9000


安装完所有扩展后,别忘了重启 PHP-FPM:

sudo service php7.0-fpm restart


Caddyfile

我跟 mholt 和 dprandzioch 一起完成了下面这个 Caddyfile。 这个配置包含了 ownCloud 所需的所有配置且完全支持桌面与手机客户端。

my-owncloud-site.com {

root owncloud
log owncloud/access.log
errors owncloud/access.log

fastcgi / 127.0.0.1:9000 php {
env PATH /bin
}

rewrite {
r ^/index.php/.*$
to /index.php?{query}
}

# client support (e.g. os x calendar / contacts)
redir /.well-known/carddav /remote.php/carddav 301
redir /.well-known/caldav /remote.php/caldav 301

# remove trailing / as it causes errors with php-fpm
rewrite {
r ^/remote.php/(webdav|caldav|carddav)(\/?)$
to /remote.php/{1}
}

rewrite {
r ^/remote.php/(webdav|caldav|carddav)/(.+)(\/?)$
to /remote.php/{1}/{2}
}

# .htacces / data / config / ... shouldn't be accessible from outside
rewrite {
r  ^/(?:\.htaccess|data|config|db_structure\.xml|README)
status 403
}

header / Strict-Transport-Security "15768000"

}


因为 Caddy 内置了 Let’s Encrypt 支持,所以我们的 ownCloud 服务端会自动配置好 HTTPS。访问和错误的 log 会写入到 ownCloud 目录里面,data 目录(以及其他一些特殊文件)也杜绝了被外部访问的可能。

如果你想测试一下 Caddyfile / PHP 的安装,可以在 owncloud 目录下创建一个 phpinfo.php 文件,在上面加上一行:

<?php phpinfo(); ?>


然后用浏览器访问 https://my-owncloud-site.com/phpinfo.php,看看是不是显示默认的 PHP 信息页面。(当然啦, Caddy 得使用 Caddyfile 配置)

如果一切正常的话,别忘记把这个文件删掉,以免被别人看到你的 PHP 安装配置。

安装并配置 ownCloud

现在终于要开始 ownCloud 的安装了。

下载最新的 ownCloud 版本(目前是 9.0.0):

https://download.owncloud.org/community/owncloud-9.0.0.zip

$ wget https://download.owncloud.org/community/owncloud-9.0.0.zip[/code] 
把这个文件解压到 owncloud 目录:

$ unzip owncloud-9.0.0.zip


使用浏览器访问 https://my-owncloud-site.com。如果配置没错的话,你就会在浏览器成功的看到 ownCloud 的配置页面啦。

另外,你还得创建一个 data 目录,并赋予 ownCloud 读写权限(比如 www-data用户)。

$ mkdir owncloud/data


$ sudo chown -R www-data owncloud


结论

Caddy 的快速开发使得它成为了简单安全地部署 ownCloud 的另一个选择。

这篇文章还发布在了Caddy的官方博客上:Running ownCloud with Caddy

其他资料:centos-owncloud

转自 https://jqs7.com/serving-owncloud-with-caddy/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息