2024年12月

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升级完成

编译安装python12

yum 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

PHP8.2添加达梦数据库PHP PDO_DM扩展

环境描述

系统环境如下:

  • 银河麒麟高级服务器操作系统V10 SP3 X86架构(X64架构同样适用)
  • 达梦数据库V8版本ISO安装镜像文件 这个需要在达梦官网下载
  • php8.2 nts
  • 基于laravel 9
  • dcat-admin

由于银河麒麟操作系统V10基于CentOS8,并且无法安装epel-release源,更没办法使用Remi源,所以本次安装的PHP8.2假设我们是编译安装的。具体安装教程可以参考另外一篇文章:
国产银河麒麟服务器版(Host)V10 编译安装PHP8.2.

步骤概览

PHP安装PDO_DM模块分为以下几步:

  1. 本地安装达梦数据库V8客户端(服务端、混合安装均可),或者上传其他Linux系统上安装好的达梦数据库 bin目录,以及libphp82_dm.so、php82_pdo_dm.so两个文件
    这里包含了PDO_DM so模块依赖的达梦动态连接库
  2. 设置系统动态链接库路径,新增第一步中自己安装或者拷贝过来的bin目录路径,并重载ldconfig
  3. 拷贝PHP so模块文件到PHP扩展目录
  4. 测试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
-bash: EOF: 没有那个文件或目录
[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链接库依赖哪些库

Steam平台游戏环境篇

Steam Windows平台DirectX

很多游戏都依赖DirectX,每次都要网上搜索官网再下载相当麻烦,这里做了总结。
本站快捷下载:
https://download.qingpc.com/game/steam/dxwebsetup.exe

md5校验码:2cbd6ad183914a0c554f0739069e77d7
sha256校验码: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分钟即可安装完成,具体根你的本地网络速度有关

银河麒麟V10高级服务器操作系统重置root密码

银河麒麟V10高级服务器操作系统忘记root密码,如何重置

启动系统进入单用户模式
进入系统启动项,按e键
m56f4qz8.png

输入grub界面密码

{message type="success" content="默认用户为:admin 密码:Kylin123123"/}

m56f6b8x.png

输入账户密码后进入编辑模式,找到linux开头的行,在行末尾加入rw init=/bin/bash console=tty0编辑完后,'ctrl+x'进入启动项。
编辑后结果如下图:
m56fifhf.png
按'ctrl+x'启动进入密码重置界面
重置密码(需要有大小写特殊字符和数字组成的强密码),成功后,使用/usr/sbin/reboot命令重启启动
m56fkhld.png

参考

1、https://199604.com/2636

windows小技巧

查看Windows最近一次唤醒信息

powercfg -lastwake

windows清理DNS缓存

ipconfig /flushdns

Mac清理DNS缓存

sudo dscacheutil -flushcache

Win11官网镜像

https://software.download.prss.microsoft.com/dbazure/Win11_24H2_Chinese_Simplified_x64.iso?t=a87e7891-5499-487b-b638-7d8d97444ecf&P1=1736825129&P2=601&P3=2&P4=B8DHx%2fa42EQR1XOJT3lEqGE9rI4w116GpZzhEAZ739a6IhVrZnCqV5AIcSc3W0nIuCA7TwKH0T2gAGsdETDcXxEX82rxncwTp%2bVKDo0SPyorjaD1a5fhAfGy0697fVl5cku9cjDhUVrae8dC4MY0ognibLSqyhMMcoLiHILAp82K0VC47hSY9C5kd1oY%2ba1O0jtceMrzpF9%2fEPp2jXyTJvxKlGcQVrTtCESHPq1sAk%2bHH0wXlgLwYU8FmxaDly610cB0Op%2fULC1RbnOK3PmQfyTVobFbz4SSV3aAp7va48%2b2BY5Q1KJRr2vS1zA1cp4wpjcBmzyyndMDXmjLAsoW1A%3d%3d

win11 Hyper-V虚拟机操作

Windows 10下如何彻底关闭 Hyper-V 服务

以管理员身份运行命令提示符
执行命令bcdedit /set hypervisorlaunchtype off
重启,运行vm即可
如果想要恢复hyper启动, bcdedit / set hypervisorlaunchtype auto
参考地址:
https://www.zhihu.com/question/38841757/answer/179656416

如何禁用 Hyper-V

可以在控制面板或使用 Windows PowerShell 禁用 Hyper-V 虚拟机监控程序。
在控制面板中禁用 Hyper-V
若要在控制面板中禁用 Hyper-V,请执行以下步骤:

在“控制面板”中,打开“程序和功能”。
选择“启用或关闭 Windows 功能”。
展开 Hyper-V,展开 Hyper-V 平台,然后清除“Hyper-V 虚拟机监控程序”复选框。
“Hyper-V 虚拟机监控程序”复选框的屏幕截图。
m4uwdqg8.png

在 PowerShell 中禁用 Hyper-V

要使用 Windows PowerShell 禁用 Hyper-V,请按照以下步骤操作:
打开提升权限的 PowerShell 窗口。
运行以下命令:

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor

参考地址:https://learn.microsoft.com/zh-cn/troubleshoot/windows-client/application-management/virtualization-apps-not-work-with-hyper-v

msinfo32 Windows命令工具

可用来查看系统一些硬件信息。命令行下执行即可,或者windows + r 快捷键。

麒麟操作系统安装达梦数据库V8版本

本文主要总结了:中标麒麟安装达梦数据库的全过程
达梦数据库 是一款国产数据库。本文记录了在银河麒麟操作系统下,安装达梦数据库V8.0版本的全过程。
达梦官网:https://www.dameng.com/

在服务器上安装达梦数据库 典型安装
达梦数据库下载地址,需要账号登陆。

然后解压会得到:
dm8_20240930_HG_kylin10_64.iso
dm8_20240930_HG_kylin10_64.iso_SHA256.txt
dm8_20240930_HG_kylin10_64.README

可以把iso文件挂载到目录下即可安装;
这里以/usr/local/src/dbiso为例:
mount -t iso9660 -o loop dm8_20240930_HG_kylin10_64.iso /usr/local/src/dbiso,会得到以下文件:
m4mlbyy8.png

其中:DMInstall.bin就是安装包,安装过程如下:
m4mlhd2f.png
其中的报错会在最后统一列出。

m4mlo4i1.png

m4mloixk.png

按照图中安装即可,画横线的即需要填写的参数。
如果你需要输入key就按操作输入即可,还有时区设置。

安装刚开始遇到的问题

问题1:

未检测到操作系统用户dmdba,请确认操作系统用户dmdba是否存在!

解决: 需要创建达梦dba账号

useradd dmdba

问题2:

安装程序临时目录(/tmp)可用空间为958M。安装程序需要至少2G的临时空间,请调整临时目录的空间或设置环境变量DM_INSTALL_TMPDIR来指定安装程序的临时目录。

解决
给DM_INSTALL_TMPDIR设置一个非/tmp目录即可,这是一个临时目录。

export DM_INSTALL_TMPDIR=/opt

问题3:

解压安装程序.........
硬件架构校验通过!
Exception in thread "main" org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]

