在Bananapi M2上搭建ownCloud私有云

IT, 其他
没有评论

最近国内网盘业界出现了不少大新闻,不少网盘开始停止服务,私有云也就变得越来越有需求。

因此,基于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卡实在不好用)

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服务即可。

, , , ,
上一篇文章
心が叫びたがってるんだ。 OST
下一篇文章
到达德国

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Fill out this field
Fill out this field
请输入正确的电子邮件地址。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

菜单