前言
为什么使用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.ini
中memory_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/html
、cd /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 unzip
、unzip 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
网页 - 设置 - 管理 - 找到“打开更新器”