当前位置: 首页 > news >正文

openEuler21.10部署nextcloud15,mariadb版本5.5.68,php版本7.0.33

openEuler21.10部署nextcloud15,mariadb版本5.5.68,php版本7.0.33

  • 1、配置过程资源清单
  • 2、配置httpd环境
  • 3、配置mariadb5.5.68数据
  • 4、配置php7.0.33环境,添加相应的缺失模块
    • 4.1编译与安装php7.0.33
  • 5、服务器关闭ssh后台数据迁移进程不关闭

openEuler yum时报需要注册码解决方式:
bclinux-license -g

rpm -qa |grep license
rpm -evh bclinux-license-manager-4.0-1.oe1.bclinux.x86_64

1、配置过程资源清单

在这里插入图片描述

httpd对应rpm资源包

在这里插入图片描述

openssl库文件资源

在这里插入图片描述

php部分rpm资源补充

在这里插入图片描述

mariadb5.5.68编译所需要rpm资源

在这里插入图片描述

php7.0.33源码资源与部分所缺模块源码资源

在这里插入图片描述

注意:
此仅本次部署过程中所使用的资源包,并不适合其他版本镜像与环境,仅做参考;主要参考部署过程中的解决问题方式。

建议清单:
1、本次由于环境不联网,属于源码编译安装的方式。建议先虚拟机联网安装成功后,将联网过程中所需的rpm保存下来,方便迁移。

rpm保存教程https://blog.csdn.net/m0_45057216/article/details/128527267
2、编译过程中会出现较多的库或文件缺失,一个个解决,保证编译成功即可。

2、配置httpd环境

