Linux 7+APACHE+PHP7.2+DM8
一、环境准备
1、安装部署好DM数据库
具体安装部署不再详述,可以去eco.dameng.com 达梦云适配中心了解
2、安装包准备,如下
apr-1.7.0.tar.gz
apr-util-1.6.1.tar.gz
pcre-8.44.tar.gz
httpd-2.4.46.tar.gz
php-7.2.10.tar.gz
源码包可以去 https://pkgs.org/ 或者各官网下载
3、创建相应目录
cd /usr/local
mkdir apache2
mkdir apr
mkdir apr-util
mkdir pcre
mkdir php
4、将源码包解压到对应的目录
tar -zxvf httpd-2.4.46.tar.gz -C /usr/local/apache2/
tar -zxvf apr-1.7.0.tar.gz -C /usr/local/apr
tar -zxvf apr-util-1.6.1.tar.gz -C /usr/local/apr-util/
tar -zxvf pcre-8.44.tar.gz -C /usr/local/pcre/
tar -zxvf php-7.2.10.tar.gz -C /usr/local/php/
二、安装apr
cd /usr/local/apr/apr-1.7.0/
./configure --prefix=/usr/local/apr
make
make install
三、安装apr-util
报错: make的时候报(xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录)。
解决办法:
这是因为没有装expat原因导致,可以通过挂载yum源 yum install -y expat-devel 来解决
cd /usr/local/apr-util/apr-util-1.6.1/
./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config
make
make install
四、安装pcre
下面警告可以忽略
cd /usr/local/pcre/pcre-8.44/
./configure --prefix=/usr/local/pcre
make
make install
五、安装配置apache
报错1:
解决办法
cp -r /usr/local/apr/apr-1.7.0 /usr/local/apache2/httpd-2.4.46/srclib/apr
cp -r /usr/local/apr-util/apr-util-1.6.1 /usr/local/apache2/httpd-2.4.46/srclib/apr-util
报错2:
checking whether to enable mod_ssl… configure: error: mod_ssl has been requested but can not be built due to prerequisite failures
解决办法
yum install openssl-devel
cd /usr/local/apache2/httpd-2.4.46/
./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --enable-ssl --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-modules=most --enable-mpms-shared=all --with-mpm=event --with-included-apr
yum install openssl-devel
make
make install
安装Apache完成后,配置Apache文件
cd /usr/local/apache2/conf
vi http.conf
添加:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .php7
进入apache安装目录bin目录下,启动apache
cd /usr/local/apache2/bin/
./apachectl -k start
ps -ef|grep httpd
在浏览器里输入服务器ip地址,如果出现It Works!说明成功。
六、安装PHP
报错1
configure: error: libxml2 not found. Please check your libxml2 installation.
解决办法
yum install libxml2
yum install libxml2-devel -y
cd /usr/local/php/php-7.2.10/
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs
make
make install
cp php.ini-development /usr/local/php/lib/php.ini
cd /usr/local/apache2/htdocs/
vi test.php
<?php
phpinfo();
?>
重启apache服务,再访问 http://IP/test.php
在该页面中有几个重要配置信息注意,如下:
php.ini路径
PHP版本是否为安全线程(本次是线程安全版,使用TS版本DM_PDO)
extension_dir加载路径
拷贝达梦PHP_PDO模块文件至extension_dir 路径
cp /opt/dmdbms/drivers/php_pdo/* /usr/local/php/lib/php/extensions/no-debug-zts-20170718
配置php.ini文件
vi /usr/local/php/lib/php.ini
extension=libphp72ts_dm.so
extension=php72ts_pdo_dm.so
[dm]
dm.allow_persistent = 1
dm.default_host = localhost
dm.default_user = SYSDBA
dm.default_pw = SYSDBA
dm.defaultlrl = 4096
dm.check_persistent = ON
重启Apache,刷新PHP页面,如果DM模块能加载成功说明部署完成。如下
测试PHP连接DM数据库
vi /usr/local/apache2/htdocs/dm.php
<?php
try{
/* 连接选择数据库 */
$link = dm_connect("localhost", "SYSDBA", "SYSDBA") or die("Could not connect : " . dm_error());
print "Connected successfully\n";
/* 执行 SQL 查询 */
$query = " select * from v\$version;";
$result = dm_exec($link,$query) or die("Query failed : " . dm_error());
while ($line = dm_fetch_array($result, 0)) {
foreach ($line as $col_value) {
print_r ($col_value);
}
}
dm_free_result($result);
/* 断开连接 */
dm_close($link);
}
catch(PDOException $e){
print( "Error: " . $e->getMessage())."\n";
}
?>
最后http://IP/dm.php页面查询出来结果代表成功