4

搭建私人云盘

 2 years ago
source link: https://blog.scubot.com/article/b055/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

    owncloud-1.png

    输入sudo systemctl status mariadb,验证:

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

    owncloud-3.png
  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;
    MYSQL

    owncloud-4.png
  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

    启用Apache的模块和配置:

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

    最后再重启Apache服务

    sudo systemctl restart apache2

    owncloud-5.png

在网站上完成安装

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

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作为数据库,填入之前设置好的数据库名称,数据库用户名称,数据库密码就可以。

owncloud-6.png

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

owncloud-7.png

配置https

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

申请SSL证书

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

owncloud-8.png

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

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

上传SSL证书

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

修改Apache配置

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

    owncloud-9.png
  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>
    APACHE
  3. 开启ssl模块:sudo a2enmod ssl

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK