首页
站点统计
技术支持
友链
关于我
Search
1
CentOS7官方停止支持,yum源变更
229 阅读
2
苹果笔记本实现用户登录钉钉通知功能
219 阅读
3
麒麟操作系统安装达梦数据库DM8 V8版本
208 阅读
4
Ubuntu22.04配置vsftp服务
190 阅读
5
台式电脑DIY配置单之2024.06
186 阅读
默认分类
电脑3C
Linux运维
生活杂谈
游戏娱乐
Windows专题
网络互联
登录
Search
标签搜索
PHP
Linux
麒麟OS
Win11
电脑
Typecho
Mac OS
雪中悍刀行
Redis
Joe
windows
祝福
SHELL
Mysql
达梦数据库
阿里云
SSH
CentOS
域名转移
网络
清阳
累计撰写
37
篇文章
累计收到
13
条评论
首页
栏目
默认分类
电脑3C
Linux运维
生活杂谈
游戏娱乐
Windows专题
网络互联
页面
站点统计
技术支持
友链
关于我
搜索到
36
篇与
默认分类
的结果
2025-03-30
华为交换机配置RSTP
配置RSTP功能示例RSTP简介以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质量较差,甚至通信中断。为解决交换网络中的环路问题,提出了生成树协议STP(Spanning Tree Protocol)。STP(Spanning Tree Protocol)是用来解决网络中环路问题的协议。运行该协议的设备通过彼此交互信息而发现网络中的环路,并适当对某些端口进行阻塞以消除环路。与众多协议的发展过程一样,生成树协议也是随着网络的发展而不断更新的,从最初的IEEE 802.1D中定义的STP到IEEE 802.1w中定义的快速生成树协议RSTP(Rapid Spanning Tree Protocol),再到最新的IEEE 802.1s中定义的多生成树协议MSTP(Multiple Spanning Tree Protocol)。生成树协议中,MSTP兼容RSTP、STP,RSTP兼容STP。三种生成树协议的比较如表5-5所示。表5-5 三种生成树协议的比较生成树协议特点应用场景STP形成一棵无环路的树,解决广播风暴并实现冗余备份。收敛速度较慢。无需区分用户或业务流量,所有VLAN共享一棵生成树。RSTP形成一棵无环路的树,解决广播风暴并实现冗余备份。收敛速度快。MSTP形成多棵无环路的树,解决广播风暴并实现冗余备份。收敛速度快。多棵生成树在VLAN间实现负载均衡,不同VLAN的流量按照不同的路径转发。需要区分用户或业务流量,并实现负载分担。不同的VLAN通过不同的生成树转发流量,每棵生成树之间相互独立。配置注意事项本例适用于S600-E交换机的所有版本所有产品。与终端相连的端口不用参与RSTP计算,建议将其设置为边缘端口或去使能STP。组网需求在一个复杂的网络中,网络规划者由于冗余备份的需要,一般都倾向于在设备之间部署多条物理链路,其中一条作主用链路,其他链路作备份。这样就难免会形成环形网络,若网络中存在环路,可能会引起广播风暴和MAC表项被破坏。网络规划者规划好网络后,可以在网络中部署RSTP协议预防环路。当网络中存在环路,RSTP通过阻塞某个端口以达到破除环路的目的。如图5-17所示,当前网络中存在环路,SwitchA、SwitchB、SwitchC和SwitchD都运行RSTP,通过彼此交互信息发现网络中的环路,并有选择的对某个端口进行阻塞,最终将环形网络结构修剪成无环路的树形网络结构,从而防止报文在环形网络中不断循环,避免设备由于重复接收相同的报文造成处理能力下降。图5-17 配置RSTP功能组网图配置思路采用以下思路配置RSTP功能:在处于环形网络中的交换设备上配置RSTP基本功能,包括:配置环网中的设备生成树协议工作在RSTP模式。配置根桥和备份根桥设备。配置端口的路径开销值,实现将该端口阻塞。使能RSTP,实现破除环路。配置保护功能,实现对设备或链路的保护。例如:在根桥设备的指定端口配置根保护功能。操作步骤配置RSTP基本功能配置环网中的设备生成树协议工作在RSTP模式配置SwitchA的RSTP工作模式。 system-view[HUAWEI] sysname SwitchA[SwitchA] stp mode rstp配置交换设备SwitchB的RSTP工作模式。 system-view[HUAWEI] sysname SwitchB[SwitchB] stp mode rstp配置交换设备SwitchC的RSTP工作模式。 system-view[HUAWEI] sysname SwitchC[SwitchC] stp mode rstp配置交换设备SwitchD的RSTP工作模式。 system-view[HUAWEI] sysname SwitchD[SwitchD] stp mode rstp配置根桥和备份根桥设备配置SwitchA为根桥。[SwitchA] stp root primary配置SwitchD为备份根桥。[SwitchD] stp root secondary配置端口的路径开销值,实现将该端口阻塞端口路径开销值取值范围由路径开销计算方法决定,这里选择使用华为计算方法为例,配置将被阻塞端口的路径开销值为20000。同一网络内所有交换设备的端口路径开销应使用相同的计算方法。配置SwitchA的端口路径开销计算方法为华为计算方法。[SwitchA] stp pathcost-standard legacy配置SwitchB的端口路径开销计算方法为华为计算方法。[SwitchB] stp pathcost-standard legacy配置SwitchC的端口路径开销计算方法为华为计算方法。[SwitchC] stp pathcost-standard legacy配置SwitchC端口GigabitEthernet0/0/1端口路径开销值为20000。[SwitchC] interface gigabitethernet 0/0/1[SwitchC-GigabitEthernet0/0/1] stp cost 20000[SwitchC-GigabitEthernet0/0/1] quit配置SwitchD的端口路径开销计算方法为华为计算方法。[SwitchD] stp pathcost-standard legacy使能RSTP,实现破除环路将与PC机相连的端口设置为边缘端口配置SwitchB端口GigabitEthernet0/0/2为边缘端口。[SwitchB] interface gigabitethernet 0/0/2[SwitchB-GigabitEthernet0/0/2] stp edged-port enable[SwitchB-GigabitEthernet0/0/2] quit(可选)配置SwitchB的BPDU保护功能。[SwitchB] stp bpdu-protection配置SwitchC端口GigabitEthernet0/0/2为边缘端口。[SwitchC] interface gigabitethernet 0/0/2[SwitchC-GigabitEthernet0/0/2] stp edged-port enable[SwitchC-GigabitEthernet0/0/2] quit(可选)配置SwitchC的BPDU保护功能。[SwitchC] stp bpdu-protection如果与边缘端口相连的是使能了STP功能的网络设备,配置BPDU保护功能后,如果边缘端口收到BPDU报文,边缘端口将会被shutdown,边缘端口属性不变。设备全局使能RSTP设备SwitchA全局使能RSTP。[SwitchA] stp enable设备SwitchB全局使能RSTP。[SwitchB] stp enable设备SwitchC全局使能RSTP。[SwitchC] stp enable设备SwitchD全局使能RSTP。[SwitchD] stp enable配置保护功能,如在根桥设备的指定端口配置根保护功能在SwitchA端口GigabitEthernet0/0/1上配置根保护功能。[SwitchA] interface gigabitethernet 0/0/1[SwitchA-GigabitEthernet0/0/1] stp root-protection[SwitchA-GigabitEthernet0/0/1] quit在SwitchA端口GigabitEthernet0/0/2上配置根保护功能。[SwitchA] interface gigabitethernet 0/0/2[SwitchA-GigabitEthernet0/0/2] stp root-protection[SwitchA-GigabitEthernet0/0/2] quit验证配置结果经过以上配置,在网络计算稳定后,执行以下操作,验证配置结果。在SwitchA上执行display stp brief命令,查看端口状态和端口的保护类型,结果如下:[SwitchA] display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 DESI FORWARDING ROOT 0 GigabitEthernet0/0/2 DESI FORWARDING ROOT将SwitchA配置为根桥后,与SwitchB、SwitchD相连的端口GigabitEthernet0/0/2和GigabitEthernet0/0/1在生成树计算中被选举为指定端口,并在指定端口上配置根保护功能。在SwitchB上执行display stp interface gigabitethernet 0/0/1 brief命令,查看端口GigabitEthernet0/0/1状态,结果如下:[SwitchB] display stp interface gigabitethernet 0/0/1 brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 DESI FORWARDING NONE 端口GigabitEthernet0/0/1在生成树选举中成为指定端口,处于FORWARDING状态。在SwitchC上执行display stp brief命令,查看端口状态,结果如下:[SwitchC] display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 ALTE DISCARDING NONE 0 GigabitEthernet0/0/2 DESI FORWARDING NONE 0 GigabitEthernet0/0/3 ROOT FORWARDING NONE 端口GE0/0/1在生成树选举中成为Alternate端口,处于DISCARDING状态。端口GE0/0/3在生成树选举中成为根端口,处于FORWARDING状态。配置文件SwitchA的配置文件# sysname SwitchA # stp mode rstp stp instance 0 root primary stp pathcost-standard legacy # interface GigabitEthernet0/0/1 stp root-protection # interface GigabitEthernet0/0/2 stp root-protection # return SwitchB的配置文件 # sysname SwitchB # stp mode rstp stp bpdu-protection stp pathcost-standard legacy # interface GigabitEthernet0/0/2 stp edged-port enable # return SwitchC的配置文件# sysname SwitchC # stp mode rstp stp bpdu-protection stp pathcost-standard legacy # interface GigabitEthernet0/0/1 stp instance 0 cost 20000 # interface GigabitEthernet0/0/2 stp edged-port enable # returnSwitchD的配置文件# sysname SwitchD # stp mode rstp stp instance 0 root secondary stp pathcost-standard legacy # return
2025年03月30日
2 阅读
0 评论
0 点赞
2025-03-22
Typecho之Joe主题开启文章目录功能
Typecho之Joe主题开启文章目录功能本文参考其他博客,整理配置了Typecho博客的Joe主题文章目录功能,希望能够帮到你一、环境介绍假设网站根目录为:/data/www主题目录为:usr/theme/Gmork二、资源下载途径可以参考https://github.com/typecho-fans/plugins/releases/download/plugins-M_to_R/MenuTree.zip也可以使用本站快捷下载三、下载并解压插件到指定目录cd /data/www/usr/plugins wget https://download.gmork.cc/typecho/joe/MenuTree.zip unzip MenuTree.zip四、修改主题模版cd /data/www编辑usr/themes/Gmork/public/aside.php文件,预留目录空间,添加如下代码<section class="joe_aside__item menu-tree" style="display:none;"> <div class="joe_aside__item-title menu_title"> <svg t="1642997936013" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2169" width="128" height="128"><path d="M838.3 895.9H197.9c-53.9 0-97.7-43.8-97.7-97.7V236.7c0-53.9 43.8-97.7 97.7-97.7h640.3c53.9 0 97.7 43.8 97.7 97.7v561.4c0.1 53.9-43.7 97.8-97.6 97.8zM197.9 203.8c-18.1 0-32.9 14.8-32.9 32.9v561.4c0 18.1 14.8 32.9 32.9 32.9h640.3c18.1 0 32.9-14.8 32.9-32.9V236.7c0-18.1-14.8-32.9-32.9-32.9H197.9z" fill="#666666" p-id="2170"></path><path d="M695.1 455.2H341.2c-17.9 0-32.4-14.5-32.4-32.4s14.5-32.4 32.4-32.4h353.9c17.9 0 32.4 14.5 32.4 32.4s-14.5 32.4-32.4 32.4zM695.1 578.2H341.2c-17.9 0-32.4-14.5-32.4-32.4s14.5-32.4 32.4-32.4h353.9c17.9 0 32.4 14.5 32.4 32.4s-14.5 32.4-32.4 32.4zM695.1 701.2H341.2c-17.9 0-32.4-14.5-32.4-32.4s14.5-32.4 32.4-32.4h353.9c17.9 0 32.4 14.5 32.4 32.4s-14.5 32.4-32.4 32.4zM379.1 281.1c-17.9 0-32.4-14.5-32.4-32.4V115.4c0-17.9 14.5-32.4 32.4-32.4s32.4 14.5 32.4 32.4v133.2c0 17.9-14.5 32.5-32.4 32.5zM657.1 281.1c-17.9 0-32.4-14.5-32.4-32.4V115.4c0-17.9 14.5-32.4 32.4-32.4s32.4 14.5 32.4 32.4v133.2c0 17.9-14.5 32.5-32.4 32.5z" fill="#666666" p-id="2171"></path></svg> <span class="text">目录</span> </div> <?php $this->treeMenu(); ?> </section>代码添加完如下图:五、编写CSS样式文件编写 assets/css/menutree.css,样式文件/*,侧边栏目录导航只在文章页面生效*/ .joe_post + .joe_aside > section { display: none; } .joe_post + .joe_aside > .author { display: block; } .joe_post + .joe_aside > .menu-tree { display: block !important; } .menu-tree { background: var(--background); padding: 15px 0px; top: 50px; position: sticky; } .index-menu { max-height: 500px; overflow-y:auto; overflow-x:hidden; margin-top: 10px; } /** 父元素<ul>与其中的子元素<li> **/ .index-menu-item { margin: 10px 0px; } .index-menu-list { margin: 5px 0px 5px 10px; } /** 所有<a>标签 **/ .index-menu-link{ color: var(--main); transition:all 0.2s ease-in-out 0s; padding:5px 0px; } .index-menu-link:hover { color: var(--theme); text-shadow: var(--text-shadow); font-weight:500; } /* 锚点跳转定位 */ .menu-target-fix { display: block; position: relative; /* 偏移量 */ top:-100px; } /* 在宽度小于1000px的设备上隐藏短划线,以使目录的标题正常显示 */ @media screen and (max-width:1000px) { .joe_aside__item-title > .line { display:none; } } /* 在宽度小于800px的设备上隐藏目录侧边栏 */ @media screen and (max-width:800px) { .menu-tree{ display:none; } }六、在typecho中引用样式文件编辑Joe主题文件夹post.php文件,在标签中添加以下代码<link rel="stylesheet" href="<?php $this->options->themeUrl('assets/css/menutree.css'); ?>">七、最后在Typecho管理后台启用目录插件切记选择独立模式八、测试效果图
2025年03月22日
15 阅读
0 评论
0 点赞
2025-01-24
恭贺新春-新年快乐
恭贺新春-新年快乐新年快乐!!!{lamp/}烟火起 照人间 举杯敬此年烟花落 四季平 举杯贺新碎年年有今日 岁岁有今朝年年有风 风吹年年家人闲坐,辞旧迎新旧疾当愈 新年可期岁岁常欢愉 年年皆善意{lamp/}::(太开心) ::(太开心) ::(太开心) ::(太开心) ::(太开心) ::(太开心)
2025年01月24日
31 阅读
0 评论
2 点赞
2025-01-08
Linux常用操作
Linux常用操作Linux常用操作主要包含Shell命令行等命令fail2ban封禁和解封指定IP#fail2ban把IP加入黑名单 fail2ban-client set sshd banip 1.1.1.1 #fail2ban把IP从黑名单移除 fail2ban-client set sshd unbanip 1.1.1.1 返回1为成功,0即表示规则没有发生变化,即操作失败(说明IP本来就在列表或者不在列表中)ulimit参数优化ulimit -a编辑 /etc/security/limits.confroot soft nofile 1024000 root hard nofile 1024000 root soft nproc 1024000 root hard nproc 1024000 * soft nofile 1024000 * hard nofile 1024000 * soft nproc 1024000 * hard nproc 1024000 * soft core unlimited * soft stack 10240立即生效命令:ulimit -uSHDebian12安装常用软件apt install locales-all -y apt install rsyslog -y systemctl start rsyslog systemctl enable rsyslog systemctl restart fail2ban.service systemctl status fail2ban.service apt update apt install command-not-found sudo strace iftop iotop -y apt install vim htop -y apt install netcat-openbsd htop wget curl mtr nmap tcpdump bind9-utils lrzsz rsync git -y apt install sysstatiftop iotop lsof strace -y apt install unzip unrar-free dos2unix tree tmux screen -y apt install nginx php php-fpm nodejs python3-pip redis-server -y apt install composer docker-compose -y apt install inotify-tools -y apt install fail2ban -y apt install php php-{fpm,mysql,curl,zip,xml,gd,mbstring,bcmath,soap,ldap,oauth,redis,yaml,gd,curl,pdo,dom,zip,xml} -y apt install python3-certbot-nginx certbot -ySSL证书常用操作openssl x509 -in /etc/letsencrypt/live/gmork.cc/cert.pem -text
2025年01月08日
37 阅读
0 评论
0 点赞
2024-12-29
CentOS7.9 python3 Can‘t connect to Https URL Because the SSL module is not available(已解决)
CentOS7.9 python3 Can‘t connect to Https URL Because the SSL module is not available(已解决)问题概览CentOS7.9编译安装Python3.10运行python脚本的时候报Can‘t connect to Https URL Because the SSL module is not available.当然,这个问题和python3 -c "import ssl" 报错是同一个问题经排查发现是系统openssl版本过低导致的。python3.10依赖的ssl 1.1.1以上的版本。{message type="success" content="注意:其实在编译python3过程中,会输出openssl版本过低的信息,只不过没有突出显示,不仔细查看,难以发现。"/}OK,发现问题之后,已经查明的原因,解决起来就容易多了。我们重新编译安装Openssl,升级系统的openssl版本到1.1.1以上即可解决。这里我们升级至 1.1.1w(openssl官网有更新的3.x ssl版本,但是我们服务器是centos7属于比较旧的版本,对 ssl 3.x兼容性有问题,所以先不用3.x的)编译安装Openssl#安装前先检查Openssl的版本 openssl version #OpenSSL 1.0.2k-fips 26 Jan 2017 yum install perl-core zlib-devel -y cd /usr/local/src wget -S “https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gz” tar -zxvf openssl-1.1.1w.tar.gz cd openssl-1.1.1w ./config --prefix=/usr/local/openssl make && make install mv /usr/bin/openssl /usr/bin/openssl.bak mv /usr/include/openssl /usr/include/openssl.bak ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl ln -s /usr/local/openssl/include/openssl /usr/local/openssl echo "/usr/local/openssl/lib" > /etc/ld.so.conf.d/openss111w.conf #然后再次检查openssl版本 openssl version #OpenSSL 1.1.1w 11 Sep 2023 (Library: OpenSSL 1.1.1k FIPS 25 Mar 2021) #openssl的目录路径 openssl version -d 》》 OPENSSLDIR: "/usr/local/openssl/ssl"openssl升级完成编译安装python12yum install libffi-devel.x86_64 libdb-devel uuid-devel.x86_64 tk-devel.x86_64 zlib-static.x86_64 zlib-devel -y cd /usr/local/src/ wget https://www.python.org/ftp/python/3.12.6/Python-3.12.6.tgz tar -zxvf Python-3.12.6.tgz cd Python-3.12.6 openssl version -d #这个命令找到openssl根目录 》》 OPENSSLDIR: "/usr/local/openssl/ssl" --with-openssl=参数填写这个路径 cd /usr/local/src/ cd Python-3.12.6 cat >> Modules/Setup<<EOF SSL="/usr/local/openssl" _ssl _ssl.c \ -DUSE_SSL -I"\$(SSL)"/include -I"\$(SSL)"/include/openssl \ -L"\$(SSL)"/lib -lssl -lcrypto EOF ./configure --prefix=/usr/local/python3.12 --with-openssl=/usr/local/openssl/ssl && make && make install测试/usr/local/python3.12 -r "import ssl" #不报错,则说明模块引入成功Python虚拟环境[root@centos-12 opt]# mkdir -p /var/www [root@centos-12 opt]# cd /var/www/ [root@centos-12 www]# ls [root@centos-12 www]# python3 -m venv myenv [root@centos-12 www]# ls myenv [root@centos-12 www]# source myenv/bin/activate (myenv) [root@centos-12 www]# (myenv) [root@centos-12 www]# python Python 3.12.8 (main, Dec 30 2024, 13:22:30) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import ssl >>> (myenv) [root@centos-12 www]# deactivate [root@centos-12 www]# [root@centos-12 www]# python Python 2.7.5 (default, Nov 14 2023, 16:14:06) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> python虚拟环境总结python3 -m venv myenv ## 使用Python venv模块创建了 名为myenv,当前目录下会生成一个myvenv目录 source myenv/bin/activate ## 激活进入 myenv虚拟环境 deactivate ## 退出虚拟环境 /var/www/myenv/bin/python3 ## 使用绝对路径直接引用Python虚拟环境 /var/www/myenv/bin/pip ## 使用绝对环境直接引用 虚拟环境中的pip
2024年12月29日
42 阅读
0 评论
0 点赞
PHP8.2添加达梦数据库PHP PDO_DM扩展
PHP8.2添加达梦数据库PHP PDO_DM扩展环境描述系统环境如下:银河麒麟高级服务器操作系统V10 SP3 X86架构(X64架构同样适用)达梦数据库V8版本ISO安装镜像文件 这个需要在达梦官网下载php8.2 nts基于laravel 9dcat-admin由于银河麒麟操作系统V10基于CentOS8,并且无法安装epel-release源,更没办法使用Remi源,所以本次安装的PHP8.2假设我们是编译安装的。具体安装教程可以参考另外一篇文章:国产银河麒麟服务器版(Host)V10 编译安装PHP8.2.步骤概览PHP安装PDO_DM模块分为以下几步:本地安装达梦数据库V8客户端(服务端、混合安装均可),或者上传其他Linux系统上安装好的达梦数据库 bin目录,以及libphp82_dm.so、php82_pdo_dm.so两个文件这里包含了PDO_DM so模块依赖的达梦动态连接库设置系统动态链接库路径,新增第一步中自己安装或者拷贝过来的bin目录路径,并重载ldconfig拷贝PHP so模块文件到PHP扩展目录测试PDO_DM功能开始:本地安装达梦数据库V8客户端先从达梦官网下载iso程序镜像到/usr/local/src目录之后按照以下命令执行:[root@kylin-server-2 src]# cd /usr/local/src/ [root@kylin-server-2 src]# mkdir dmdbiso [root@kylin-server-2 src]# ls dm8_20240930_HG_kylin10_64.iso dmdbiso php-8.2.26 php-8.2.26.tar.gz [root@kylin-server-2 src]# pwd /usr/local/src [root@kylin-server-2 src]# mount -o loop dm8_20240930_HG_kylin10_64.iso dmdbiso/ mount: /usr/local/src/dmdbiso: WARNING: source write-protected, mounted read-only. [root@kylin-server-2 src]# ls dmdbiso/ 'DM8 Install.pdf' DMInstall.bin ###下面3行设置系统环境,为达梦数据库安装做准备 [root@kylin-server-2 src]# useradd dmdba [root@kylin-server-2 src]# export DM_INSTALL_TMPDIR=/usr/local [root@kylin-server-2 src]# cd dmdbiso/ [root@kylin-server-2 dmdbiso]# #开始安装 [root@kylin-server-2 dmdbiso]# ./DMInstall.bin -i 安装语言: [1]: 简体中文 [2]: English 请选择安装语言 [1]: 1 解压安装程序......... 硬件架构校验通过! core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 7546 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 7546 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited 可打开文件数过少,建议至少设置为65536或更多。 欢迎使用达梦数据库安装程序 是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]: N 是否设置时区? (Y/y:是 N/n:否) [Y/y]: N 安装类型: 1 典型安装 2 服务器 3 客户端 4 自定义 请选择安装类型的数字序号 [1 典型安装]: 1 所需空间: 2170M 请选择安装目录 [/opt/dmdbms]: /usr/local/dmdbms 可用空间: 37G 是否确认安装路径(/usr/local/dmdbms)? (Y/y:是 N/n:否) [Y/y]: Y 安装前小结 安装位置: /usr/local/dmdbms 所需空间: 2170M 可用空间: 37G 版本信息: 有效日期: 安装类型: 典型安装 是否确认安装? (Y/y:是 N/n:否): Y 2024-12-27 10:16:39 [INFO] 安装达梦数据库... 2024-12-27 10:16:40 [INFO] 安装 基础 模块... 2024-12-27 10:16:46 [INFO] 安装 服务器 模块... 2024-12-27 10:16:48 [INFO] 安装 客户端 模块... 2024-12-27 10:16:51 [INFO] 安装 驱动 模块... 2024-12-27 10:16:53 [INFO] 安装 手册 模块... 2024-12-27 10:16:54 [INFO] 安装 服务 模块... 2024-12-27 10:16:54 [INFO] 移动日志文件。 2024-12-27 10:16:55 [INFO] 正在启动DmAPService服务... 2024-12-27 10:16:55 [INFO] 启动DmAPService服务成功。 2024-12-27 10:16:55 [INFO] 安装达梦数据库完成。 安装结束 [root@kylin-server-2 dmdbiso]# cd /usr/local/src/ [root@kylin-server-2 dmdbiso]# umount dmdbiso达梦数据库安装完成。上图中有一部分提示我们ulimit参数没有优化,本文最后有优化ulimit参数方法。达梦数据库目录如下:(yum install tree -y 安装tree命令)[root@kylin-server-2 ~]# tree /usr/local/dmdbms -L 1 /usr/local/dmdbms ├── bin #pdo_扩展依赖的动态链接库目录 ├── bin2 ├── desktop ├── doc ├── drivers #驱动目录,达梦数据库php Pdo驱动模块文件就在这个路径下的php_pdo目录 ├── include ├── jar ├── jdk ├── license_chs.txt ├── license_cht.txt ├── license_en.txt ├── log ├── samples ├── script ├── tool ├── uninstall └── uninstall.sh [root@kylin-server-2 ~]# ls /usr/local/dmdbms/drivers/php_pdo libphp52_dm.so libphp54_dm.so libphp56ts_dm.so libphp72_dm.so libphp74ts_dm.so libphp82_dm.so php52ts_pdo_dm.so php55_pdo_dm.so php70ts_pdo_dm.so php73_pdo_dm.so php80ts_pdo_dm.so php83_pdo_dm.so libphp52ts_dm.so libphp54ts_dm.so libphp70_dm.so libphp72ts_dm.so libphp80_dm.so libphp82ts_dm.so php53_pdo_dm.so php55ts_pdo_dm.so php71_pdo_dm.so php73ts_pdo_dm.so php81_pdo_dm.so php83ts_pdo_dm.so libphp53_dm.so libphp55_dm.so libphp70ts_dm.so libphp73_dm.so libphp80ts_dm.so libphp83_dm.so php53ts_pdo_dm.so php56_pdo_dm.so php71ts_pdo_dm.so php74_pdo_dm.so php81ts_pdo_dm.so libphp53_mysql.so libphp55ts_dm.so libphp71_dm.so libphp73ts_dm.so libphp81_dm.so libphp83ts_dm.so php54_pdo_dm.so php56ts_pdo_dm.so php72_pdo_dm.so php74ts_pdo_dm.so php82_pdo_dm.so libphp53ts_dm.so libphp56_dm.so libphp71ts_dm.so libphp74_dm.so libphp81ts_dm.so php52_pdo_dm.so php54ts_pdo_dm.so php70_pdo_dm.so php72ts_pdo_dm.so php80_pdo_dm.so php82ts_pdo_dm.so本次php PDO_DM模块只需要关注 /usr/local/dmdbms/bin 和/usr/local/dmdbms/drivers/php_pdo这两个目录下内容。把达梦bin目录下的动态库文件添加到系统动态库加载项[root@kylin-server-2 ~]# echo "/usr/local/dmdbms/bin" > /etc/ld.so.conf.d/php-dm.conf [root@kylin-server-2 ~]# ldconfig ldconfig: /usr/local/dmdbms/bin/libxerces-c-3.1.so 不是符号链接 ldconfig: /usr/local/dmdbms/bin/libgeos_c.so.1 不是符号链接 #(这两条警告信息可忽略) [root@kylin-server-2 ~]# 拷贝达梦 php 模块文件到PHP扩展目录下本次一并操作了 php的dm模块和PDO_DM模块[root@kylin-server-2 ~]# cp /usr/local/dmdbms/drivers/php_pdo/libphp82_dm.so /usr/local/php82/lib/php/extensions/no-debug-non-zts-20220829/ [root@kylin-server-2 ~]# cp /usr/local/dmdbms/drivers/php_pdo/php82_pdo_dm.so /usr/local/php82/lib/php/extensions/no-debug-non-zts-20220829/修改php.ini,引入达梦数据库模块[root@kylin-server-2 ~]# echo "extension=libphp82_dm" >> /etc/php82/php.ini [root@kylin-server-2 ~]# echo "extension=php82_pdo_dm" >> /etc/php82/php.ini [root@kylin-server-2 ~]# echo 'export PATH=$PATH:/usr/local/php82/bin' >> /etc/bashrc [root@kylin-server-2 ~]# source !$ source /etc/bashrc注意{message type="error" content="如果测试中报以下错误,一定要及时排查。否则造成的一切后果自负案例一、如果测试报这个错误,一定要修复,一定不要重启服务器,会导致静态IP丢失,本人本地虚拟机亲测"/}[root@kylin-server-2 ~]# php -m php: relocation error: /usr/lib64/libcurl.so.4: symbol SSLv3_client_method version OPENSSL_1_1_0 not defined in file libssl.so.1.1 with link time reference{message type="warning" content="出现这个错误的原因是 /etc/ld.so.conf.d/php-dm.conf 执行这一步时,没有使用php-dm.conf文件名,而是自定义了其他文件名,由于文件名不同可能导致加载动态链接库顺序不一致,libssl.so类似这样的同名文件不同内容库,相互影响了。解决办法是:修改php-dm.conf(这里是你自己起的文件名,改成其他的或者干脆就跟作者一样使用 php-dm.conf 做名字然后ldconfig再次测试 php -m | grep -i dm)"/}配置完成,检测[root@kylin-server-2 ld.so.conf.d]# php -m | grep -i dm dm PDO_DM #这里显示dm和PDO_DM模块已经被安装并且成功加载了。 ## 然后使用以下脚本检测Pdo模块功能 [root@kylin-server-1 ~]# cd /tmp/ [root@kylin-server-1 tmp]# cat >dm_db.php<<EOF <?php try { //数据库链接字符串 $dn="dm:host=192.168.12.10;port=5236;dbname=PHP"; $pdo = new PDO($dn,"PHP","b5KJqM4F57"); //用户名 ,密码<br> $query="SELECT * FROM PHP.\"tgs\""; //测试查询语句 $stmt = $pdo->query($query); if(!$stmt)//如果出现了错误,获得错误信息 { echo "<pre>"; echo $pdo->errorCode(); print_r($pdo->errorInfo()); echo "</pre>"; die(); } $stmt->execute(); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); echo "<pre>"; print_r($rows); echo "</pre>"; }catch(PDOException $e){ print "Error: " . $e->getMessage()."<br/>"; } EOF [root@kylin-server-1 tmp]# php dm_db.php <pre>Array ( [0] => Array ( [id] => 1 [name] => 来自PHP PDO_DM模块的检测 ) [1] => Array ( [id] => 2 [name] => bbb1 ) ) </pre>[root@kylin-server-1 tmp]# ## 测试表需要自己创建,我这里是名为PHP模式下的tgs表,有id和name两列。查到此内容则表示测试OK.优化ulimit参数方法#先查看当前设置: [root@kylin-server-2 ~]# ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 7546 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 7546 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited [root@kylin-server-2 ~]# ulimit -SHn 65535 cat >> /etc/security/limits.conf<<EOF * soft nofile 1024000 * hard nofile 1024000 * soft nproc 1024000 * hard nproc 1024000 * soft core unlimited * soft stack 10240 EOF ## 再次查看ulimit设置 [root@kylin-server-2 ~]# ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 7546 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65535 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 7546 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited 这里已经看到参数修改好了。可用的命令ldconfig ##重载系统动态链接库 ldconfig -v ##查看重载链接库详细过程,并显示链接库名 ldd libssl.so ##查看libssl.so链接库依赖哪些库
2024年12月22日
138 阅读
0 评论
0 点赞
2024-12-22
Steam平台游戏环境篇
Steam平台游戏环境篇Steam Windows平台DirectX很多游戏都依赖DirectX,每次都要网上搜索官网再下载相当麻烦,这里做了总结。本站快捷下载:https://download.gmork.cc/game/steam/dxwebsetup.exemd5校验码:2cbd6ad183914a0c554f0739069e77d7sha256校验码:2cf71d098c608c56e07f4655855a886c3102553f648df88458df616b26fd612f官网下载地址:https://download.microsoft.com/download/1/7/1/1718CCC4-6315-4D8E-9543-8E28A4E18C4C/dxwebsetup.exe微软官网:https://www.microsoft.com/zh-cn/download/details.aspx?id=35下载完成后,根据提示安装即可,安装过程中也会一并下载其他依赖包,耐心等待3-10分钟即可安装完成,具体根你的本地网络速度有关
2024年12月22日
81 阅读
0 评论
0 点赞
2024-12-21
银河麒麟V10高级服务器操作系统重置root密码
银河麒麟V10高级服务器操作系统重置root密码银河麒麟V10高级服务器操作系统忘记root密码,如何重置启动系统进入单用户模式进入系统启动项,按e键输入grub界面密码{message type="success" content="默认用户为:admin 密码:Kylin123123"/}输入账户密码后进入编辑模式,找到linux开头的行,在行末尾加入rw init=/bin/bash console=tty0编辑完后,'ctrl+x'进入启动项。编辑后结果如下图:按'ctrl+x'启动进入密码重置界面重置密码(需要有大小写特殊字符和数字组成的强密码),成功后,使用/usr/sbin/reboot命令重启启动参考1、https://199604.com/2636
2024年12月21日
104 阅读
0 评论
0 点赞
1
2
...
5