我试图在Ubuntu(14.94.2 LTS)上安装Spatialite(4.3.0a).....我想在PHP(5.5.9-1)中使用它... ..
关注这篇文章
https://faimsproject.atlassian.net/wiki/display/FAIMS/Installing+Spatialite+4+on+Ubuntu
(显然使用所涉及的软件包的更新版本......),我现在已安装:
我还导出了/ usr / local / lib
export "LD_LIBRARY_PATH=/usr/local/lib"
似乎SQLITE 3和Spatialite工作正常......
sqlite3 myDB
SQLite version 3.9.2 2015-11-02 18:31:45
Enter ".help" for usage hints.
sqlite> SELECT load_extension('mod_spatialite');
sqlite> SELECT sqlite_version();
3.9.2
sqlite> SELECT spatialite_version();
4.3.0a
sqlite> SELECT proj4_version();
Rel. 4.9.2, 08 September 2015
sqlite> SELECT geos_version();
3.5.0-CAPI-1.9.0 r4084
sqlite> .quit
但是如果我尝试执行这个简单的PHP文件
<html>
<head>
<title>Testing SpatiaLite on PHP</title>
</head>
<body>
<h1>testing SpatiaLite on PHP</h1>
<?php
# connecting some SQLite DB
# we'll actually use an IN-MEMORY DB
# so to avoid any further complexity;
# an IN-MEMORY DB simply is a temp-DB
$db = new SQLite3(':memory:');
# loading SpatiaLite as an extension
$db->loadExtension('/usr/local/lib/mod_spatialite.so');
# enabling Spatial Metadata
# using v.2.4.0 this automatically initializes SPATIAL_REF_SYS
# and GEOMETRY_COLUMNS
$db->exec("SELECT InitSpatialMetadata()");
# reporting some version info
$rs = $db->query('SELECT sqlite_version()');
while ($row = $rs->fetchArray())
{
print "<h3>SQLite version: $row[0]</h3>";
}
$rs = $db->query('SELECT spatialite_version()');
while ($row = $rs->fetchArray())
{
print "<h3>SpatiaLite version: $row[0]</h3>";
}
?>
</body>
</html>
......结果是
testing SpatiaLite on PHP
SQLite version: 3.9.2
因此加载Spatialite似乎出现了问题。
我的php.ini配置如下
[sqlite]
http://php.net/sqlite.assoc-case
sqlite.assoc_case = 0
[sqlite3]
sqlite3.extension_dir = /var/www/html/test/sqlite3_ext
在/ var / www / html / test / sqlite3_ext中有
-rwxr-xr-x 1 cesare cesare 15527574 Dec 1 22:17 libspatialite.so
-rwxr-xr-x 1 cesare cesare 15944537 Dec 2 22:28 mod_spatialite.so
任何建议都表示赞赏......
非常感谢你!
切萨雷
答案 0 :(得分:0)
我已经解决了
$db->loadExtension('mod_spatialite.so');
在我的PHP代码中以及以这种方式配置LD_LIBRARY_PATH env变量
export "LD_LIBRARY_PATH=/usr/local/lib"