如何在树莓派上安装配置 OwnCloud 打造一个私有云?

在这个项目中,我们将制造一个树莓派 Owncloud 服务器,该服务器可以充当您自己的个人云存储。

随着对隐私的保护越来越困难,您可能正在考虑将文件移至私有云存储。如果是这种情况,那么本教程非常适合您。

重要的是要记住,由于您的数据将存储在本地网络中,因此如果从网络外部上载和下载文件,最终将占用更多带宽。

本教程将引导您完成安装和访问 Owncloud 所需的所有知识。

如果您好奇并想了解有关 Owncloud 软件的更多信息,请确保通过 Owncloud.org 查看其网站。

设备

我在个人云存储设置中使用了以下设备。

推荐的

  • 树莓派

  • SD 卡 (建议使用 8GB 以上) 或 * 微型 SD 卡正在使用树莓派 2 或 B +

  • 以太网线或 * Wifi 加密狗

  • 外部硬盘驱动器或 USB 驱动器

可选的

树莓派外壳

  • USB 键盘

  • USB 鼠标

注意: 树莓派上的 USB 端口很可能无法为外部硬盘驱动器供电,因此您可能需要投资于 * 供电的 USB 集线器。

视频

如果您是个有远见的人,并且想观看我们的视频,以了解如何将本教程放在一起,请查看下面的视频。

它将带您了解启动和运行树莓派 Owncloud 服务器所需的一切。

设置树莓派 Owncloud 服务器

首先,您需要安装带有 Raspbian 的树莓派。如果您尚未安装 Raspbian ,请查看关于如何通过 NOOBS 安装 Raspbian 的指南 (全新的即用型软件)。

您可以通过多种方式将 Owncloud 安装到树莓派上。在本教程中,我们将下载网络服务器 (Nginx) 和 Owncloud 。

安装 NGINX 和 PHP

我们要做的第一件事是将 NGINX 和 PHP 安装到我们的树莓派中。我们将需要这两个软件来运行 Owncloud 软件。

1 首先,在 Pi 的命令行或通过 SSH 中,我们将需要更新树莓派及其程序包,执行此操作通过输入:

sudo apt-get update
sudo apt-get upgrade

2 接下来,我们需要将”www-data” 用户添加到”www-data” 组。

sudo usermod -a -G www-data www-data

这些说明已更新为可与 Raspbian Buster 一起使用。如果您使用的是早期版本,则强烈建议您先升级到 Raspbian Buster,然后再继续。

您可以按照从 Raspbian Stretch 升级到 Buster 上的指南进行操作。

3 运行 Raspbian Buster 后,您可以安全地继续本教程。

在此步骤中,我们将安装运行 Owncloud 所需的所有软件包。这包括 php7 .3 及其 OwnCloud 依赖的众多模块。

运行以下命令以安装我们需要的一切。

sudo apt-get install nginx openssl ssl-cert php7.3-xml php7.3-dev php7.3-curl php7.3-gd php7.3-fpm php7.3-zip php7.3-intl php7.3-mbstring php7.3-cli php7.3-mysql php7.3-常见 php7 .3-cgi php7.3-apcu php7.3-redis redis-server php-pear curl libapr1 libtool libcurl4-openssl-dev

为 Owncloud 和 HTTPS 设置 NGINX

我们的下一步是现在设置和配置 NGINX 使其与 Owncloud 软件一起使用。我们还将设置 NGINX ,使其也可以支持 HTTPS 连接。
1 现在我们需要创建一个 SSL 证书,您可以通过运行以下命令来做到这一点:

sudo openssl req $ @ -new -x509 -days 730 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key

只需输入询问每个问题的相关数据。

2 除了 SSL 证书,我们还需要生成一个自定义 dhparam 文件。该文件有助于确保我们的 SSL 连接保持安全。默认情况下,这将使用不安全的默认值。

要生成一个 2048 字节长的 dhparam 文件,请在树莓派上运行以下命令。此过程将花费很长时间,最多需要 2 个小时。在命令中添加 dhparam 标志将有助于加快处理速度,但可以说安全性较低。
sudo openssl dhparam -out /etc/nginx/dh2048.pem 2048

3 现在,我们需要对刚刚生成的三个证书文件进行 chmod 。

sudo chmod 600 /etc/nginx/cert.pem
sudo chmod 600 /etc/nginx/cert.key
sudo chmod 600 /etc/nginx/dh2048.pem

