我正在尝试运行PHP这段代码来测试与我的数据库的连接:
<?php
$dsn = "database name";
$username = "user name";
$password = "";
$conn = odbc_connect($dsn, $username, $password);
$q = "select version()";
$r = odbc_exec($conn, $q);
echo odbc_result($r, "Version") . "Hi";
?>
当我使用php&#39; s -f选项运行它时,它会给我预期的输出:
数据库版本+嗨
但是当我在网络浏览器中打开它时,它只会输出:
你好
我的apache错误日志告诉我
找不到数据源名称,并且未指定默认驱动程序
但应该是......
所以我的问题是,为什么呢?我怀疑它可能需要对我的odbc驱动程序的权限做一些事情......但我不知道从哪里开始......
编辑:Web服务器的设置过程:
sudo apt-get update
sudo apt-get install apache2
sudo apt-get install libapache2-mod-php7.0
sudo apt-get install unixodbc-dev
我希望那些关于我为Web服务器所做的事情 之后我将apache2.conf(httpd.config)中的用户名更改为我的实际用户,因为我希望它与我当前的useraccount一起运行(注意我没有在&#34; / etc /中更改它)的apache2 / envvars中&#34;
我在Ubuntu 16上运行
答案 0 :(得分:0)
我现在得到了解决方案: 不知怎的,我声明的环境设置不被apache用户使用。因此,他在查找ODBC.ini文件时遇到问题。为了解决这个问题,我将以下两行添加到我的php连接文件中:
putenv('ODBCINI=/demo_application/Build/odbc.ini');
putenv('ODBCSYSINI=/demo_application/Build/');