2012-03-29 10 views
0

Okay, also das ist mein erster Server, den ich aufstelle. Ich habe ein System, auf dem Ubuntu 11.10 läuft. Ich benutze Lighttpd und habe PHP eingerichtet, aber ich möchte, dass PHP und SQLite zusammenarbeiten. Ich installierte sie mit:PHP arbeitet nicht mit SQLite

sudo apt-get install lighttpd 
sudo apt-get install php5-cgi 
sudo apt-get install sqlite 
sudo apt-get install php5-sqlite 

PHP funktioniert gut, aber jedes Skript mit einem SQLite-Befehl in es nur eine leere Seite zurückgibt. Ich drehte mich auf PHP-Fehlermeldungen und lief dieses Skript:

<?php 
echo sqlite_libversion(); 
echo "<br>"; 
echo phpversion(); 
?> 

Welche zurück:

Fatal error: Call to undefined function sqlite_libversion() 

Was schief gelaufen ist? :(

php -m erzeugt dies:

[PHP Modules] bcmath bz2 Kalenderdatum Kern ctype dba dom ereg exif FTP Fileinfo-Filter-Hash gettext iconv json Libxml mbstring mhash Openssl PCNTL pcre PDO pdo_sqlite Phar POSIX Readline- Reflection Sitzung shmop SimpleXML Seife Buchsen SPL sqlite3 Standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter zip zlib

+0

Welche Erweiterung haben Sie in der Datei Php.ini für SQLite festgelegt? –

+0

kannst du php -m posten? – rkosegi

+0

Ich habe geschrieben php -m – Dio

Antwort

1

Haben Sie zugegebene sqlite Erweiterungen in Ihrer php.ini?

Es scheint, dieser Kerl hatte das gleiche Problem: http://forum.alwaysdata.com/viewtopic.php?id=1034

Die Lösung in diesem Thread hinzufügen war

extension=pdo_sqlite.so 
extension=sqlite.so 

php.ini, vorzugsweise unter den "Dynamic Extensions" Abschnitte, aber sie konnten geh irgendwohin.

+0

Bitte fassen Sie den verknüpften Text in dieser Antwort zusammen, sonst ist es nicht von Nutzen, wenn/wenn die Verbindung bricht. –

2

Erweiterung in der php.ini-Datei sollte sein:

extension=pdo_sqlite.so 
extension=sqlite.so 
+1

Wo in der php.ini-Datei sollten sie gehen? – Dio

+0

siehe http://code.google.com/p/umspx/source/browse/trunk/linux/etc/php.ini?r=41 –

2

Nach http://packages.ubuntu.com/oneiric/all/php5-sqlite/filelist die php5-sqlite enthält zwei Erweiterungsmodule

so sieht es aus wie php5-sqlite bietet nicht das Modul, das Sie suchen.
Wenn Sie nicht Tonnen von Legacy-Code haben, empfehle ich eher, verwenden Sie PDO, esp. da das sqlite-Modul wird moved from core php to pecl sein (nichts falsch mit pecl obwohl ...):

Seit PHP 5.0 wurde diese Erweiterung mit PHP gebündelt. Ab PHP 5.4 ist diese Erweiterung nur noch über PECL verfügbar.
+0

Wie installiere ich dieses Modul? – Dio

+0

Ich weiß es wirklich nicht. Ich finde es ziemlich seltsam, dass 'php5-sqlite' drei INI-Dateien zur Verfügung stellt, von denen zwei mit den beiden vom Paket bereitgestellten Modulen übereinstimmen. Und dann gibt es '/ etc/php5/conf.d/sqlite.ini' aber kein' sqlite.so'. Genau genommen handelt es sich hier weniger um eine Entwicklerfrage als vielmehr um eine für Administratoren; Sie erhalten möglicherweise bessere Antworten auf einem der anderen Stackexchange-Server. – VolkerK