4 让我们清除服务器配置文件,因为我们将在其中复制并粘贴自己的版本。

sudo sh -c"echo">/etc/nginx/sites-available/default"

5 现在,我们配置网络服务器配置,以使其能够正确运行 Owncloud 。

sudo vim /etc/nginx/sites-available/default

6 现在,只需将以下代码复制并粘贴到文件中即可。

上游 php 处理程序{
    服务器 Unix :/var/run/php/php7.3-fpm.sock;
}

服务器{
    听 80 ;
    服务器名称 _;

    #允许通过加密
    位置/。众所周知/acme-challenge/{
        根/var/www/owncloud;
    }

    #强制执行 https 
    位置/{
        返回 301  https://$ host $ request_uri;
    }
}

服务器{
    监听 443  SSL http2;
    服务器名称 _;

    ssl_certificate /etc/nginx/cert.pem;
    ssl_certificate_key /etc/nginx/cert.key;

    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers'ECDHE-RSA-AES128-GCM-SHA256:AES256 + EECDH:AES256 + EDH';
    ssl_dhparam /etc/nginx/dh2048.pem;
    ssl_prefer_server_ciphers;
    keepalive_timeout 70;
    ssl_stapling on;
    ssl_stapling_verify on;

    add_header Strict-Transport-Security始终为"最大年龄= 15552000; includeSubDomains;预加载";
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options"SAMEORIGIN";
    add_header X-XSS-Protection"1; mode = block";
    add_header X-Robots-Tag无;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies无;

    根/var/www/owncloud /;

    位置= /robots.txt {
        允许所有;
        log_not_found关闭;
        access_log关闭;
    }

    #仅 user _webfinger应用需要以下 2 条规则。
    #如果您打算使用此应用,请取消注释。
    #rewrite ^ /。 well -known/host-meta /public.php?service=host-meta last;
    #rewrite ^ /。 well -known/host-meta.json /public.php?service=host-meta-json最后;

    位置= /。众所周知/carddav {
        返回 301  $ scheme://$host/remote.php/dav;
    }
    位置= /。众所周知/caldav {
        返回 301  $ scheme://$host/remote.php/dav;
    }

    #设置最大上传大小
    client_max_body_size 512M;
    fastcgi_buffers 8 4K;
    fastcgi_ignore_headers X-Accel-Buffering;

    gzip关闭;

    error_page 403 /core/templates/403.php;
    error_page 404 /core/templates/404.php;

    位置/{
        重写^ /index.php$uri;
    }

    位置〜^ /(?: build | tests | config | lib | 3rdparty | templates | data)/{
        返回 404 ;
    }

    位置〜^ /(?:\。| autotest | occ | issue | indie | db_ | console){
        返回 404 ;
    }

    位置〜^ /(?: index | remote | public | cron | core/ajax/update | status | ocs/v [12] | updater /.+ | ocs-provider /.+ | core/templates/40 [34] )\。 php (?:$ | /){
        fastcgi_split_path_info ^(。+ \。 php )(/.*)$;
        包括 fastcgi _params;
        fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $ fastcgi_script_name;
        fastcgi_param PATH_INFO $ fastcgi_path_info;
        fastcgi_param HTTPS开启;
        fastcgi_param modHeadersAvailable true;
        fastcgi_param front_controller_active true;
        fastcgi_read_timeout 180;
        fastcgi_pass php-handler;
        fastcgi_intercept_errors;
        fastcgi_request_buffering关闭; #自 NGINX 1.7.11起可用
    }

    位置〜^ /(?: updater | ocs-provider)(?:$ | /){
        try_files $ uri $ uri/= 404;
        索引 index .php;
    }

    位置〜\。(?: css | js)$ {
        try_files $ uri /index.php$uri$is_args$args;
        add_header缓存控制"max-age = 15778463";
        add_header Strict-Transport-Security"max-age = 15552000; includeSubDomains";
        add_header X-Content-Type-Options nosniff;
        add_header X-Frame-Options"SAMEORIGIN";
        add_header X-XSS-Protection"1; mode = block";
        add_header X-Robots-Tag无;
        add_header X-Download-Options noopen;
        add_header X-Permitted-Cross-Domain-Policies无;
        access_log关闭;
    }

    位置〜\。(?: svg | gif | png | html | ttf | woff | ico | jpg | jpeg |地图)$ {
        add_header高速缓存控件"public,max-age = 7200";try_files $ uri /index.php$uri$is_args$args; access_log关闭;
    }
}

