说明:本文为openGauss技术文章征集作品参赛之一。

环境:openEuler20.03 LTS
数据库:openGauss1.0.1
PHP:5.6.30
unixODBC:2.3.0
Apache:2.4.3

1.安装unixODBC

具体请参考官方文档基于ODBC开发

注意,这里请将unixODBC的lib文件权限修改为755,否则可能无法在浏览器上通过PHP访问openGauss。特别是“psqlodbcw.la”和“psqlodbcw.so”文件。

如果openGauss和unixODBC在同一台设备时需在数据库主节点配置文件中增加一条认证规则

local all all trust

不再同一台设备时需配置SSL,也可以关闭SSL设置,具体请参考Data studio普通用户采用非SSL的方式连接openGauss。增加的认证规则是

host all all x.x.x.x/x sha256

如果测试时报错[UnixODBC]connect to server failed: no such file or directory,也有可能是未增加认证规则或错误增加认证规则导致的。

2.Apache安装

这里是使用EulerOS的yum源直接安装Apache和Apache-devel,Apache-devel是必须安装的,不然无法使用PHP。

EulerOSyum源配置(在/etc/yum.repos.d/openEuler.repo上)

[eulerosrepo]
name=EulerOS-2.0SP8 base
baseurl=http://mirrors.huaweicloud.com/euler/2.8/os/aarch64/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.huaweicloud.com/euler/2.8/os/RPM-GPG-KEY-EulerOS

3.PHP安装

首先,找到apxs文件夹所在路径,这个文件夹的路径在接下来的配置中会用到。

find / -name apxs

其次,在PHP安装包解压路径下,进行./configure配置,配置语句如下:

./configure --host=arm-linux --prefix=/usr/local/php --with-apxs2=[刚才的路径] --with-config-file-path=/usr/local/php/etc --with-unixODBC=[unixODBC路径] --enable-fpm --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-readline --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif

这里配置时,缺哪个文件安装哪个文件。

完成截图如下:

3d86209be23fd018f338cc6600ed163d.png

配置时可能会报错config.guess和config.sub错误,修改unixODBC的这两个文件时间戳同openEuler的时间一样即可。

随后进行make和make install。完成截图如下:0bb88c6c9379edaeefdf4faa1bf7bd0e.png

复制php.ini到PHP安装路径下

cp php.ini-production /usr/local/php/etc/php.ini

修改Apache配置文件,在对应的位置添加以下内容

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

重启Apache,PHP安装完成

4.PHP-FPM安装

找到php安装文件

find / -name php

到php目录下etc文件内。

将php-fpm.conf.default复制为php-fpm.conf文件

cp php-fpm.conf.default php-fpm.conf

到php目录下sbin文件

运行php-fpm

./php-fpm

修改Apache配置文件,在其中增加以下语句

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

ProxyRequests Off
ProxyPassMatch "^/(.*\.php(/.*)?)$" "fcgi://127.0.0.1:9000/[php文件的路径]/$1"

调用phpinfo()显示如下:767dc96f65208ef9e9bbb34e523a653e.png

PHP-FPM安装完成

5.配置PHP-FPM内unixODBC环境变量

找到php-fpm.conf文件

find / -name php-fpm.conf

打开php-fpm.conf文件,找到存在大量env的文件段落,在其中加入unixODBC的环境变量(根据自己的配置路径来填写)

其中env表示配置fpm内的环境变量,[]内填写环境变量名,=后填写系统环境变量名(在系统环境变量名前加$)或填写路径,例如下图

6a49ef19471625a3be06e5f52a465169.png

之后,重启PHP-FPM,即可使用浏览器通过PHP访问openGauss数据库。

d2c7e895e1d2a148251ccfa91f96bcd9.png Gauss松鼠会 是汇集数据库爱好者和关注者的大本营, 大家共同学习、探索、分享数据库前沿知识和技术, 互助解决问题,共建数据库技术交流圈。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