1. php编译 1.1. 安装依赖包 1 yum install sqlite-devel libxml2 libxml2-devel libcurl-devel oniguruma oniguruma-devel
1.2. 编译php 1 2 3 4 cd ~ wget https://www.php.net/distributions/php-7.4.33.tar.gz cd php-7.4.33 ./configure --prefix=/usr/local/php7/ --with-config-file-path=/usr/local/php7 --enable-fpm --enable-mbstring --enable-bcmath --enable-fileinfo --with-openssl --with-zlib --with-iconv --with-curl --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-xml --enable-sockets --enable-soap --enable-cli
如果出现缺少依赖的情况比如下图就是缺少sqllite3的依赖,缺少就用yum安装对应依赖,安装完重新执行./configure --prefix=/usr/local/php7/ --with-config-file-path=/usr/local/php7
1 2 3 4 5 6 7 8 9 10 configure: error: Package requirements (sqlite3 > 3.7.4) were not met: Package 'sqlite3', required by 'virtual:world', not found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables SQLITE_CFLAGS and SQLITE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.
一直到出现下面的提示,才算成功,缺少什么依赖就yum安装什么依赖
1 2 3 4 5 6 7 8 9 10 +--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | +--------------------------------------------------------------------+ Thank you for using PHP.
编译并安装
一直到出现 Build complete
提示就成功了,类似下面这样
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Build complete. Don't forget to run 'make test'. Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20190902/ Installing PHP CLI binary: /usr/local/php7/bin/ Installing PHP CLI man page: /usr/local/php7/php/man/man1/ Installing phpdbg binary: /usr/local/php7/bin/ Installing phpdbg man page: /usr/local/php7/php/man/man1/ Installing PHP CGI binary: /usr/local/php7/bin/ Installing PHP CGI man page: /usr/local/php7/php/man/man1/ Installing build environment: /usr/local/php7/lib/php/build/ Installing header files: /usr/local/php7/include/php/ Installing helper programs: /usr/local/php7/bin/ program: phpize program: php-config Installing man pages: /usr/local/php7/php/man/man1/ page: phpize.1 page: php-config.1 /root/php-7.4.33/build/shtool install -c ext/phar/phar.phar /usr/local/php7/bin/phar.phar ln -s -f phar.phar /usr/local/php7/bin/phar Installing PDO headers: /usr/local/php7/include/php/ext/pdo/
1.3. 配置php 配置php.ini 给php执行程序建立软连接
1 2 cp php.ini-production /usr/local/php7/php.ini ln -s /usr/local/php7/bin/php /usr/bin/php
可以执行php -m
和php -v
测试php是否安装成功
2. 安装达梦数据库DM8 2.1. 准备环境 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 cd ~ # 下载 wget https://download.dameng.com/eco/adapter/DM8/202401END/dm8_20231226_HWarm920_kylin10_sp1_64.zip # 解压 unzip dm8_20231226_HWarm920_kylin10_sp1_64.zip -d ~/dm8 cd ~/dm8 # 创建用户所在的组 groupadd dinstall # 创建用户 useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba # 修改用户密码 需要输入两次密码 注意密码要一致同时最好大小写字母+数字 passwd dmdba # 修改文件打开最大数(重启服务器后永久生效) 下面多行一起复制到EOF再粘贴 回车 cat >> /etc/security/limits.conf <<EOF dmdba hard nofile 65536 dmdba soft nofile 65536 dmdba hard stack 32768 dmdba soft stack 16384 EOF # 挂载iso安装盘 mount dm8_20231226_HWarm920_kylin10_sp1_64.iso /mnt # 创建目录用于安装达梦数据库 mkdir /usr/local/dm8 # 查看临时目录大小 df -h
1 2 3 4 5 6 7 8 9 10 11 [root@ecs-9883 ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.5G 0 1.5G 0% /dev tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs 1.8G 14M 1.7G 1% /run tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup /dev/vda2 39G 6.3G 30G 18% / tmpfs 1.8G 64K 1.8G 1% /tmp /dev/vda1 1022M 5.8M 1017M 1% /boot/efi tmpfs 349M 0 349M 0% /run/user/0 /dev/loop0 984M 984M 0 100% /mnt
注意检查/tmp
,这里显示Size只有1.8G,达梦要求临时目录最小为2G。所以需要执行一个指定临时目录的命令,够大的不用执行。
1 2 3 4 5 6 # 给dmdba用户授予dm8安装目录权限 chown dmdba:dinstall -R /usr/local/dm8/ chmod -R 755 /usr/local/dm8 # 切换到dmdba用户 su - dmdba
指定临时目录 /tmp 目录够大的省略下面这两行
1 2 mkdir ~/tmp export DM_INSTALL_TMPDIR=~/tmp
2.2. 安装 1 2 cd /mnt ./DMInstall.bin -i
提示输入key时输入n 不输入
1 是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
安装类型为1典型安装
1 2 3 4 5 6 安装类型: 1 典型安装 2 服务器 3 客户端 4 自定义 请选择安装类型的数字序号 [1 典型安装]:1
请选择安装目录输入我们自己创建的目录/usr/local/dm8
。
1 2 3 请选择安装目录 [/home/dmdba/dmdbms]:/usr/local/dm8 可用空间: 27G 是否确认安装路径(/usr/local/dm8)? (Y/y:是 N/n:否) [Y/y]:y
安装完成按照提示执行
请以root系统用户执行命令: /usr/local/dm8/script/root/root_installer.sh
安装结束
1 2 3 4 # 切换回root用户 su - root # 执行 /usr/local/dm8/script/root/root_installer.sh
3. 给PHP配置达梦数据库 1 2 3 # 复制达梦的php库到php库目录 cp /usr/local/dm8/drivers/php_pdo/php74* /usr/local/php7/lib/ cp /usr/local/dm8/drivers/php_pdo/libphp74* /usr/local/php7/lib/
修改/usr/local/php7/php.ini
文件,添加达梦配置,可以使用vi命令或sftp客户端修改。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [PHP_DM] extension_dir ="/usr/local/php7/lib/" extension=libphp74_dm.so extension=php74_pdo_dm.so [dm] dm.port=5236 ; 是否允许持久性连接 dm.allow_persistent = 1 ; 允许建立持久性连接的最大数. -1 为没有限制. dm.max_persistent = -1 ; 允许建立连接的最大数(包括持久性连接). -1 为没有限制. dm.max_links = -1 ; 默认的主机地址 dm.default_host = localhost ; 默认登录的数据库 dm.default_db = SYSTEM ; 默认的连接用户名 dm.default_user = SYSDBA ; 默认的连接口令. dm.default_pw = SYSDBA ;连接超时,这个参数未实际的用到,等待服务器支持 dm.connect_timeout = 10 ;对于各种变长数据类型,每列最大读取的字节数。如果它设置为 0 或是小于 0,那么,读取变长字段时,将显示 NULL 值 dm.defaultlrl = 4096 ; 是否读取二进制类型数据,如果它设置为 0,那么二进制将被 NULL 值代替 dm.defaultbinmode = 1 ;是否允许检察持久性连接的有效性,如果设置为 ON,那么当重用一个持久性连接时,会检察该连接是否还有效 dm.check_persistent = ON
设置环境变量指定达梦数据库的安装位置
1 2 3 4 5 cd /etc/ld.so.conf.d/ # 在此目录下创建dm.conf文件 touch dm.conf # 编辑文件在文件里写上达梦的执行文件路径 /usr/local/dm8/bin 也可以用sftp客户端操作 vi dm.conf
执行ldconfig
使环境遍历生效,此时可以执行php -m
检验。