7 现在,按 CTRL + X,然后按 Y ,再按 ENTER ,保存并退出文件。

8 在我们更改了 NGINX 的配置后,我们需要通过运行以下命令来重新启动其服务。

sudo systemctl重启 nginx 

为 Owncloud 调整 PHP

现在设置了 NGINX ,我们现在就可以继续进行 PHP 并准备好与我们的 Owncloud 安装一起使用。当我们使用 php-fpm 时,我们还需要做一些其他事情。

1 现在,完成了一些配置,我们需要更新,首先通过输入打开 PHP 配置文件。

sudo vim /etc/php/7.3/fpm/php.ini

2 在此文件中,我们要查找并更新以下几行。 (CTRL + W 允许您搜索)

upload_max_filesize = 2M

用。。。来代替

upload_max_filesize = 2000M

post_max_size = 8M

用。。。来代替

post_max_size = 2000M

3 完成后,保存,然后按 CTRL + X,然后按 Y ,然后按 ENTER 退出。

4 下一步是对 php -fpm 池配置进行一些更改。原因是 php -fpm 无法访问环境变量。

运行以下命令以开始修改配置文件。

sudo vim /etc/php/7.3/fpm/pool.d/www.conf

5 在此文件中,找到以下代码块,并将其替换为下面的代码。

您可以使用 CTRL + W 更快地找到此代码块。通常,它位于文件底部附近。

; env [HOSTNAME] = $ HOSTNAME
; env [PATH] =/usr/local/bin:/usr/bin:/bin
; env [TMP] =/tmp
; env [TMPDIR] =/tmp
; env [TEMP] =/tmp

用。。。来代替

env [HOSTNAME] = $ HOSTNAME
env [PATH] =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
env [TMP] =/tmp
env [TMPDIR] =/tmp
env [TEMP] =/tmp

6 进行这些更改后,继续并按 CTRL + X,然后按 Y ,然后按 ENTER ,保存文件。

添加交换内存

下一步是向系统添加一些交换内存。

通过添加交换内存,树莓派可以通过利用存储设备上的空间来超出其内存范围。虽然比 RAM 慢很多,但比程序崩溃要好

1 为了增加交换内存的数量,我们需要修改一个名为 dphys-swapfile 的文件。

要修改此文件,请使用以下命令:

sudo vim /etc/dphys-swapfile

2 在此文件中,找到以下行并将其更改为下面的内容。

CONF_SWAPSIZE = 100

用。。。来代替

CONF_SWAPSIZE = 512

3 完成后,保存,然后按 CTRL + X,然后按 Y ,然后按 ENTER 退出。

4 为了使更改生效,我们现在需要通过运行以下命令来重新启动树莓派。

sudo reboot

为 Owncloud 设置 MySQL 数据库和用户

在开始本节之前,您必须已经在树莓派上设置了 MySQL 服务器。

1 为了能够创建数据库,我们将需要使用 MySQL 命令行界面。

我们可以通过运行以下命令来加载该工具。

sudo mysql -u root -p

2 登录后,您就可以开始与 MySQL 服务器进行交互了。

我们将要创建的数据库称为 ownclouddb。我们可以通过运行以下命令来创建此数据库。

创建数据库 ownclouddb ;

3 创建数据库后,让我们创建一个可以与其交互的用户。

我们可以通过运行以下命令来创建一个名为”ownclouduser” 的用户。确保用安全密码替换”[PASSWORD]”,并记下来以备后用。

创建用户'ownclouduser'@'localhost'由'[PASSWORD]'标识;

4 我们的下一步是将访问权限授予新用户。

我们可以通过运行以下命令来授予这些特权。

将所有特权授予 ownclouddb 。*至'ownclouduser'@'localhost';

5 最终的任务是清除特权。如果我们不这样做,那么服务器将不会利用我们的更改。

要刷新特权,我们需要做的就是运行以下命令。

冲洗特权;

刷新特权表后,我们可以继续安装和设置 Owncloud 软件。

下载和提取 Owncloud

现在,在本节中,我们将在树莓派上安装实际的 Owncloud 软件。安装 Owncloud 需要几个简单的步骤。

