注:本教程中有一些拓展知识,和本教程关系不大,可忽略
Nextcloud 一款文件主机服务软件,就是我们平时使用的云存储,不过这是在自己主机的服务器上建立属于自己的私有云,Nextcloud 使用 AGPLv3 协议发布。本项目是基于 PHP 和 SQLite,MySQL,Oracle 或 PostgreSQL 数据库,所以它可以运行在所有的平台上。
NextCloud 是一个开源免费专业的私有云存储项目,它能帮你快速在个人电脑戒服务器上架设一套专属的私有云文件同步网盘,可以像 百度云盘那样实现文件跨平台同步、共享、版本控制、团队协作等等。NextCloud 能让你将所有的文件掌握在自己的手中,只要你的设备性能和空间充足,那么用起来几乎没有任何限制。
NextCloud 跨平台支持 Windows、Mac、Android、iOS、Linux 等平台,而且还提供了网页版和 WebDAV 形式访问,因此你可以在任何电脑、手机上都能轻松获取你的文件了。
拓展:CentOS 使用个人总结
搭建 NextCloud 所需软件:百度云盘
提取码:tdv3
Linux 都需要这些依赖包,但一般这些依赖包是已经安装好了的,这个只是将可能没有安装的依赖安装下。
yum install -y epel-release yum-utils unzip curl wget bash-completion
policycoreutils-python mlocate bzip2
注:epel-release 这个是 epel 源,有一些依赖包是镜像中没有的,安装之后会自动配置 yum 的软件仓库,这个默认是未安装的。
yum install -y httpd mariadb-server mariadb sqlite
源码安装 MySQL:CentOS 7.6 安装 MySQL
注:下面有 离线安装 和 在线安装,您可自行选择。
离线安装:在安装依赖包的时候使用本地下载好的 rpm 包,不需再联网进行下载,可以在您当前网络不太好的时候节省时间。
在线安装:联网进行下载所需依赖包。
下载对应的 rpm 包
下面是需要下载的 rpm 包,你刚刚从百度云盘中下载的 php72.tar.gz 是已经打包好的
将你刚刚下载的 php72.tar.gz 上传到目的主机中 /usr/local/src 目录下,放在此目录下纯属个人喜好,你也可以放在 /home 下的用户文件目录下
# 通过 rz 命令上传,如果使用 rz 显示 -bash: createrepo: command not found,则执行下面命令安装 lrzsz
yum -y install lrzsz
解压 php72.tar.gz 在 /opt 目录下,一般这个目录是用于附加应用的文件目录
tar -zxvf /usr/local/src/php72.tar.gz -C /opt # 解压 php72.tar.gz
在解压的 php72 目录中创建一个 repodata 文件,就可以做自己的 yum 源
createrepo ./ # 在本目录中创建一个 repodata 文件
# 如果显示 -bash: createrepo: command not found,则执行下面命令安装 createrepo
yum -y install createrepo
注:使用 mkdir repodata 命令是无效的在配置本地 yum 源的时候。
查看 repodata 文件中的内容
注:文件里面的内容记录着包与包之间的依赖关系,所以 yum 在安装的过程总能自动解决依赖关系,因为 yum 的缓存文件中有这些依赖关系。
拓展 - repodata 的作用(可忽略)
yum clean all # 清空缓存
yum list # 列出之前,这些红框里的下载的就是 repodata 文件里面的内容,然后才把所有包列出来
配置本地 yum 源,因为安装本地的 rpm 包,是要比网上重新下载速度快
vim /etc/yum.repos.d/php72.repo # 创建一个 php72.repo 文件,添加下面内容
[php72] # yum 源名称,在本服务器上唯一的,用来区分不同的yum源
name=php72 # 对 yum 源描述信息
baseurl=file:///opt/php72 # yum源的路径,提供方式包括FTP(ftp://...)、HTTP(http://...)、本 地(file:///...光盘挂载目录所在的位置)
enabled=1 # 为1,表示启用yum源;0为禁用
gpgcheck=0 # 为1,使用公钥检验rpm包的正确性;0为不校验
修改完成后使用本地 yum 源快速安装
yum install -y php72w php72w-cli php72w-common php72w-curl php72w-gd php72w-mbstring php72w-mysqlnd php72w-process php72w-xml php72w-zip php72w-opcache php72w-pecl-apcu php72w-intl php72w-pecl-redis
这里显示的就是本地配置的 php72 yum 源
安装 php 源
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
安装 php 和 nextcloud 需要的功能模块
yum install -y php72w php72w-cli php72w-common php72w-curl php72w-gd php72w-mbstring php72w-mysqlnd php72w-process php72w-xml php72w-zip php72w-opcache php72w-pecl-apcu php72w-intl php72w-pecl-redis
如果想让自己从网上下载的 rpm 包保留下来(默认是安装之后就删除了 rpm 包),即开启缓存
vim /etc/yum.conf # 将 keepcache=0 改为 keepcache=1 即可
cachedir=/var/cache/yum/$basearch/$releasever
/var/cache/yum/x86_64/7 # 这一行是对应上一行 $basearch/$releasever 的解释
将缓存的 rpm 包复制到自己准备的目录中,做自己的 yum 源
mkdir /opt/php72
cd /var/cache/yum/x86_64/7/
# 找到当前目录下所有以 ".rpm" 结尾的文件然后将这些包复制到 /opt/php72 下
find ./ -name "*.rpm" -exec cp -r {
} /opt/php72 \;
启动 httpd 服务器
systemctl start httpd.service # 启动 httpd 服务器
ps -aux | grep httpd # 查看 httpd 的启动进程
启动 mariadb 服务器
systemctl start mariadb.service # 启动 数据库
ps -aux | grep mariadb # 查看 mariadb 的启动进程
关闭防火墙
iptales -F # 关闭防火墙,默认 80 端口是不让通信的
关闭 sellinux
getenforce # 查看 sellinux 状态,如果是 Disabled 时,则表示已经关闭
# 如果未关闭,则用下面命令'暂时'关闭
setenforce 0
拓展 - 永久关闭 sellinux(可忽略)
vim /etc/sysconfig/selinux # 编辑 selinux,将 SELINUX 设置为 disabled
mysqladmin -u root password "你的密码"
查看 nextcloud - 17.0.1.zip
cd /usr/local/software
解压 nextcloud - 17.0.1.zip
unzip nextcloud-17.0.1.zip # 由于解压的篇幅比较长,省略截图了
将 nextcloud 中的文件复制到 apache 服务器根目录下 /var/www/html
cp -r ./nextcloud/* /var/www/html
在网站的根目录下创建 data 文件,后面会用到这个文件
mkdir /var/www/html/data
赋网站根目录下 apache 权限
chown -R apache:apache /var/www/html # 给 /var/www/html 给予 apache 的权限
注:因为代码是 apache 运行的,apache 进程的身份时 apache 用户,图片显示的本来时 root
在 MariaDB 数据库中创建 nextcloud 的数据库
create database nextcloud; # 数据库名 nextcloud 不能写错,后面有分号
通过 web 界面安装 nextcloud
可以通过你自己(非虚拟机)的浏览器打开 http://192.168.139.128/index.php
创建管理员账户,账号密码不要记错,不然就用不了
存储数据库
点击完成设置
安装完成后会出现以下界面,关闭即可
下载 nextcloud 客户端,然后安装
nextcloud 客户端下载
注:往下都是 nextcloud 客户端安装之后的教程
点击登陆
输入自己启动服务器的ip地址,点击 Next
点击登陆
登陆账号密码,点击登陆,这个账号密码是刚刚在网页端设置的账号密码
点击 Grant access (授权)
根据自己的选择自定义
下载服务器上的文件,保证本地的文件跟服务器的文件保持一致