【问题标题】:Spatialite not loaded in PHP5 on UbuntuSpatialite 未在 Ubuntu 上的 PHP5 中加载
【发布时间】:2015-12-08 09:50:19
【问题描述】:

我正在尝试在 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

(显然使用了所涉及软件包的更新版本......),我现在已经安装了:

  • PHP 5.5.9-1
  • SQLite 3.9.2
  • Proj4 4.9.2
  • 地理 3.5.0
  • Freexl 1.0.2
  • Spatialite 4.3.0a

我也导出了 /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

欢迎提出任何建议...

非常感谢您!

切萨雷

【问题讨论】:

    标签: apache sqlite php-5.5 spatialite


    【解决方案1】:

    我已经解决了

    $db->loadExtension('mod_spatialite.so');
    

    在我的 PHP 代码中并以这种方式配置 LD_LIBRARY_PATH 环境变量

    export "LD_LIBRARY_PATH=/usr/local/lib" 
    

    【讨论】:

      猜你喜欢
      • 2018-12-27
      • 2014-08-18
      • 2014-12-04
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      • 2014-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多