1 Pi 重新启动后,您将需要在树莓派上安装 Owncloud 。

让我们切换到运行脚本的目录。

cd/var/www /

2 现在我们在正确的目录中,我们现在可以下载最新版本的 Owncloud 。

为此,我们将通过运行以下命令来使用 wget

sudo wget https://download.owncloud.org/community/owncloud-latest.tar.bz2**3** 现在,使用 tar 解压缩我们下载的档案。
sudo tar -xvf owncloud-latest.tar.bz2

4 提取所有内容后,我们需要确保 www-data 拥有文件。

我们可以使用 chown 命令递归修改权限 。

sudo chown -R www-data:www-data/var/www

5 现在,我们需要打开.user.ini 文件,以实施我们在本教程前面所做的一些更改。

sudo vim /var/www/owncloud/.user.ini

6 在这里更新以下值,因此它们是 2000M :

upload_max_filesize = 2000M
post_max_size = 2000M
memory_limit = 2000M

7 现在,我们应该能够通过您的 PI 的 IP 地址连接到 Owncloud 。

在设置管理员帐户之前,您可能需要安装外部驱动器,因此您的树莓派 Owncloud 服务器具有大量磁盘空间。只需按照下一节中的说明进行操作即可。

安装和设置驱动器

设置外部驱动器虽然相对简单,但有时无法正常运行。

这些说明用于安装并允许 Owncloud 将文件存储到外部硬盘驱动器上。

1 首先,如果您有 NTFS 驱动器,则需要输入以下内容来安装 NTFS 软件包:

sudo apt-get install ntfs-3g

2 现在,我们建立一个可以挂载的目录。

sudo mkdir /media/ownclouddrive

3 现在,我们需要获取_GID UID,_和_UUID_,因为我们需要尽快使用它们。为_GID_输入以下命令:

id -g www-data

4 现在为_UID_输入以下命令:

id -u www-data

5 同样,如果我们得到硬盘驱动器的_UUID_,即使您将其插入其他 USB 端口,Pi 也会记住该驱动器。

ls -l/dev/disk/by-uuid

复制最后一个条目的浅蓝色字母和数字 (末尾应带有 -> ../../sda1 之类的内容)。

6 现在,将驱动器添加到 fstab 文件中,以便它将以正确的权限启动。

sudo vim /etc/fstab

7 现在,将以下行添加到文件底部,使用上面得到的值更新_UID GUID_和 UUID 。 (以下内容应全部放在一行上)

UUID = DC72-0315/media/ownclouddrive自动 nofail ,uid = 33,gid = 33,umask = 0027,dmask = 0027,noatime 0 0

8 重启树莓派,驱动器应自动安装。如果已安装它们,那么我们都很好。

注意:如果在启动时出现错误,指出 Pi 处于紧急模式,则可能意味着 fstab 条目存在问题。只需编辑 fstab 文件 (sudo nano/etc/fstab) 并删除添加的行或查找错误并进行修复即可。

设置 Owncloud

我将在这里简要介绍设置 Owncloud 树莓派的基础知识。如果您需要更多信息,我强烈建议您在其网站上查阅手册。您可以在 Owncloud 手册站点此处中找到它们。

1 在您喜欢的网络浏览器中,您需要转到树莓派的 IP 地址。

如果您不知道 Pi 的本地 IP ,则可以运行以下命令。

主机名-I

2 转到 IP 后,您想获取证书错误,请将其添加到您的例外列表中,这样可以安全进行。

在 Chrome 上,点击” 显示高级” 按钮 (1 )。

然后单击” 进入 YOURPISIPADDRESS“(2 )。

3 首次打开 Owncloud 时,您需要执行一些初始设置步骤。

您需要做的第一件事是为您的 Owncloud 管理员帐户指定一个” 用户名” 和” 密码”。 (1 )

接下来,我们需要调出存储和数据库设置。您可以通过单击” 存储和数据库 “下拉列表 (2 ) 来完成此操作。

如果您使用其他数据文件夹,则可以使用” 数据文件夹” 文本框 (3 ) 进行指定。

然后,我们需要调出 MySQL 数据库选项。您可以通过单击 MySQL /MariaDB 切换 (4 ) 来找到它们。

接下来,我们需要填写三位信息,即数据库用户,该用户的密码和数据库名称。

