Keywords: Ubuntu; ownCloud; mysql; apache2; DDNS; noip2

ownCloud介绍:

请只是想装 ownCloud 的同志们跳过介绍。

ownCloud是一个自由且开源的个人云存储解决方案,包括两个部分:服务器和客户端。为什么在拥有出色的 Dropbox, Google Drive 的时代仍然需要一个“自己的云”呢?

其实我有很强的感觉,天朝子民对于自己的数据安全性仍不是很关心。再看我身边龟毛的德国人(科研领域),很多连个Google帐号都没有,更别提 Drive 的使用了;在看我身边龟毛的德国人(生活领域),很多人仍然在使用 Nokia 手机。为什么呢?

那我们问自己一个问题,什么是“云”?我很不喜欢商业的东西,包括企业家这个东西,他们喜欢把一头猪包装后楞说成牛。其实根本没有什么云的存在,真实存在的只有一台台24/7的服务器。那么问题来了,你存在所谓“云”上的数据到底在哪里?其实就是在别人的服务器里。那么你要怎么保证你数据的安全性呢?你怎么确定服务器的管理员不会creepy呢?

所以最近,德国的一些大学和研究所开始建立自己的“云”了,Scibo。其实它就是基于 ownCloud 的。

既然如此,那我还是在自己家里建个 ownCloud 服务器吧。在我家,我把装有 ubuntu的 Nexus 7 作为 home server。所以 ownCloud 是架设在 Nexus 7 里的。

前期准备:

  • 安装 ownCloud
  • 安装mysql server
 sudo apt-get apache2 libapache2-mod-php5

sudo apt-get install php5-gd php5-json php5-mysql php5-curl

sudo apt-get install php5-intl php5-mcrypt php5-imagick

sudo apt-get install -y mysql-server 

这其中 mysql 会要求你输入 mysql root password。下一步安装 ownCloud。


wget -q0 - https://download.owncloud.org/download/repositories/stable/xUbuntu_14.04/Release.key | sudo apt-key add -

echo 'deb http://download.owncloud.org/download/repositories/stable/xUbuntu_14.04/ /' | sudo tee /etc/apt/sources.list.d/owncloud.list 
 sudo apt-get update && sudo apt-get install owncloud 

配置 mysql:

 mysql -u root -p 

其中,要输入的 password 就是在安装 mysql 时您输入的 password。然后 follow 一下步骤,

 CREATE USER 'owncloud'@'localhost' IDENTIFIED BY 'yourpassword';

CREATE DATABASE ownclouddb;

GRANT ALL ON ownclouddb.* TO 'owncloud'@'localhost';

FLUSH PRIVILEGES;

exit 

请记录一下这里引号中输入的内容,因为最后需要这些内容完成配置。最后启动 apache2,

 sudo service apache2 restart 

配置 ownCloud:

打开浏览器,输入你的 localhost 的局域网IP(private IP), 比如,http://192.168.178.20/owncloud, 或者 http://192.168.178.20  至于这么知道你的IP,可以通过

 ifconfig 

来查看。然后会出现一下图片类似的界面(ownCloud 版本不同,界面也会不同)

ownCloud

然后给管理员设置用户名和密码。在 storage & database 选项中,选择 MySQL/MariaDB 选项,然后输入一下内容,在我的 case 中,Database user = owncloud, Database password = yourpassword, Database name = ownclouddb。

然后 ownCloud 云的架设就完成了。

Public IP / dynamic DNS:

到现在为止仍然存在一个问题,我们只能用 private IP 进行 navigate。所以在局域网外,我们无法连接到 ownCloud,因为我们没有一个 public IP 。如果不知道怎么确认自己的 dynamic IP,可以在浏览器中输入 whatismyip 来进行查看。

我们个人也没有能力去电信购买一个固定IP,所以我这里介绍另外一个解决策略  DDNS。这里我用 noip 举例,首先在 http://www.no-ip.com 网站上申请一个帐号,申请一个域名(比如我申请了kingdomhql.ddns.net 作为我 dynamic IP 的映射)。然后在服务器上安装客户端,

 cd /usr/local/src/

wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz

tar -xvf noip-duc-linux.tar.gz

cd noip-*

make install 

这个客户端的功能就是一旦检测到 dynamic IP 变化了,就马上映射给你申请的域名。这样我们可以一直通过连接申请的域名而不用管不断变化的 private IP 了。此外,最好设置在服务器启动的时候加载 noip 程序,这个开机启动可以通过一下 bash 脚本实现

 sudo vim /etc/init.d/noip 

然后输入一下内容:

#######################################################
#! /bin/sh
case "$1" in
    start)
        echo "Starting noip2"
        /usr/local/bin/noip2
    ;;
    stop)
        echo -n "Shutting down noip2"
        for i in `noip2 -S 2>&1 | grep Process | awk '{print $2}' | tr -d ','`
        do
          noip2 -K $i
        done
    ;;
    *)
        echo "Usage: $0 {start|stop}"
        exit 1
esac
exit 0
#######################################################
 sudo /etc/init.d/noip start 

配置路由器:

这是最后一步了,辛苦您能一直看到这里。离成功不远了,不要太激动。登陆路由器,具体路由器具体不同,一般在路由器后面有提示怎么登陆。

为什么要设置路由器呢?因为你的 local IP (例如192.168.178.10之类)是由路由器自动分配给你的,而你的路由器也有个 dynamic IP(例如 88.13.21.9) 是由网络提供商动态分配给你的。我们这里要做的就是架设一个通道(比如#80),来告诉路由器在一种特定情况下,我从外部网络链接到88.13.21.9时,激活通道#80从而到达192.168.178.10这个机器。

请原谅,因为每个路由器不同,无法具体给出图片。当你完成了端口映射后,你就可以在任何地方直接输入您申请的域名来登陆 ownCloud 了。还不快试试

 kingdomhql.ddns.net/owncloud 

ownCloud 修改 data directory :

有时候会发现服务器上面的硬盘容量根本每到可以开 云 的级别,需要外加硬盘。比如在我的例子中,我用一个2TB的 NAS (network attached storage)。

  • 首先停止 apache 进程
 sudo service apache2 stop 
  • 备份 ownCloud data 数据
 sudo tar -cvf data.tar.gz /var/www/owncloud/data/ 
  • 拷贝数据到新的硬盘目录
 mv data.tar.gz /path/to/directory/owncloud/

sudo tar -cvf data.tar.gz /path/to/directory/owncloud/ 
  • 修改 owncloud 下的默认路径
 sudo vim /var/www/owncloud/config/config.php 

将路径地址 从 ‘/var/www/owncloud/data’ 改为 ‘/path/to/directory/owncloud/data’

结语:

感谢开源世界!

同时你也可以建立好多的账户,让很多人同时使用这个 ownCloud 服务器。

Advertisements

One thought on “在 Ubuntu 系统中 建立自己的 ownCloud server

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s