我在Centos7上运行了一个Virtuoso服务器,并且一直试图能够从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设置的帮助或建议。
答案 0 :(得分:0)
您为iODBC和unixODBC驱动程序管理员安装了冲突的软件包。强烈建议您选择其中一个。鉴于您正在使用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
,但能够超越上述报告的错误...这是一种猜测。