1.系统部署部分
Nextcloud项目简介
本文所指的Nextcloud私有云是托管在自有虚拟机程序中,该私有云采用国外Nextcloud开源程序,网站架构使用LAMP
Nextcloud (nextcloud.com)是一款用于自建私有网盘的云存储开源软件,采用PHP+MySQL开发,功能类似百度云盘,提供了PC、IOS和Android三个同步客户端支持多种设备访问,用户可以很方便地与服务器上存储的文件、日程安排、通讯录、书签等重要数据保持同步,还支持其他同步来源: Amazon S3、Dropbox、FTP、Google Drive、OpenStack Object Storage、SMB、WebDAV、SFTP。
基础业务部署步骤大纲总览
声明: 由于软件的版本更新迭代,可能部分章节所涉及到的代码部署、Bug修复等会有小幅度的变化,请您不要完全照搬本文的所有步骤或代码,注意根据自己的实际业务配置做灵活处理。
1. 系统软硬件参数环境
服务器:CentOS 7.9
Mysql: 8.0.33
apache: Nextcloud:27.0.0
RAM:4G DISK:20G
2.Nextcloud 参数路径说明
Nextcloud镜像是基于LAMP环境制作,当然采用LNMP架构也是完全没有问题的。下面是一些可能会用得到的
子项 |
路径或说明 |
操作系统 |
Centos |
Web服务 |
Apache |
Nextcloud系统文件默认根目录 |
/var/www/html |
Nextcloud |
/var/www/html/config/config.php |
PHP配置 |
/etc/php.ini |
Apache虚拟主机文件目录 |
/etc/httpd/conf.d |
日志文件 |
/var/log/httpd |
MySQL数据目录 |
/data/mysql |
MySQL配置文件 |
/etc/my.cof |
前端页面访问地址 |
http[s]: //服务器地址/index.php |
3.详细部署过程记录
3.1 安装CentOS 7.9
本文选则的系统是CentOS-7-x86_64-DVD-2009.iso镜像,可自行去centos官网下载,也可选择中国源站,如阿里云等,本文采用的是阿里云的镜像源 网址:阿里云开源镜像站 选择7.9/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso这个镜像
3.2安装php8.0
3.2.1. 检查旧版的php版本
输入php -v 检查当前的php版本或php -m 检查当前的php扩展
php -v #检查当前的php版本#
php -m #检查php扩展#
3.2.2.卸载所有的已安装的php
yum remove -y php*
3.2.3.添加remi源(可能需要提前安装epel-release)
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm
3.2.4.单独启用php80的源 (没有 yum-config-manager命令的话需要安装yum-utils)
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php80
3.2.5.安装php及其拓展
yum install -y php php-bcmath php-cli php-common php-devel php-fpm php-gd php-intl php-ldap php-mbstring php-mysqlnd php-odbc php-pdo php-pear php-pecl-xmlrpc php-pecl-zip php-process php-snmp php-soap php-sodium php-xml
3.2.6.最后,php安装完成,版本验证一下
php -v
3.2.7.php各项命令
systemctl status php-fpm //查看php状态
systemctl start php-fpm //启动php
systemctl stop php-fpm //停止php
systemctl restart php-fpm //重启php
systemctl enable php-fpm //配置php开机自启
3.3 apache服务器安装
3.3.1.检查是否有旧版本的apache(可不卸载直接跳过)
rpm -qa | grep httpd
3.3.2.卸载旧版apache软件
yum remove httpd*
3.3.3.安装apache
yum install httpd
3.3.4.安装完成后检查apache状态
rpm -qa | grep httpd //检查apache软件版本
ps -ef | grep apache //检查apache的进程
3.3.5.Apache服务各项命令
systemctl status httpd //查看apache状态
systemctl start httpd //启动apache
systemctl stop httpd //停止apache
systemctl restart httpd //重启apache
systemctl enable httpd //配置apache开机自启
如果只在本机访问,就可以访问了,如果需要其他主机访问,就需要开启centos7的80端口。
3.3.6.开放centos7的80端口,配置防火墙相关命令
方法1 直接关闭防火墙,开启系统所有端口
systemctl stop firewalld
方法2 防火墙放行80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent //放行80端口
firewall-cmd --reload //使能防火墙生效
firewall-cmd --list-ports //查看是否生效
3.3.7.输入服务器ip地址,访问网页,确认apache服务生效
3.4.安装Mysql数据库
本文默认选择yum方式安装
3.4.1.由于centOS7中默认安装了MariaDB,需要先进行卸载
rpm -qa | grep -i mariadb //检查是否安装mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 //执行卸载
经实践在使用yum方式安装MySQL时不用卸载也可以,会被自动替代 通过rpm方式安装需要卸载,否则会出现依赖问题!!!
3.4.2.下载MySQL仓库并安装
下载mysql仓库
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
若提示无wget命令,需先行安装wget软件
yum -y install wget //安装wget软件
安装mysql仓库
yum -y install mysql80-community-release-el7-3.noarch.rpm
运行如下命令安装GPG,如果不安装执行yum安装mysql会出现如下图报错.
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
安装MySQL数据库
yum -y install mysql-community-server
开启MySQL数据库,并检查数据库状态
systemctl start mysqld && systemctl status mysqld
3.4.3.查看mysql默认密码并登陆
cat /var/log/mysqld.log | grep password
登录mysql
mysql -uroot -p //提示输入密码,输入
3.4.4.修改初始密码(若密码符合强度可跳过)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'nextcloud@admin2023'; //修改MySQL root用户密码为nextcloud@admin2023
前面首写字母设置为大写,运行输入:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Nextcloud@admin2023'; //设置root密码为Nextcloud@admin2023
若想设置弱密码
SHOW variables LIKE 'validate_password%'; //查看password策略
配置将密码验证策略改为LOW,密码长度4位以上
set global validate_password.policy=0;
set global validate_password.length=4;
此时再进行修改密码操作,可以修改为弱密码了
ALTER USER 'root'@'localhost' IDENTIFIED BY 'admin@2023'; //将root修改为admin@2023
3.4.5配置数据库表及用户权限
1.创建数据库名称:nextclouddate
CREATE DATABASE nextclouddate;
2.进入新建的数据库
use nextclouddate;
3.创建用户
create user 'username'@'localhost' identified by 'Password@2023';
//其中username表示用户名,Password@2023表示密码。localhost表示只能本地访问,可以通过localhost进行访问控制,包括输入指定ip,可修改成% 达到不限制IP访问,
举例:
create user 'name'@'192.168.0.1' identified by 'Password@2023';
//这是一个由192.168.0.1这个地址访问的name账户,密码为Password@2023
4.用户授权
授予所有权限
grant all privileges on nextclouddate.*to 'username'@'localhost';
//授权username用户访问nextclouddate表中所有权限,只在本地登录
5.授权完成,刷新下权限
flush privileges; //刷新权限,使能生效
3.5.Nextcloud的安装与配置
3.5.1获取nextcloud数据安装包
1.使用wget工具在线下载
wget https://download.nextcloud.com/server/releases/latest.zip
//下载latest.zip包,latest表示最新程序
2.使用浏览器工具下载安装包
3.将安装包解压
浏览器等工具下载需传进centos系统中
在后台输入 rz -y 命令上传 latest.zip包,若无法上传提示安装lrzsz
yum -y install lrzsz //安装lrzsz上传软件
rz -y //上传软件,选择latest.zip包的路径上传到服务器中,默认服务器路径是~
yum install -y unzip //安装unzip解压缩软件
unzip latest.zip //解压latest.zip
4.将Nextcloud目录下的文件拷贝到网站根目录下
cd /root/Nextcloud //进入解压的nextcloud目录,若在当前目录则不需要再进入
scp -r * /var/www/html //将此目录下的文件全部拷贝到/var/www/html文件
5.给nextcloud文件加权限
chown -R apache:apache /var/www/html && chmod -R 775 /var/www/html
//这两个命令的作用是将 /var/www/html 目录以及该目录下的文件和子目录的所有者设置为 apache 用户,并且在保持该用户对这些文件和目录完全控制的同时允许组用户和其他用户读取和执行它们。
如不加权限进前端页面,显示如下
6.关闭ESLinux(否则无法正常显示网页)
vim /etc/selinux/config //编辑selinux配置文件
SELINUX=disabled //找到SELINUX项,改disable
重启系统生效 reboot
7.进入nextcloud前端配置页面
输入服务器ip进入页面
点击存储与数据库,配置数据库 选择MySQL/MariaDB
创建管理账户:xxx
密码:xxx 数据库目录:/var/www/html/data 数据库用户: username
数据库密码: Password@2023 数据库名: nextclouddate 数据库主机: 127.0.0.1:3306
点击跳过,或者安装应用,系统安装完成