本文所指的Nextcloud私有云是托管在自有虚拟机程序中,该私有云采用国外Nextcloud开源程序,网站架构使用LAMP
Nextcloud (nextcloud.com)是一款用于自建私有网盘的云存储开源软件,采用PHP+MySQL开发,功能类似百度云盘,提供了PC、IOS和Android三个同步客户端支持多种设备访问,用户可以很方便地与服务器上存储的文件、日程安排、通讯录、书签等重要数据保持同步,还支持其他同步来源: Amazon S3、Dropbox、FTP、Google Drive、OpenStack Object Storage、SMB、WebDAV、SFTP。
声明: 由于软件的版本更新迭代,可能部分章节所涉及到的代码部署、Bug修复等会有小幅度的变化,请您不要完全照搬本文的所有步骤或代码,注意根据自己的实际业务配置做灵活处理。
服务器:CentOS 7.9
Mysql: 8.0.33
apache:2.4.6
Nextcloud:27.0.0
RAM:4G
DISK:20G
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 |
本文选则的系统是CentOS-7-x86_64-DVD-2009.iso镜像,可自行去centos官网下载,也可选择中国源站,如阿里云等,本人采用的是阿里云的镜像源
网址:阿里云开源镜像站
选择7.9/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso这个镜像
输入php -v 检查当前的php版本或php -m 检查当前的php扩展
php -v #检查当前的php版本#
php -m #检查php扩展#
yum remove -y php*
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
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php80
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
php -v
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开机自启
rpm -qa | grep httpd
yum remove httpd*
yum install httpd
rpm -qa | grep httpd //检查apache软件版本
ps -ef | grep apache //检查apache的进程
systemctl status httpd //查看apache状态
systemctl start httpd //启动apache
systemctl stop httpd //停止apache
systemctl restart httpd //重启apache
systemctl enable httpd //配置apache开机自启
如果只在本机访问,就可以访问了,如果需要其他主机访问,就需要开启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 //查看是否生效
本文默认选择yum方式安装
rpm -qa | grep -i mariadb //检查是否安装mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 //执行卸载
经实践在使用yum方式安装MySQL时不用卸载也可以,会被自动替代 通过rpm方式安装需要卸载,否则会出现依赖问题!!!
下载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
cat /var/log/mysqld.log | grep password
mysql root密码显示为aJuertY!i85r
登录mysql
mysql -uroot -p //提示输入密码,输入
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
CREATE DATABASE nextclouddate;
use nextclouddate;
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
授予所有权限
grant all privileges on nextclouddate.*to 'username'@'localhost';
//授权username用户访问nextclouddate表中所有权限,只在本地登录
flush privileges; //刷新权限,使能生效
wget https://download.nextcloud.com/server/releases/latest.zip
//下载latest.zip包,latest表示最新程序
Nextcloud最新安装包网址
浏览器等工具下载需传进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
cd /root/Nextcloud //进入解压的nextcloud目录,若在当前目录则不需要再进入
scp -r * /var/www/html //将此目录下的文件全部拷贝到/var/www/html文件
chown -R apache:apache /var/www/html && chmod -R 775 /var/www/html
//这两个命令的作用是将 /var/www/html 目录以及该目录下的文件和子目录的所有者设置为 apache 用户,并且在保持该用户对这些文件和目录完全控制的同时允许组用户和其他用户读取和执行它们。
vim /etc/selinux/config //编辑selinux配置文件
SELINUX=disabled //找到SELINUX项,改disable
重启系统生效 reboot
点击存储与数据库,配置数据库 选择MySQL/MariaDB
创建管理账户:xxx
密码:xxx
数据库目录:/var/www/html/data
数据库用户: username
数据库密码: Password@2023
数据库名: nextclouddate
数据库主机: 127.0.0.1:3306