记得安装rpm,如果升级出错,可以执行强制安装实现对软件包的版本更新
(建议先rpm -ivh xxxx.rpm或者rpm -ivh ./*),
切记版本冲突时不要先卸载后安装。使用下面命令执行:
rpm -ivh --replacefiles --force --nodeps *.rpm

在这里插入图片描述

3、配置mariadb5.5.68数据

-------------------------------------------------------------------------
mariadb5.5.68版本安装流程

# 如果升级出错,可以执行强制安装实现对软件包的版本更新:
cd /usr/local/nextcloud/cmake
# 安装编译的rpm资源,例cmake等
rpm -ivh --replacefiles --force --nodeps *.rpm

-------------------------------------------------------------------------
开始编译mariadb5.5.68源码

tar xzf mariadb-5.5.68.tar.gz
cd mariadb-5.5.68/

mkdir build
cd build

# 编译mariadb5.5.68源码
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1

make && make install

# 创建mysql用户和组
groupadd mysql
useradd -g mysql mysql

# 创建mysql数据
sudo mkdir -p /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql

# 先命令配置mysql文件配置
sudo /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

#命令行开启mysql服务
sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
#登录mysql,直接回车,无密码
sudo /usr/local/mysql/bin/mysql -uroot -p
# 设置mysql密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root123');
#或者设置错误,更新密码  UPDATE mysql.user SET password=PASSWORD('root123') WHERE user='root';
create database nextcloud;

# 将mysql环境变量添加
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin 

# 编译my.cnf,或者创建该文件
vim /usr/local/mysql/my.cnf

[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
symbolic-links=0
default-storage-engine=INNODB
innodb_buffer_pool_size=256M



#在/usr/lib/systemd/system创建mariadb服务文件,添加文件内容
vim /usr/lib/systemd/system/mariadb.service

[Unit]
Description=Mariadb Server
After=network.target

[Service]
Type=simple
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my.cnf

[Install]
WantedBy=multi-user.target

#使刚才mariadb服务生效
sudo systemctl daemon-reload
sudo systemctl mariadb.service

# 测试关闭mariadb服务,发现关闭服务超时,属于刚才命令行运行的mariadb服务没有停止。
systemctl stop mariadb.service
#查看mysql正在运行的进程
ps aux | grep mysql
# 关闭所有mysql进程
kill 进程      
systemctl start mariadb
systemctl stop mariadb超时关闭解决


#可能遇到的问题
rm /usr/local/mysql/data/aria_log_control
systemctl start mariadb.service
期间出现的问题:安装gcc等编译器  
sudo yum install -y cmake gcc gcc-c++ ncurses-devel bison  解决

CMake Deprecation Warning at scripts/CMakeLists.txt:264 (CMAKE_POLICY):
  The OLD behavior for policy CMP0007 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


-- Looking for event.h
-- Looking for event.h - found
-- Configuring incomplete, errors occurred!
See also "/usr/local/nextcloud/mariadb-5.5.68/build/CMakeFiles/CMakeOutput.log".
See also "/usr/local/nextcloud/mariadb-5.5.68/build/CMakeFiles/CMakeError.log".

几个问题解决

在这里插入图片描述

systemctl stop mariadb.service
#移除aria_log_control
rm /usr/local/mysql/data/aria_log_control
systemctl start mariadb.service

4、配置php7.0.33环境,添加相应的缺失模块

在这里插入图片描述

注意:
记得安装rpm,如果升级出错,可以执行强制安装实现对软件包的版本更新(建议先rpm -ivh xxxx.rpm或者rpm -ivh ./*),
切记版本冲突时不要先卸载后安装。使用下面命令执行:
rpm -ivh --replacefiles --force --nodeps *.rpm

在这里插入图片描述

4.1编译与安装php7.0.33

现场测试安装过程:
-------------------------------------------------------------------------
注意:以下是php7.0.33编译过程中缺失的资源,bzip与libmcrypt,采用下载源码方式先编译安装。
1、bzip模块

tar -xf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make -f Makefile-libbz2_so all
make install
# 
2、libmcrypt模块

tar -xf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure
#执行安装
make && make install
3、 开始编译php7.0.33

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-mcrypt \
--enable-mbstring --enable-pdo --with-curl --disable-debug  --disable-rpath \
--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \
--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \
--with-mhash --with-pcre-regex --with-gd --with-jpeg-dir \
--enable-opcache=no --with-apxs2=/usr/bin/apxs --with-openssl \
--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

#安装
make && make install

#配置php环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/php/bin 
source /etc/profile

#测试php是否安装成功,查看版本
php -v

在这里插入图片描述

4、安装附属模块php-7.0.33/ext/openssl
yum install 
cd /usr/local/nextcloud/tars/php-7.0.33/ext/openssl

cp config0.m4 config.m4
phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install
5、安装附属模块zip
/usr/local/nextcloud/tars/zip-1.13.5
phpize
whereis php-config
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
6、配置php-fpm模块,配置php编译后的配置文件和service服务到指定位置。

#1、php.ini此时不存在,是要复制一份,重命名为php.ini,注意一定是php/etc下存放php.ini文件,原因是上面./configure指定了配置文件位置
cp /usr/local/nextcloud/tars/php-7.0.33/php.ini-development  /usr/local/php/etc/php.ini
#2、复制php-fpm.conf即可,不需要配置
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# 3、同上,但要编辑www.conf文件中的user与
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

# 命令行创建www-data用户和组
groupadd www-data
useradd -g www-data www-data

vim www.conf

#4、php-fpm.service拷贝一份再放到/etc/systemd/system/中
cp /usr/local/nextcloud/tars/php-7.0.33/sapi/fpm/php-fpm.service /etc/systemd/system/
#使得php-fpm.service生效
sudo systemctl daemon-reload

在这里插入图片描述

7、httpd与php两者进行配置互通。

#查看是否存在libphp7.so文件
cd /etc/httpd/modules
ls
#编辑配置文件
vim /etc/httpd/conf/httpd.conf

#将下面配置放到httpd.conf配置文件中。位置随意,我放到了最下面

LoadModule php7_module modules/libphp7.so
##########################################
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

8、将缺失的zip与openssl模块添加到php配置文件中
#查找php.ini文件位置
find / -name php.ini
vim php.ini

添加extension扩展路径位置
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20151012/zip.so
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20151012/openssl.so
#测试发现只是找不到zip.so,openssl.so不添加也可以说明./configure --with-openssl生效了,但zip不行,可能与版本有关。

在这里插入图片描述

9、以下时出现的两个问题时的解决办法。
问题1:
上图问题解决地址:https://github.com/nextcloud/server/issues/6193

解决方法:
vim /usr/local/php/etc/php.ini
#添加pcre.jit=0到php.ini配置文件中
pcre.jit=0

在这里插入图片描述

问题2:
#localhost登录时,查找不到驱动。其实是php加载不到mysql.sock文件。但openEuler测试时仍然不能以localhost登录,找不到,以127.0.0.1登录成功,原因见下。
vim /usr/local/php/etc/php.ini

pdo_mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock

使用 localhost 时,访问通过 Unix Socket 进行,带有本机用户权限;使用 127.0.0.1 时,访问通过网络进行,受到防火墙和网卡的限制。
部分问题:
configure: error: Cannot find OpenSSL's <evp.h>
解决:yum install openssl-devel -y
(1/3): openssl-1.1.1t-11.oe1.bclinux.x86_64.r 708 kB/s | 445 kB     00:00    
(2/3): openssl-libs-1.1.1t-11.oe1.bclinux.x86 1.6 MB/s | 1.3 MB     00:00    
(3/3): openssl-devel-1.1.1t-11.oe1.bclinux.x8 2.0 MB/s | 1.7 MB     00:00  
这里遇到rpm冲突,必须更新安装rpm,而不能卸载后再安装,切记

5、服务器关闭ssh后台数据迁移进程不关闭

#安装tumx,在tmux终端下的进程,关闭ssh连接后,并不杀死该ssh会话中启动的进程。
yum install tmux -y

tmux建立会话
#显示tmux会话列表
tmux list-sessions
# 连接tmux指定id的会话
tmux attache-session id(0/1)
# 关闭tmux指定id会话
tmux kill-session -t id(0/1)
#关闭所有tmux会话
tmux kill-server 关闭所有tmux会话

相关文章:

  • 用户界面图形和各种插图网站 UI Graphics
  • 五分钟学会Nacos
  • 从零开始的AI绘画:MidJourney带你掌握AI绘画的基础和高级技巧
  • 封装,继承
  • 【前端架构】Angular,React,Vue那个是2023的最佳选择?
  • 特斯拉的操作系统是用什么语言编写的?
  • 自主HttpServer实现(C++实战项目)
  • 【数据库】什么是 PostgreSQL?开源数据库系统
  • 为什么基础矩阵F的自由度是7
  • 防火墙的NAT技术
  • Pyspark_结构化流3
  • 【云原生】Kubernetes(k8s)部署 MySQL+Dubbo+Nacos服务
  • Linux使用:环境变量指南和CPU和GPU利用情况查看
  • 自学大数据第13天~Hbase数据库操作
  • FPGA 20个例程篇:20.USB2.0/RS232/LAN控制并行DAC输出任意频率正弦波、梯形波、三角波、方波(三)
  • [case10]使用RSQL实现端到端的动态查询
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 2019.2.20 c++ 知识梳理
  • Angular4 模板式表单用法以及验证
  • axios 和 cookie 的那些事
  • canvas 绘制双线技巧
  • Laravel Telescope:优雅的应用调试工具
  • Laravel 菜鸟晋级之路
  • react 代码优化(一) ——事件处理
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • TCP拥塞控制
  • vue数据传递--我有特殊的实现技巧
  • 创建一种深思熟虑的文化
  • 规范化安全开发 KOA 手脚架
  • 记一次删除Git记录中的大文件的过程
  • 近期前端发展计划
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • raise 与 raise ... from 的区别
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 如何在招聘中考核.NET架构师
  • ​Java基础复习笔记 第16章:网络编程
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #QT(QCharts绘制曲线)
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (4)STL算法之比较
  • (js)循环条件满足时终止循环
  • (二)fiber的基本认识
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)ssm码农论坛 毕业设计 231126
  • (力扣题库)跳跃游戏II(c++)
  • (六)DockerCompose安装与配置
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (十三)Flask之特殊装饰器详解
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • .Net CF下精确的计时器
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET delegate 委托 、 Event 事件
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件