环境简介:
虚拟机版本:CentOS Linux release 7.4.1708
httpd版本:httpd-2.2.34
PHP版本:php-5.5.38
zabbix版本:zabbix-3.0.3
目录说明:
httpd、php、zabbix均安装在了/test下了,所有和目录相关的配置项可根据自己的目录进行更改。
一、首先安装zabbix可能依赖的包
yum install -y libxml2 libxml2-devel curlcurl-devel libjpeg libpng freetype libjpeg-devel libpng-devel freetype-devel
yum install -y libssh2-devel net-snmp-devel OpenIPMI-devel
yum install -y apr apr-devel apr-uti apr-util-devel
二、安装httpd
1.编译:
./configure --prefix=/test/httpd--enable-module=so
2.安装:
make install
3.将zabbix下的PHP文件拷贝到httpd目录下:
cp zabbix-3.0.3/frontends/php/*httpd/htdocs/ -r
4.将httpd/htdocs/include/下的db.inc.php替换为dm的。
5.修改httpd.conf配置文件,修改详情见附件httpd.conf。
三、安装php
1.编译:
./configure --prefix=/test/php--with-config-file-path=/test/php/etc --enable-fpm --with-fpm-user=php-fpm--with-fpm-group=php-fpm --with-oci8=/install_pkg/oracle_tmp--with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir--with-iconv-dir --with-zlib-dir --enable-soap --enable-gd-native-ttf--enable-ftp --enable-mbstring --enable-exif --disable-ipv6 --with-pear--with-curl --enable-bcmath --enable-sockets --with-gettext --with-apxs2=/test/httpd/bin/apxs
2.安装:
make install
3.配置dm php(详情可参考DM7_Program.pdf手册):
a.将ext目录拷贝到php目录下:
cp ext/ /test/php/ -r
b.在httpd.conf文件中添加
DirectoryIndex default.php default.phtmldefault.php3 default.html default.htm
AddType application/x-httpd-php .php.phtml .php3 .inc
AddType application/x-httpd-php-source.phps
c.修改php.ini配置文件
定位php.ini文件:
[root@cc2 other]# locate php.ini
/install_pkg/other/php.ini
/install_pkg/php-5.5.38/php.ini-development
/install_pkg/php-5.5.38/php.ini-production
[root@cc2 other]# cp/install_pkg/php-5.5.38/php.ini-development /test/php/etc/php.ini
修改/test/php/etc/php.ini文件:
Directory in which the loadable extensions(modules) reside.
http://php.net/extension-dir
extension_dir = "./"
On windows:
extension_dir=/test/php/ext //注意路径为绝对路径
extension=libphp55_dm.so
注:这部分添加到最后,以免被开启的默认值覆盖掉
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
always_populate_raw_post_data = -1
添加dm模块:
[dm]
dm.allow_persistent = 1
dm.max_persistent = -1
dm.max_links = -1
dm.default_host = localhost
dm.default_user = SYSDBA
dm.default_pw = SYSDBA
dm.connect_timeout = 10
dm.defaultlrl = 4096
dm.defaultbinmode = 1
dm.check_persistent = ON
四、安装zabbix
1.修改源码
vim zabbix-3.0.3/src/libs/zbxdb/db.c ,共两处:
2.修改dm_svc.conf内容(屏蔽关键字):
KEYWORDS=(function,object,value)
3.修改SQL脚本:
zabbix-3.0.3/database/oracle/images.sql中的目录路径为/install_pkg/zabbix-3.0.3/misc/images
4.导入zabbix数据:
sp_set_para_value(1,'PWD_POLICY',0);
create user ZABBIX identified by"ZABBIX";
grant resource to zabbix;
利用disql(zabbix用户)依次执行zabbix-3.0.3/database/oracle/下三个脚本:
schema.sql
images.sql
data.sql
创建两个视图:
create or replace view col as selecttable_name tname,column_name cname from USER_TAB_COLUMNS;
create or replace view tab as selecttable_name tname,'TABLE' tabtype from USER_TABLES;
5.编译zabbix:
编译之前需先配置环境变量,oracle_tmp文件夹下是编译zabbix所需的oracle库文件:
exportLD_LIBRARY_PATH=/install_pkg/oracle_tmp:$LD_LIBRARY_PATH
./configure --prefix=/test/zabbix--with-oracle=/install_pkg/oracle_tmp --with-net-snmp --with-libcurl--with-libxml2 --enable-server --enable-agent --enable-proxy --with-ssh2--with-openipmi --enable-java
6.安装:
make install
7.配置zabbix服务端,修改 /test/zabbix/etc/zabbix_server.conf文件这几项:
SourceIP=127.0.0.1
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=ZABBIX
DBPort=5236
AllowRoot=1
8.安装时依赖的是oracle的客户端库文件libclntsh.so.11.1,启动时需替换成达梦的,方式是:将附件中的 libclntsh.so.11.1.dm_debug (记得改为和oracle同名)拷进dm的bin文件夹下,然后设置环境变量:
exportLD_LIBRARY_PATH=/opt/dmdbms/bin:$LD_LIBRARY_PATH
并通过 ldd /test/zabbix/sbin/zabbix_server查看是否已指向dm的库。
9.确认环境无误后,可启动服务端:
/test/zabbix/sbin/zabbix_server
10.在浏览器中输入地址 http://你的IP/setup.php,进入以下页面:
按照提示填写相关信息,最后跳转到以下页面,即说明配置完成:
注:编译zabbix时提示缺什么包就安装什么包即可,我的系统在配置时最小化安装,所以把开头那些安装了以后,应该就不会缺什么了。
注:通过以下方式可确认php.ini文件路径是否正确
在/test/httpd/htdocs目录下,新建文件vim phpinfo.php,内容为:<?php phpinfo();?>,在http://localhost/phpinfo.php页面中可查看php相关信息
注:测试PHP是否连上dm,在httpd/htdocs下创建dmtest.php,内容如下:
<?php
$link = dm_connect("localhost","SYSDBA", "SYSDBA")
or die("Could not connect : " .dm_error());
print "Connected successfully";
dm_close($link);