1. 首先,您需要指定” 数据库用户 “(A )。如果您遵循本指南,则应为 ownclouduser
2. 第二个选项需要指定为上述用户设置的密码。 (B )
3. 最后,我们需要设置数据库名称。 (C ) 如果使用了本教程中的内容,则应将其设置为 ownclouddb

完成所有设置后,点击” 完成设置” 按钮 (4 )。

如果您需要更新,但发现内部更新程序不起作用,则可能意味着您需要手动进行更新。您可以在 Owncloud 的更新手册页上找到有关如何进行更新的详细过程。
接下来的两个部分将向您展示如何进一步改进 Owncloud 软件。

为 Owncloud 设置内存缓存

在本节中,我们将向您展示如何配置 Owncloud 以使用 APCu 和 Redis 。 APCu 用作对象内存缓存,而 Redis 则用于处理事务性文件锁定。

同时使用这两项将有助于改善树莓派上 Owncloud 的性能。

1 要启用这些功能,我们需要对 Owncloud 配置文件进行更改。

通过运行以下命令开始编辑此文件。

sudo vim /var/www/owncloud/config/config.php

2 在此文件中,找到以下行并在其下方添加文本块。

'已安装'=>是,

在下方添加

  'memcache.local'=>'\ OC \ Memcache \ APCu',
  'memcache.locking'=>'\ OC \ Memcache \ Redis',
  'redis'=> [
    '主机'=>'本地主机',
    '端口'=> 6379,
  ],

3 完成后,按 CTRL + X,然后按 Y ,再按 ENTER ,保存文件。

与 Owncloud 一起使用 System Cron

Owncloud 团队建议您进行设置,以便操作系统运行脚本 cron 作业而不是 Ajax 。

1 为了能够为 Owncloud 设置 cron 作业,我们需要使用 www-data 用户的 crontab 。

通过运行以下命令开始修改用户的 cron 。

sudo crontab -u www-data -e

如果询问您应该使用什么编辑器来修改 crontab ,我们强烈建议您使用 nano

2 在此文件的底部添加以下行。

* * * * */usr/bin/php/var/www/owncloud/occ系统:cron

这条线将每分钟运行 Owncloud 的 cron 作业。

3 完成后,按 CTRL + X,然后按 Y ,然后按 ENTER 保存文件。

现在,您应该已经在树莓派上正确设置了 Owncloud 。

端口转发和外部访问

如果您想访问本地网络之外的云驱动器,则需要设置端口转发并对我们的配置文件进行一些更改。

首先,我们需要返回默认文件并更改 server \ _name 值 (其中有 2 个)。将它们更新为您的外部 IP 地址。您可以通过什么是我的 IP 获取 IP 。

如果您有动态 IP ,则可能需要设置动态 DNS 并将其用作您的地址。您可以在我的端口转发指南中找到有关此信息。

输入以下内容以调出我们的默认服务器文件:

sudo vim /etc/nginx/sites-available/default

更新服务器文件中的 IP 后,您需要将外部 IP 添加到受信任的 IP 列表中,并确保 Owncloud 不会覆盖它。为此,请打开 Owncloud 配置文件并输入:

sudo vim /var/www/owncloud/config/config.php

在这里,将新项目添加到受信任域阵列 (这将是您的外部 IP 地址)。您的新条目应如下所示 (x 只是占位符)。

1 =>'xxx.xxx.xxx.xxx',

最后,将 overwrite .cli.url 行的 URL 更新为您的 IP 地址。它看起来应该像这样。

'overwrite.cli.url'=>'https://xxx.xxx.xxx.xxx',

以下是完成的 config .txt 文件的示例。

完成后,通过输入以下内容重新启动 Nginx 服务:

sudo service nginx 重启

请务必查看我的端口转发指南,并将以下端口 443 用于内部,我建议将随机端口用作外部端口。设置外部端口时,请确保尚未为特定程序保留该端口。

从外部连接到 Owncloud 服务器时,您需要确保使用 https ,否则将在浏览器中收到无效的请求。

设置端口转发非常容易,并且可以让您随时随地访问您的个人云。同样,完成此操作后,您仍然可以通过本地 IP 进行连接。

我希望本教程可以帮助您制作自己的树莓派 OwnCloud。如果您有任何麻烦,请留下反馈,或者如果我有任何遗漏,请在下面给我们留言。

分享到