OpenEuler21部署NextCloud以及数据盘迁移
前提
服务器处于内网环境,由于数据迁移需要,进行源码方式部署,最终还是通过docker方式部署nextcloud15,解决mysql5旧数据的迁移问题。
所得
1、更加体会到了docker这种方式,在内网环境下的部署的便捷。
2、docker部署性能上也是非常不错的,服务器每天都在大量文件增删(大约20T总数据量),但并不影响不影响docker映射到服务器的文件同步。当时还有些担心数据量太大,性能不好,所以没考虑docker方式部署。
3、以下面源码方式部署,使得操作服务器更为熟练。
1 欧拉系统安装
2 openEuler安装图形界面Ukui
安装界面转:https://blog.csdn.net/xcjyxy2021/article/details/123342877
3 yum安装的npm包进行本地保存设置
#主要是更改yum.conf配置文件,找找自己文件位置
[root@Ban etc]# vi /etc/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=1
gpgcheck=1
logfile=/var/log/yum.log
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
注意:
yum缓存的不一定全部缓存了npm包
,查看安装的包都有哪些,是否缓存全部,没有缓存全部就哪个没缓存,卸载单独安装缓存该npm包
。
查看命令
rpm -qa|grep php
4 部署nextCloud
4.1构建LAMP环境基础
4.1.1开启httpd,防火墙端口号
firewall-cmd --list-all-zones #查看所有的zone信息
firewall-cmd --get-default-zone #查看默认zone是哪一个
firewall-cmd --zone=internal --change-zone=p3p1 #临时修改接口p3p1所属的zone为internal
firewall-cmd --add-service=http #暂时开放http
firewall-cmd --permanent --add-service=http #永久开放http
firewall-cmd --zone=public --add-port=80/tcp --permanent #在public中永久开放80端口
firewall-cmd --permanent --zone=public --remove-service=ssh #从public zone中移除服务
firewall-cmd --reload #重新加载配置
原文链接:https://blog.csdn.net/cctcc/article/details/68062142
以下为使用到的命令:
[root@localhost yum]# systemctl start httpd.service
[root@localhost yum]# systemctl enable httpd.service
[root@localhost yum]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@localhost yum]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
[root@localhost yum]# firewall-cmd --reload
success
[root@localhost yum]# systemctl status httpd.service
4.1.2开启MariaDB服务
#开启MariaDB服务,并设置系统启动时服务自动启动:
systemctl start mariadb.service
systemctl enable mariadb.service
#设置MySQL root帐户的密码:
mysql_secure_installation
4.1.3安装并测试php
4.2下载安装nextCloud
4.2.1创建nextCloud数据库
show databases;
use mysql;
MariaDB [mysql]> select user,host,plugin from mysql.user;
+-------------+-----------+-----------------------+
| User | Host | plugin |
+-------------+-----------+-----------------------+
| mariadb.sys | localhost | mysql_native_password |
| root | localhost | mysql_native_password |
| mysql | localhost | mysql_native_password |
+-------------+-----------+-----------------------+
3 rows in set (0.002 sec)
# root | localhost
# 说明该root用户只支持本地访问。Host字段更改为'%',允许远程访问。
MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [mysql]> FLUSH PRIVILEGES;
MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123' WITH GRANT OPTION;
Query OK, 0 rows affected (0.003 sec)
MariaDB [mysql]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.002 sec)
MariaDB [mysql]> select user,host,plugin from mysql.user;
+-------------+-----------+-----------------------+
| User | Host | plugin |
+-------------+-----------+-----------------------+
| mariadb.sys | localhost | mysql_native_password |
| root | localhost | mysql_native_password |
| mysql | localhost | mysql_native_password |
| root | % | mysql_native_password |
+-------------+-----------+-----------------------+
4 rows in set (0.001 sec)
# 创建nextcloud存储的数据库
create database nextcloud;
4.2.2拷贝NextCloud并创建data目录赋予权限
#以下是我的步骤,html文件夹可删除,自己建,赋予权限很重要!
[root@localhost html]# cp /root/桌面/nextCloud/* /var/www/html/
[root@localhost html]# mkdir /var/www/html/data
[root@localhost nextCloud]# chown apache:apache -R /var/www/html/
[root@localhost nextCloud]# chown apache:apache -R /var/www/html/data/
# setenforce 0很重要
# 表示 设置SELinux 成为permissive模式 临时关闭selinux防火墙
# 永久关闭:输入命令vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出
[root@localhost nextCloud]# setenforce 0
[root@localhost nextCloud]# systemctl start httpd.service
5 离线npm包方式部署NextCloud
[root@localhost yum]# yum localinstall -y ./httpd/* //批量安装离线npm包
查看缓存的npm是否都在文件中,有个tree命令,更方便,
需要安装tree
#安装命令
yum -y install tree
使用yum
离线批量安装npm
,会自动解析依赖关系,但由于服务器处于非联网状态下,这里yum安装会联网加载yum源
,这里解决方式两种:。
1、设置本地yum源,加载
2、sudo rpm -ivh httpd/* # 批量本地安装rpm包,这里解析依赖,准备好安装过程中需要的所有库文件和源文件。
原则上,少什么联网下什么。
# 开启Apache服务,并设置系统启动时服务自动启动:
[root@localhost yum]# systemctl start httpd.service
[root@localhost yum]# systemctl enable httpd.service
#为了能够从外部访问Web服务器,必须在防火墙中打开HTTP(80)和HTTPS(443)端口。
#CentOS上的默认防火墙是firewalld,可以使用firewalld-cmd命令进行配置。
[root@localhost yum]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@localhost yum]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
[root@localhost yum]# firewall-cmd --reload
success
[root@localhost yum]# systemctl status httpd.service
# 开启MariaDB服务,并设置系统启动时服务自动启动:
systemctl start mariadb.service
systemctl enable mariadb.service
# 设置MySQL root帐户的密码:
mysql_secure_installation
# 安装好php后,要重启Apache服务
systemctl restart httpd.service
[root@localhost html]# cp /root/桌面/nextCloud/* /var/www/html/
[root@localhost html]# mkdir /var/www/html/data
[root@localhost nextCloud]# chown apache:apache -R /var/www/html/
[root@localhost nextCloud]# chown apache:apache -R /var/www/html/data/
# setenforce 0很重要
# 表示 设置SELinux 成为permissive模式 临时关闭selinux防火墙
# 永久关闭:
输入命令vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出
[root@localhost nextCloud]# setenforce 0
[root@localhost nextCloud]# systemctl start httpd.service
6 NextCloud网盘数据迁移
主要思路:
1、将原迁移网盘的Mangdb数据库的数据库表导出
,文件缓存的文件夹data复制保存。
2、在另一台虚拟机或者服务器上部署好nextCloud
,创建一个新的管理员账户登录进入,之后可以用退出,用数据库中原先存储的账户登录
方可看到原来的数据,可以再删除刚刚创建的管理员账户。
3、在另一台虚拟机上运行正常的nextCloud上导入原迁移的数据库表与合并两个data文件夹
6.1 数据库导出
#导出dbname数据库,导出文件为mydb.sql(注:不用登录数据库,直接命令行输入,然后输入数据库密码)
mysqldump dbname > nextcloud.sql -u root -p
#导入数据库表 (登录数据库后进行 注:没有;结尾)
source /root/桌面/mydb.sql
# 重启下httpd
systemctl restart httpd.service