解决
这是因为 ./DMInstall.bin 默认使用图形界面安装,我们在命令行就会报这个错加上 -i,切换至交互命令行模式安装即可

./DMInstall.bin -i

数据库创建和启动数据库服务

安装完数据库后添加环境变量

cat >>/etc/bash.bashrc<<EOF
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/dmdbms/bin"
export DM_HOME="/usr/local/dmdbms"
EOF

生成达梦数据库

## 创建必须的目录结构
mkdir -p /data/database/dmdb && chown -R dmdba:dmdba /data/database/dmdb

cd /usr/local/dmdbms/bin && ./dminit path=/data/database/dmdb/ah_dazhang DB_NAME=ah_dazhang PAGE_SIZE=8 EXTENT_SIZE=16 MAIN_DBF_PATH=/data/database/dmdb/ah_dazhang/main.dbf SYSTEM_DBF_PATH=/data/database/dmdb/ah_dazhang/system.dbf ROLL_DBF_PATH=/data/database/dmdb/ah_dazhang/roll.dbf TEMP_DBF_PATH=/data/database/dmdb/ah_dazhang/temp.dbf LOG_SIZE=512 CASE_SENSITIVE=0 CHARSET=1 BUFFER=256 LOG_SIZE=512 SYSDBA_PWD=Ah_dazhang SYSAUDITOR_PWD=Ah_dazhang

注册刚创建的数据库

cd /usr/local/dmdbms/script/root && ./dm_service_installer.sh -t dmserver -p ah_dazhang  -dm_ini /data/database/dmdb/ah_dazhang/ah_dazhang/dm.ini

启动数据库服务

systemctl  status DmServiceah_dazhang.service
systemctl  start  DmServiceah_dazhang.service
systemctl  status DmServiceah_dazhang.service

##检查端口是否已经在监听
ss -ntlp  | egrep "5236|4236"
## 看到有端口则说明,服务启动OK

END

银河麒麟系统编译安装PHP8.2的redis模块

php默认编译没有redis模块
本文记录了银河麒麟服务器操作系统(Host版)V10环境下PHP8.2如何编译安装redis模块。
本文配置在上一篇文章国产银河麒麟服务器版(Host)V10 编译安装PHP8.2基础上进行,有疑问可以先熟悉一下更容易上手。

php redis扩展源码下载

一、编译

yum install gcc  make  libzip autoconf -y
cd /usr/local/src/
wget https://github.com/phpredis/phpredis/archive/refs/tags/5.3.7.tar.gz
tar -zxf 5.3.7.tar.gz 
cd phpredis-5.3.7
/usr/local/php82/bin/phpize
./configure --with-php-config=/usr/local/php82/bin/php-config --enable-redis
make && make install

安装成功后,会输出redis.so已经被发送到 /usr/local/php82/lib/php/extensions/no-debug-non-zts-20220829 目录下。

二、配置启用模块

#如果已经生成过 /usr/local/php82/etc/php.ini 则跳过这一步。
cp /usr/local/src/php-8.2.26/php.ini-development  /usr/local/php82/etc/php.ini 
ln -s /usr/local/php82/etc /etc/php82

#在php.ini文件中开启redis模块
echo "extension=redis" >> /usr/local/php82/etc/php.ini

#检查测试:
php -m | grep redis
能匹配到则说明安装和开启php8.2 redis模块成功。

m4mkv5hy.png