搭建私人云盘

概述

一步一步从购买服务器开始,记录搭建私人云盘的过程。我是用的是Ubuntu 20.04.1 LTS 64bit与OwnCloud搭建的。

购买服务器

国内的服务器带宽都不高,阿里云的轻量应用可以有5M带宽,但是云盘只有40G不支持扩容。腾讯云不支持优惠续费,所以我直接购买了青云的单核2G2M的服务器,云盘50G可以扩容,买了一年,用来搭建我的云盘。

选用OwnCloud

OwnCloud是领先的开源文件共享和云协作平台,功能和DropBox类似。owncloud可以支持共享文件与跨设备访问等。

在Ubuntu上部署OwnCloud

如果是Ubuntu 18版本的直接参考https://www.linuxidc.com/Linux/2020-03/162651.htm,下面的内容主要是针对Ubutun 20版本

安装环境

  1. 更新系统软件包sudo apt update -y && sudo apt upgrade -y

  2. 因为OwnCloud是用PHP构建的,所以要安装MariaDB和PHP

    1
    2
    3
    4
    5
    6
    7
    8
    ### 安装MySql(mariadb)
    sudo apt install mariadb-server mariadb-client
    ### 安装php
    sudo apt install software-properties-common
    sudo add-apt-repository ppa:ondrej/php # 添加php源
    # 安装php模块,因为OwnCloud支持的php版本范围为7.2~7.5,Ubuntu18可以直接安装7.2版本,Ubuntu20就安装7.4即可
    sudo apt update
    sudo apt install php7.4 php7.4-fpm php7.4-curl php7.4-gd php7.4-zip php7.4-dom php7.4-intl php7.4-mbstring php7.4-xml libapache2-mod-php7.4 php7.4-pgsql php7.4-sqlite3 php7.4-mysql

    验证安装

    输入php -v,验证:

    输入sudo systemctl status mariadb,验证:

  3. 安装网络服务系统Apache:sudo apt install apache2,输入sudo dpkg -l apache2验证安装:

配置环境

  1. 开启Apache服务

    1
    2
    # 安装apache的时候默认是开启的
    sudo systemctl start apache2

    开启服务器的http80端口,即可访问http://serverip看到Apache的页面。

  2. 默认情况下MariaDB是不安全的,需要执行其他步骤来强化MariaDB服务器:

    1
    sudo mysql_secure_installation

    在提示输入root密码时按回车,在询问是否更改root密码时输入Y,之后设置根密码,设置根密码后一路回车。

  3. 建立OwnCloud数据库

    1
    sudo mysql -u root -p

    输入根密码,进入SQL命令行

    1
    2
    3
    4
    5
    CREATE DATABASE <数据库名>;
    CREATE USER '<用户名>'@'localhost' IDENTIFIED BY '<数据库密码>';
    GRANT ALL ON <数据库名称>.* TO '<数据库用户名>'@'localhost' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    EXIT;

  4. 下载&解压OwnCloud压缩包

    1
    2
    3
    4
    5
    # 我写博客时最新版本是10.6.0
    sudo wget https://download.owncloud.org/community/owncloud-10.6.0.zip
    sudo apt install upzip -y
    # 解压到/var/www/路径 可以根据自己需求更改,更改路径之后 配置文件中的/var/www都需要对应更改
    sudo unzip owncloud-10.6.0.zip -d /var/www/

  5. 为OwnCloud配置Apache服务

    1
    sudo vim /etc/apache2/conf-available/owncloud.conf # 编辑apache配置文件

    写入以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Alias / "/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>

    启用Apache的模块和配置:

    1
    2
    3
    4
    5
    6
    sudo a2enconf owncloud
    sudo a2enmod rewrite
    sudo a2enmod headers
    sudo a2enmod env
    sudo a2enmod dir
    sudo a2enmod mime

    最后再重启Apache服务

    1
    sudo systemctl restart apache2

在网站上完成安装

在前往网站安装之前,需要现在服务器里做好权限的管理:

1
2
3
4
5
cd /var/www/owncloud
sudo mkdir data
sudo mkdir apps-external
sudo chown -R www-data:www-data data
sudo chown -R www-data:www-data apps-external # 修改权限

完成以上步骤之后,访问http://serverip/owncloud 页面,选择MariaDB作为数据库,填入之前设置好的数据库名称,数据库用户名称,数据库密码就可以。

完成安装之后就可以进到云端了。

配置https

需要一个备案过的域名,我是用了csgowiki.top的子域名cloud.csgowiki.top来配置的。

申请SSL证书

在域名服务商那里(阿里云)就可以申请免费的证书,阿里云可以申请一年的。

选择Apache服务器类型,下载证书压缩包。

解压之后可以获得三个文件:xxx_public.crtxxx.keyxxx_chain.crt

上传SSL证书

  1. 创建文件夹:sudo mkdir /etc/apache2/cert
  2. 将三个证书文件都上传到新建的文件夹下

修改Apache配置

  1. 设置监听443端口:vim /etc/apache2/ports.conf ,应该如图所示,如果相同就不用修改。

  2. 配置apache参数:sudo vim /etc/apache2/sites-enabled/000-default.conf

    对应修改:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <VirtualHost *:443>
    SSLEngine on # 开启SSL
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
    SSLHonorCipherOrder on

    SSLCertificateFile cert/xxx_public.crt # public文件路径
    SSLCertificateKeyFile cert/xxx.key # key文件路径
    SSLCertificateChainFile cert/xxx_chain.crt # chain文件路径

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ServerName www.xxx.com # 你的域名

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    <VirtualHost *:80>
    RewriteEngine on # 重定向引擎开启,将80端口服务重定向到443
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R=301]
    </VirtualHost>

  3. 开启ssl模块:sudo a2enmod ssl

  4. 重启apache服务:sudo systemctl restart apache2

配置结束后就可以通过域名直接https访问网站了。


搭建私人云盘
https://blog.scubot.com/article/b055/
作者
贺翔/CarOL
发布于
2020年12月31日
许可协议