2015-12-08 3 views
0

Я пытаюсь установить Spatialite (4.3.0a) на Ubuntu (14.94.2 LTS) ..... Я бы хотел использовать его с PHP (5.5.9-1) ....Spatialite не загружен в PHP5 на Ubuntu

После этого поста

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/местные/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 File

<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 

так что кажется, что Somthing происходит не так с погрузочным SpatiaLite.

Моя конфигурация php.ini это следовать

[sqlite] 
http://php.net/sqlite.assoc-case 
sqlite.assoc_case = 0 

[sqlite3] 
sqlite3.extension_dir = /var/www/html/test/sqlite3_ext 

В/вар/WWW/HTML/тест/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

Я решил положить

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

в моем PHP кода и настройки переменной LD_LIBRARY_PATH ENV в thsis образом

export "LD_LIBRARY_PATH=/usr/local/lib"