IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    搭建私人云盘

    贺翔/CarOL发表于 2023-10-27 10:16:57
    love 0

    概述

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

    购买服务器

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

    选用OwnCloud

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

    在Ubuntu上部署OwnCloud

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

    安装环境

    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.crt、xxx.key和xxx_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访问网站了。



沪ICP备19023445号-2号
友情链接