跳到正文
Carol's Blog
返回

搭建私人云盘

概述

一步一步从购买服务器开始,记录搭建私人云盘的过程。我是用的是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

    ### 安装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服务

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

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

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

    sudo mysql_secure_installation

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

  3. 建立OwnCloud数据库

    sudo mysql -u root -p

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

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

  4. 下载&解压OwnCloud压缩包

    # 我写博客时最新版本是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服务

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

    写入以下内容:

    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的模块和配置:

    sudo a2enconf owncloud
    sudo a2enmod rewrite
    sudo a2enmod headers
    sudo a2enmod env
    sudo a2enmod dir
    sudo a2enmod mime

    最后再重启Apache服务

    sudo systemctl restart apache2

在网站上完成安装

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

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

    对应修改:

    <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访问网站了。


分享这篇文章:
通过邮件分享这篇文章

分享到微信

微信对普通网页没有开放通用直连分享协议。更稳妥的方式是复制链接、扫码打开,或在支持的设备上调用系统分享。

上一篇
SCU教务处爬虫记录
下一篇
计算机图形学-纹理