1

我有一个 Virtuoso 服务器在 Centos7 上运行,并且一直在尝试能够从 HTML 表单执行 PHP 文件(即使是非常基本的只是为了测试),但没有运气。我发现我必须安装 PHP,并且一直在阅读 virtuoso GitHub README.php5的文档以在 virtuoso 服务器上设置 PHP。这是我第一次设置 PHP,在尝试运行make命令时遇到了问题。我在目录中/etc/php-5.2.10,并且能够运行configure带有所有标志的命令。make我收到的命令的错误是:

/bin/sh /etc/php-5.2.10/libtool --silent --preserve-dup-deps --mode=compile
/etc/php-5.2.10/meta_ccld -I/usr/local/iODBC/include -Iext/odbc/ -I/etc/php-5.2.10/ext/odbc/ 
-DPHP_ATOM_INC -I/etc/php-5.2.10/include -I/etc/php-5.2.10/main -I/etc/php-5.2.10 
-I/usr/local/iODBC/include -I/etc/php-5.2.10/ext/date/lib -I/usr/include/libxml2 
-I/etc/php-5.2.10/ext/mbstring/oniguruma -I/etc/php-5.2.10/ext/mbstring/libmbfl 
-I/etc/php-5.2.10/ext/mbstring/libmbfl/mbfl -I/etc/php-5.2.10/TSRM -I/etc/php-5.2.10/Zend  
-D_REENTRANT  -I/usr/include -g -O2 -pthread -DZTS   
-c /etc/php-5.2.10/ext/odbc/php_odbc.c -o ext/odbc/php_odbc.lo
In file included from /etc/php-5.2.10/ext/odbc/php_odbc.c:37:0:
/etc/php-5.2.10/ext/odbc/php_odbc_includes.h:104:22: fatal error: iodbcext.h:
 No such file or directory
 #include <iodbcext.h>
                  ^
compilation terminated.
make: *** [ext/odbc/php_odbc.lo] Error 1

我不知道这些软件包是否相关,但为了获得更多信息,我还安装了以下软件包:

libiodbc.x86_64 3.52.7-7.el7
libiodbc-devel.x86_64 3.52.7-7.el7
php-odbc.x86_64 5.4.16-36.el7_1
unixODBC.x86_64 2.3.1-10.el7
unixODBC-devel.x86_64 2.3.1-10.el7

我已经跑去sudo find / -iname '*iodbcext.h*'尝试确定该文件的位置,我得到的唯一结果是/usr/include/libiodbc/iodbcext.h. 但是,我不确定这是否是make要查找的内容,或者是否应该在使用的目录中存在另一个php-5.2.10目录,如果那是正确的,我将如何处理它?

非常感谢在 Virtuoso 服务器上设置 PHP 的任何帮助或建议。

4

1 回答 1

0

您为iODBCunixODBC驱动程序管理器安装了冲突的软件包。强烈建议您选择其中一个。鉴于您使用的是Virtuoso(来自我的雇主,OpenLink Software),我建议您选择 iODBC(也由OpenLink Software维护和支持,通常预计会由 Virtuoso 找到)。

PHP 不包含 iODBC SDK ( ),这是可以找到libiodbc-devel.x86_64头文件的位置。iodbcext.h我应该注意,当前版本的 iODBC 是 3.52.10,比您安装的软件包稍晚...

目前尚不清楚您传递了哪些选项configure来获取make正在运行的脚本。您可以通过编辑脚本中第二次出现的 ,将其更改为-I/usr/local/iODBC/include...来克服上面报告的错误,但这只是猜测。make-I/usr/include/libiodbc

于 2015-10-29T00:26:13.123 回答