Začínáme->part2->PHP extension ‚sqlite‘ is not loaded

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
yumpa
Člen | 3
+
0
-

Ahoj, začínám jak s PHP, tak s Nette. Stáhnul jsem si ze seriálu „Začínáme“ tutorial.datagrid.part2.zip a nemůžu ho rozchodit. Na localhostu se mi zobrazí chyba v souboru /var/www/DataGrid/libs/dibi/drivers/sqlite.php Line: 65:

<?php
if (!extension_loaded('sqlite')) {
   throw new DibiDriverException("PHP extension 'sqlite' is not loaded.");
}
?>

Pak jsem to ještě zkusil spustit na mém hostingu u Isolu a tam se zobrazilo jen:

Server Error
The server encountered an internal error and was unable to complete your request. Please try again later.
Nette Framework

Nevíte někdo, co dělám špatně?

vic11sk
Člen | 11
+
+1
-

Aj ja som mal tento problém. Panda mi poradil tohle:

Nemáš načtené v PHP rozšíření pro práci s SQLite databází.

Musíš si upravit php.ini, konkrétně povolit rozšíření

extension=php_pdo.dll
extension=php_sqlite.dll

Odvtedy mi fungujú tie príklady.

yumpa
Člen | 3
+
0
-

Díky za tip. Zkusil jsem to a po restartu se nic nestalo. Stále to zobrazuje stejnou chybu. Možná to bude tím, že používám Ubuntu, ne windows. Nemáte někdo ještě nějaký nápad?

Panda
Člen | 569
+
+1
-
sudo apt-get install php5-sqlite
yumpa
Člen | 3
+
0
-

Téda. Nevím, co říct. Včera jsem měl narozeniny a tohle je nejlepší dárek. Po 2 dnech rozchodit tenhle příklad. Děkuju

Panda
Člen | 569
+
0
-

yumpa napsal(a):

Téda. Nevím, co říct. Včera jsem měl narozeniny a tohle je nejlepší dárek. Po 2 dnech rozchodit tenhle příklad. Děkuju

Není vůbec za co a přeji vše nejlepší k narozeninám, byť trochu opožděně. :-)

22
Člen | 1478
+
0
-

řeším stejný problém na IIS6-FastCGI-PHP 5.3.1 na server přistupuji z lokalni sítě. Extensions v php.ini povoleny vč. správné cesty na extensions, *.dll na místě. Nějaký nápad, co je blbě? :-(
MySQL chodí, jak má.

piler
Člen | 111
+
0
-

Ja mam tiez problem. Na serveri (rackspace) je to sqlite nainstalovane ako pdo_sqlite a tym padom to neprejde cez kontrolu:

<?php
if (!extension_loaded('sqlite')) {
	throw new InvalidStateException("SQLite extension is required for storing tags and priorities.");		}
?>

Skusil som zakomentovat tuto kontrolu, ale nasledne som dostal dalsiu chybu:

Call to undefined function sqlite_open();

na

<?php
$this->db = sqlite_open($this->dir . '/cachejournal.sdb');
?>

Na supporte rackspace tvrdia, ze nemozu nainstalovat iba sqlite, kvoli nejakym obmedzeniam.

Co sa s tym da spravit? Dik za rady

piler
Člen | 111
+
0
-

Nic ine sa s tym neda robit? Natrafil som na dalsi hosting, kde sqllite extension nie je, ale len pouzitie cez PDO. Dost to zamrzi, ak sa to cachovanie pouzit neda.

Dik za nejaku odpoved.

Majkl578
Moderator | 1364
+
0
-

piler napsal(a):

Ja mam tiez problem. Na serveri (rackspace) je to sqlite nainstalovane ako pdo_sqlite a tym padom to neprejde cez kontrolu:

<?php
if (!extension_loaded('sqlite')) {
	throw new InvalidStateException("SQLite extension is required for storing tags and priorities.");		}
?>

Skusil som zakomentovat tuto kontrolu, ale nasledne som dostal dalsiu chybu:

Call to undefined function sqlite_open();

na

<?php
$this->db = sqlite_open($this->dir . '/cachejournal.sdb');
?>

Na supporte rackspace tvrdia, ze nemozu nainstalovat iba sqlite, kvoli nejakym obmedzeniam.

Co sa s tym da spravit? Dik za rady

PDO a sqlite rozšíření jsou dvě různé věci. Logicky ti nebude fungovat sqlite_open, když ho pdo_sqlite nenabízí. Nech si nainstalovat sqlite rozšíření nebo změň hosting (až mě překvapuje, že je někde nenainstalované).

Patrik Votoček
Člen | 2221
+
0
-

Dávejte si pozor pokud provozujete Nette na PHP 5.3.x tam je totiž standardně nainstalované SQLite3 u PHP 5.2 to je SQLite2. Nette používá SQLite2 takže pokud jste ho dodatečně neinstalovaly SQLite2 musíte tak udělat a to i u Nette pro PHP 5.3 (té s namespace)!

piler
Člen | 111
+
0
-

PDO a sqlite rozšíření jsou dvě různé věci. Logicky ti nebude fungovat sqlite_open, když ho pdo_sqlite nenabízí. Nech si nainstalovat sqlite rozšíření nebo změň hosting (až mě překvapuje, že je někde nenainstalované).

To mi je jasne, ze su to dve rozdielne veci. Hosting je na rackspace, za ktory platime 400 libier mesacne. A tym padom dostavame kvalitne spravovany hosting. A ako mi bolo povedane s rackspace, tak so security reasons nie je mozne pouzit sqlite, ale treba pristupovat cez PDO.

Nasiel som aj niekde na php.net vysvetlenie preco, ale neviem sa teraz k tomu dopatrat.

piler
Člen | 111
+
0
-

vrtak-cz napsal(a):

Dávejte si pozor pokud provozujete Nette na PHP 5.3.x tam je totiž standardně nainstalované SQLite3 u PHP 5.2 to je SQLite2. Nette používá SQLite2 takže pokud jste ho dodatečně neinstalovaly SQLite2 musíte tak udělat a to i u Nette pro PHP 5.3 (té s namespace)!

To je dobre vediet, dik :)