搭建过程:在Centos上搭建个人云盘NextCloud

发布于:2023-01-24 ⋅ 阅读:(17) ⋅ 点赞:(0) ⋅ 评论:(0)

前言

为什么使用NextCloud

之前一直使用Windows自带的OneDrive,但有以下问题妨碍使用:

  • 同步速度堪忧
  • 空间非常有限
  • 把自己的数据保存在他人的服务器上总觉得不舒服。

NextCloud是一个不错的替代方案:

  • 同步速度取决于服务器的地理位置和网络情况
  • 空间可以低成本地自行增加
  • 数据是保存在自己的服务器上的,这挺“浪漫”的。
  • 支持多用户使用云盘,与朋友一起使用互不干扰。

部署在什么服务器上

在开始我是租了阿里云VPS(Centos6),现在是把服务搭建在自己的树莓派上(ResPiOS),至于树莓派上的教程,之后讲讲。


可选:额外的数据备份

大家都知道NextCloud的数据在服务器上以及每个PC客户端上都有备份,但我仍推荐在Linux服务端上定期进行备份,我是使用crontab定期压缩数据文件夹。

注意:NextCloud这个软件,客户端与服务端的文件一定会完全同步,比如在客户端上不同步某个文件到云端上,因为云端没有这一目录,客户端本地也会被直接删掉!



一、安装前置工具

yum install -y -q yum-utils



二、安装配置Apache

Tips:

  • Apache的日志文件/etc/httpd/logs

  • 查看配置文件的语法错误:apachectl -t


#1.安装Apache

  • 下载并安装:yum install -y httpd
    • 默认安装路径:/etc/httpd
    • 配置路径:/etc/httpd/conf/httpd.conf
  • 开启服务:systemctl start httpd.service
  • 设置开机启动服务:systemctl enable httpd.service

#2.配置Apache的虚拟主机NextCloud(一个IP多个站点)

vim /etc/httpd/conf.d/vhost.conf

  •   <VirtualHost *:80>
      	DocumentRoot "/var/www/html"
      	ServerName cloud.xx.com
      	ServerAlias cloud.xx.com
      	<Directory "/var/www/html">
      		Options FollowSymLinks
      		AllowOverride All
      		Require all granted
      	</Directory>
      </VirtualHost>
    

重启Apache服务:systemctl restart httpd


#3.打开Web服务的端口

既然NextCloud搭建在Web服务器上,当然要打开端口。

正常防火墙就不说了,既然安装了就肯定会用。

阿里云则需要编辑“安全组”来打开端口。

阿里云编辑安全组

这里举例为打开80端口,我推荐其他的比如8080、8088端口。

请添加图片描述

ufw等防火墙(略)



三、安装数据库

默认采用SQLite作为后端数据库,适用于少量用户,多则安装配置MySQL

#1. 安装MariaDB(我采用的,个人使用MariaDB就够了)

  • 下载并安装:yum install mariadb-server -y
  • 开启服务:systemctl start mariadb
  • 设置开机启动服务:systemctl enable mariadb

#2. 安装MySQL(我没采用的)



四、安装PHP(Apache版本)

#1. 下载安装PHP7.4

可选:卸载老版本php
  • 卸载老版本PHP:yum remove php* php-common
  • 搜索未卸载的PHP包yum list installed | grep php,再用yum remove xx去逐一卸载
安装php
  • 为yum添加第三方源:yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
  • 查看有没有php7.x的包:yum search php7
  • 安装PHP74及相应模块:yum install -y php74-php-fpm php74-php-cli php74-php-bcmath php74-php-gd php74-php-json php74-php-mbstring php74-php-mcrypt php74-php-mysqlnd php74-php-opcache php74-php-pdo php74-php-pecl-crypto php74-php-pecl-mcrypt php74-php-pecl-geoip php74-php-recode php74-php-snmp php74-php-soap php74-php-xml php74-php-imagick php74-php-pecl-zip
校验安装
  • 验证安装成功:php74 -v

  • 创建软链接:ln -s /opt/remi/php74/root/usr/bin/php /usr/bin/php

  • 验证创建成功:php -v

  • 验证Apache可以执行php文件:在/var/www/html下创建phpinfo.php,内容为<?php echo phpinfo(); ?>,访问该页面,如果正常显示表格则成功。

  • 重启Apache服务:systemctl restart httpd

设置内存限制
  • 配置内存限制:vim /etc/opt/remi/php74/php.inimemory_limit = 128M(根据机器配置而定)

#2. 开启php-fpm(更好的CPU与内存管理)

开启php-fpm:systemctl start php74-php-fpm

设置开机启动:systemctl enable php74-php-fpm


#3. 配置apache使用php-fpm,使其可以解析php文件

创建文件/etc/httpd/conf.modules.d/10-php-fpm.conf

<FilesMatch \.php$>
         SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

systemctl restart php74-php-fpm

systemctl restart httpd

验证:在/var/www/html下创建文件phpinfo.php<?php echo phpinfo(); ?>,然后访问网页,这样就可以解析php文件了:
请添加图片描述



五、安装NextCloud

安装NextCloud

  • 创建网站根目录(根据自己的需求):mkdir /var/www/htmlcd /var/www/html

  • 下载NextCloud并配置数字签名:

    wget https://download.nextcloud.com/server/releases/nextcloud-23.0.0.zip --no-check-certificate
    
    # pgp数字签名:加密通信
    wget https://download.nextcloud.com/server/releases/nextcloud-23.0.0.zip.asc --no-check-certificate
    wget https://nextcloud.com/nextcloud.asc --no-check-certificate
    gpg --import nextcloud.asc
    gpg --verify nextcloud-23.0.0.zip.asc nextcloud-23.0.0.zip
    
  • yum -y install wget unzipunzip nextcloud-23.0.0.zip

创建数据目录 & 赋予权限

  • 创建数据存储目录:mkdir /var/www/html/nextcloud/data

  • chown -R www-data:www-data /var/www/html/nextcloud(Linux上默认Web服务是使用www-data用户的)

  • chmod -R 775 /var/www/html/nextcloud



六、客户端的使用

#1. 进入网页客户端进行配置

进入网站:http://你的服务器IP或域名:端口,然后看到该界面进行初始化配置。
请添加图片描述


#2. 多用户的配置位

请添加图片描述

更新NextCloud

  • 用客户端进入NextCloud网页
  • 设置 - 管理 - 找到“打开更新器”