【问题标题】:how to enable sqlite3 for php?如何为 php 启用 sqlite3?
【发布时间】:2010-10-31 05:43:13
【问题描述】:

我正在尝试在 Ubuntu 中为 PHP 安装 sqlite3。

我安装 apt-get php5-sqlite3 并编辑 php.ini 以包含 sqlite3 扩展。

当我运行 phpinfo(); 时,我得到了

SQLITE3
SQLite3 support  enabled  
sqlite3 library version  3.4.2  

如上所示,sqlite3 已启用。但是,当我使用时,我得到“Class SQLite3 not found”

 new SQLite3("database");

【问题讨论】:

    标签: php sqlite


    【解决方案1】:

    编辑:此答案已过时,但无法删除,因为它已被接受。请参阅 Stacey Richards 的解决方案以获得正确答案。

     sudo apt-get install php5-cli php5-dev make
     sudo apt-get install libsqlite3-0 libsqlite3-dev
     sudo apt-get install php5-sqlite3
     sudo apt-get remove php5-sqlite3
     cd ~
     wget http://pecl.php.net/get/sqlite3-0.6.tgz
     tar -zxf sqlite3-0.6.tgz
     cd sqlite3-0.6/
     sudo phpize
     sudo ./configure
     sudo make
     sudo make install
     sudo apache2ctl restart
    

    来自ubuntu form

    【讨论】:

    • 倒数第二个命令应该是sudo checkinstall(在运行sudo apt-get install checkinstall之后。如果您不打算使用带有包管理器的操作系统,为什么还要使用它呢?
    • 这是过时的建议。例如forum.linode.com/viewtopic.php?p=39974
    • 请删除这个答案!下面有一个方式更好的答案,并且投票强烈支持它!
    • 我做了次好的事情,在一个非常明显的“跳过这个”中进行了编辑。
    • 2015年今天是apt-get install php5-sqlite
    【解决方案2】:

    SQLite3 PDO 驱动被命名为 SQLite,而不是 SQLite3,所以你可以这样做:

    new SQLite("database");
    

    对于 SQLite2 数据库:

    new SQLite2("database");
    

    【讨论】:

      【解决方案3】:

      试试:

      apt-get install php5-sqlite
      

      这对我有用。

      【讨论】:

      • php5-sqlite3 包不存在了。
      • 绝对是最简单的解决方案。
      • 或者,对于 CentOS,sudo yum install php-sqlite3 -y
      • 这也在/etc/php5/apache2/conf.d中添加了一个PHP配置文件;它甚至重新启动了 Apache,尽管出于某种原因我不得不再次重新启动它才能使更改生效。
      • 或者,如果是 Ubuntu 16.0.4 Xenial,sudo apt install php-sqlite3
      【解决方案4】:

      如果没有来自forum thread 的其余说明(如下解释),则接受的答案是不完整的,链接到:

      cd /etc/php5/conf.d
      
      cat > sqlite3.ini
      # configuration for php SQLite3 module
      extension=sqlite3.so
      ^D
      
      sudo /etc/init.d/apache2 restart
      

      【讨论】:

      • 我以为你还得修改 php.conf 文件?
      • 至少在 Ubuntu 14.04 上,这一步是不需要的,因为已经有一个 sqlite3.ini as /etc/php5/mods-available/sqlite3.ini
      【解决方案5】:

      试试这个:

      sudo apt-get --purge remove php5*
      sudo apt-get install php5 php5-sqlite php5-mysql
      sudo apt-get install php-pear php-apc php5-curl
      sudo apt-get autoremove
      sudo apt-get install php5-sqlite
      sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
      

      【讨论】:

      • 我猜 OP 需要知道一些配置更改。仅安装所需的软件并不能回答问题。
      • 小心这些命令!虽然这实际上可以工作,但通知这将删除并清除所有以“php5”开头的包会很有用。换句话说,它将同时删除核心文件和配置文件。
      • 这对我有用!!!清理然后重新安装所有这些东西很好....除了倒数第二个命令 install php-sqlite .....这与第二个命令中发生的事情是一样的吗?也许在某些情况下需要它,但它似乎对我没有任何作用
      【解决方案6】:

      在你尝试安装之前我想补充一点

      apt-get install php5-sqlite
      

      apt-get install php5-sqlite3 
      

      搜索给定的包是否可用:-

       # apt-cache search 'php5'
      

      之后你会得到:-

      php5-rrd - rrd module for PHP 5
      
      php5-sasl - Cyrus SASL extension for PHP 5
      
      php5-snmp - SNMP module for php5
      
      **php5-sqlite - SQLite module for php5**
      
      php5-svn - PHP Bindings for the Subversion Revision control system
      
      php5-sybase - Sybase / MS SQL Server module for php5
      

      在这里您可以了解您的版本是否支持.. 在我的系统中,我得到 php5-sqlite - php5 的 SQLite 模块 所以我更喜欢安装

      **apt-get install php5-sqlite**
      

      【讨论】:

        【解决方案7】:
        sudo apt-get install php5-cli php5-dev make
        
        sudo apt-get install libsqlite3-0 libsqlite3-dev
        
        sudo apt-get install php5-sqlite3
        
        sudo apt-get remove php5-sqlite3
        
        cd ~
        
        wget http://pecl.php.net/get/sqlite3-0.6.tgz
        
        tar -zxf sqlite3-0.6.tgz
        
        cd sqlite3-0.6/
        
        sudo phpize
        
        sudo ./configure
        

        这对我有用。

        【讨论】:

        • 谢谢你,这是工作:apt-get install libsqlite3-0 libsqlite3-dev
        【解决方案8】:

        对于 PHP7,根据您的 PHP 版本(7.0、7.2、7.4 等)更改以下内容并运行

        sudo apt-get install php7.0-sqlite3
        

        然后重启 Apache

        sudo apache2ctl restart
        

        【讨论】:

        • 对于 php 7.2 sudo apt-get install php7.2-sqlite
        • E: 找不到包 php7.3-sqlite3
        【解决方案9】:

        在 Centos 6.7 中,就我而言,库文件 /usr/lib64/php/modules/sqlite3.so 丢失了。

        yum install php-pdo 
        
        vim /etc/php.d/sqlite3.ini
        ; Enable sqlite3 extension module
        extension=sqlite3.so
        
        sudo service httpd restart
        

        【讨论】:

          【解决方案10】:

          只使用:

          sudo apt-get install php5-sqlite
          

          以后

          sudo service apache2 restart
          

          【讨论】:

            【解决方案11】:

            取决于 PHP 的版本。对于 php7.0,以下命令有效:
            sudo apt-get install php7.0-sqlite3
            然后重启 Apache 服务器:
            sudo service apache2 restart

            【讨论】:

              【解决方案12】:

              对于 Ubuntu 18.04 和 PHP 7.2:

              sudo apt install php-sqlite3

              【讨论】:

              • 您需要在上面的命令之前执行apt-get update 以使其执行没有错误。
              【解决方案13】:

              对于 Debian 发行版。直到我在 apt 源上添加 debian 主存储库(我不知道它们是如何被删除的)之前,没有任何效果: sudo vi /etc/apt/sources.list

              并添加

              deb  http://deb.debian.org/debian  stretch main
              deb-src  http://deb.debian.org/debian  stretch main
              

              之后是sudo apt-get update(你也可以升级),最后是sudo apt-get install php-sqlite3

              【讨论】:

                【解决方案14】:

                这会在这里淹死,但我用这个解决了我的问题:

                据我所知,/usr/local/lib 中有一个名为libsqlite3.so.0 的错误文件指向libsqlite3.so.0.8.6。据我所知,它是通过 php7.3-* 软件包安装的。

                我重命名了文件以防万一需要它。使用命令:

                cd /usr/local/lib sudo mv libsqlite3.so.0 ./libsqlite3.so.0.back

                但您也可以直接删除它: rm libsqlite3.so.0

                引导我找到答案的线程:link

                这解决了我的问题,我希望他们也能解决你的问题:)

                【讨论】:

                  【解决方案15】:

                  php-7.2、php-7.3 和 php-7.4 的 Debian/Ubuntu 方式(例如 [234] 部分)

                  sudo apt install php7.[234]-sqlite
                  sudo phpenmod sqlite3
                  

                  请务必注意,在适用于 Linux 版本 1 (WSL1) 的 Windows 子系统上,SQlite 的(文件)锁定系统已损坏。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2010-10-30
                    • 2011-12-08
                    • 2014-06-07
                    • 2012-10-21
                    • 2023-04-08
                    相关资源
                    最近更新 更多