Php

PHP 啟用 sqlite phpinfo states –without-sqlite

  • August 13, 2013

我見過類似的問題,但沒有一個能充分解決我的情況。我在亞馬遜雲伺服器上執行 Apache 和 PHP 5.3.6。

phpinfo 一直聲明 sqlite 已禁用。至少從配置行看起來是這樣的:

'./configure' ... '--without-sqlite'

在 phpinfo() 輸出的其他部分:

PDO
PDO drivers     mysql, sqlite
PDO Driver for SQLite 3.x   enabled
SQLite Library  3.6.20 

sqlite3
SQLite3 support enabled
SQLite3 module version  0.7-dev
SQLite Library  3.6.20

Directive   Local Value Master Value
sqlite3.extension_dir   no value    no value

並且至少有一個以下 PHP 命令失敗:

if (!extension_loaded('SQLite') OR !function_exists('sqlite_open'))

Yum install 表明已經安裝了 sqlite 和 pdo-lite。

我試圖通過編輯我的本地 php.ini 來啟用 sqlite,方法是添加:

; Enable sqlite3 extension module
extension=sqlite3.so

我已經檢查了主要的 php.ini (/etc/php.ini) 並沒有關於禁用它的具體內容。事實上,在 php.d 中載入了一個子 conig 文件,它也指定了這個副檔名以及 pdo-sqlite 的另一個

我正在尋找或嘗試的東西。有什麼建議麼。

如何找到說明 PHP 配置的位置?

謝謝

您的程式碼沒有正確指定副檔名,所以它當然會失敗。如我們所見,正確的副檔名是sqlite3.

if (!extension_loaded('SQLite')...

反正。

PHP 的 RPM 建構實際上將 PHP 重新建構了四次。它在沒有啟用任何擴展的情況下建構一次,用於載入到 Apache 中mod_php,然後使用所有擴展作為共享記憶體對象再次建構。還有一個 PHP 命令行的建構,以及我現在忘記其用途的第四個建構。

所以發生的情況是,沒有內置擴展的建構與從其他建構建構的擴展捆綁在一起。因此 PHP 可能會說它被配置為沒有任何擴展,但仍然可以使用它們。

引用自:https://serverfault.com/questions/313822