最近国内网盘业界出现了不少大新闻,不少网盘开始停止服务,私有云也就变得越来越有需求。
因此,基于PHP5编写的ownCloud就成为一个不错的选择。我们只需要安装一个标准的lnmp/lamp环境就可以运行这项服务。此外ownCloud除了支持本地存储,还支持FTP servers, S3 or SWIFT object stores, Google Drive, Dropbox, other ownCloud servers, WebDAV servers等外部存储,因此可以很方便的扩展自己的存储空间并且可以与一些国外网盘连接起来使用。
Bananapi M2作为一个性能不错的Arm开发板,可以轻松的实现这些功能(当然不得不吐槽这次用的Kingston microSD卡实在不好用)
Contents
Prepare:
硬件平台:BPI-M2
系统镜像:ubuntu-mate-15.10-lamp-xrdp-bpi-m2-sd-emmc-20151204.img
Step1:
安装ownCloud运行环境
此处运行环境选择LAMP,LNMP可以参照官方文档进行配置。
此处环境仅针对ownCloud core,如果需要安装附加组件,可以参照文档。
*注:以下操作均在root权限下运行。
apt-get install apache2 mariadb-server-10.0 libapache2-mod-php5 apt-get install php5-gd php5-json php5-mysql php5-curl apt-get install php5-intl php5-mcrypt php5-imagick
tips:
当我们安装mariadb/mysql的时候可能会要求新建数据库root密码,此时请牢记密码。
当我们输入service mysql start的时候可能出现Failed to start mysql.service: Unit mysql.service is masked
原因可能是之前使用apt-get 安装过mysql,服务被标记过,解除后即可启动:
systemctl unmask mysql.service
Step2:
下载安装ownCloud
此处我下载的是最新的9.0.1,其他版本可以自行下载。
wget https://download.owncloud.org/community/owncloud-9.0.1.tar.bz2 tar -xjf owncloud-9.0.1.tar.bz2
将解压出来的文件放到http服务文件夹下。
cp -r owncloud /var/www
Step3:
修改配置及权限
对于Apache环境的配置如下:
新建一个文件/etc/apache2/sites-available/owncloud.conf,内容如下(文件目录更换为自己的路径):
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>
创建一个symlink:
ln -s /etc/apache2/sites-available/owncloud.conf /etc/apache2/sites-enabled/owncloud.conf
附加的配置项:
想要正确的运行ownCloud,我们需要一个rewrite规则
a2enmod rewrite
附加的推荐模块:mod_headers, mod_env, mod_dir mod_mime
a2enmod headers a2enmod env a2enmod dir a2enmod mime
然后我们重启服务。
service apache2 restart
Step4:
存储目录权限修改
在安装过程中。我们打开浏览器输入127.0.0.1/owncloud打开ownCloud初始化页面。此时页面会提示一些权限问题。我们可以通过运行以下脚本来解决:
#!/bin/bash ocpath='/var/www/owncloud' htuser='www-data' htgroup='www-data' rootuser='root' printf "Creating possible missing Directoriesn" mkdir -p $ocpath/data mkdir -p $ocpath/assets mkdir -p $ocpath/updater printf "chmod Files and Directoriesn" find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640 find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750 printf "chown Directoriesn" chown -R ${rootuser}:${htgroup} ${ocpath}/ chown -R ${htuser}:${htgroup} ${ocpath}/apps/ chown -R ${htuser}:${htgroup} ${ocpath}/assets/ chown -R ${htuser}:${htgroup} ${ocpath}/config/ chown -R ${htuser}:${htgroup} ${ocpath}/data/ chown -R ${htuser}:${htgroup} ${ocpath}/themes/ chown -R ${htuser}:${htgroup} ${ocpath}/updater/ chmod +x ${ocpath}/occ printf "chmod/chown .htaccessn" 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
Step5:
配置数据库。
在这里我们必须手动配置mysql数据库,为owncloud建立一个独立的数据库。
下面以数据库名:ownclouddb,用户名:ownclouduser,密码:123456为例建立新的数据库。
# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or g. Your MariaDB connection id is 66 Server version: 5.5.34-MariaDB MariaDB Server Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. MariaDB [(none)]> CREATE DATABASE ownclouddb; Query OK, 1 row affected (0.04 sec) MariaDB [(none)]> GRANT ALL ON ownclouddb.* TO ownclouduser@localhost IDENTIFIED BY '123456'; Query OK, 0 rows affected (0.01 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.01 sec) MariaDB [(none)]> exit Bye
在ownCloud初始化页面中按照以上内容填写即可。
Tips:
*修改ownCloud上传大小限制。
1.修改ownCloud目录中的文件:.htaccess
<IfModule mod_fcgid.c> <IfModule mod_setenvif.c> <IfModule mod_headers.c> SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1 RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION </IfModule> </IfModule> </IfModule> <IfModule mod_php5.c> php_value upload_max_filesize 10240M php_value post_max_size 10240M php_value memory_limit 10240M php_value mbstring.func_overload 0 <IfModule env_module> SetEnv htaccessWorking true </IfModule> </IfModule> <IfModule mod_rewrite.c> RewriteEngine on RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteRule ^.well-known/host-meta /public.php?service=host-meta [QSA,L] RewriteRule ^.well-known/host-meta.json /public.php?service=host-meta-json [QSA,L] RewriteRule ^.well-known/carddav /remote.php/carddav/ [R] RewriteRule ^.well-known/caldav /remote.php/caldav/ [R] RewriteRule ^apps/calendar/caldav.php remote.php/caldav/ [QSA,L] RewriteRule ^apps/contacts/carddav.php remote.php/carddav/ [QSA,L] RewriteRule ^remote/(.*) remote.php [QSA,L] </IfModule> <IfModule mod_mime.c> AddType image/svg+xml svg svgz AddEncoding gzip svgz </IfModule> <IfModule dir_module> DirectoryIndex index.php index.html </IfModule> AddDefaultCharset utf-8 Options -Indexes <IfModule pagespeed_module> ModPagespeed Off </IfModule> ErrorDocument 403 /owncloud/core/templates/403.php ErrorDocument 404 /owncloud/core/templates/404.php
2.修改PHP配置
找到php.ini文件将upload_max_filesize,post_max_size修改为适合的大小并重启Apache服务。
service apache2 restart
*修改Apache的默认页面
Apache2默认页面是一个介绍页面,我们想要直接访问owncloud的话需要修改Apache的默认页面设定。
sudo nano /etc/apache2/sites-enabled/000-default
在文档中找到DocumentRoot字段,修改为owncloud所在目录,然后保存。
ServerAdmin webmaster@localhost DocumentRoot /var/www/owncloud
重启Apache服务即可。