使用 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/
相关文章推荐
- Centos7下nginx+owncloud+php+mysql搭建个人私有云
- 用ubuntu+owncloud+nginx+php-fpm+mysql+aria2打造私有云+远程下载器
- 使用OwnCloud搭建属于自己私有的云存储网盘
- 搭建自己的 Docker 私有仓库服务
- OwnCloud另辟蹊径:提供开源私有云服务
- 使用 PHP 搭建自己的视频点播网站,第 1 部分:基础工作-(1)
- 使用PHP搭建自己的MVC框架
- 使用ArcGIS结合下载的谷歌卫星地图搭建自己的地图服务
- 使用PHP搭建自己的MVC框架
- 使用 PHP 搭建自己的视频点播网站,第 1 部分:基础工作
- Ubuntu 搭建 NFS服务提供给 SC2440或SC6410开发板使用【要点整理】
- 如何在Ubuntu上使用eclipse搭建PHP开发和调试环境
- MacPro 使用cnpmjs搭建私有npm服务
- 使用新浪云存储搭建Docker私有仓库服务
- 使用 PHP 搭建自己的视频点播网站
- 搭建自己的XenServer+CloudStack云平台,提供IaaS服务(一)环境搭建
- 搭建自己的XenServer+CloudStack云平台,提供IaaS服务(一)环境搭建
- 使用WNMP在windows下搭建Nginx+MariaDB+PHP
- Ubuntu 搭建 NFS服务提供给 SC2440或SC6410开发板使用【要点整理】