gpt4 book ai didi

php - sqlite3 和 pdo_sqlite 未加载到 php apache2 localhost 中,但加载到 php cmd 窗口中

转载 作者:行者123 更新时间:2023-12-02 07:18:23 26 4
gpt4 key购买 nike

问题描述

我使用 Windows 10 操作系统。我已在 C:/Apache24 中安装了 Apache 2.4,在 C:/php7 中安装了 PHP7.4.1。在 Apache 的配置文件 httpd.conf 中,我附加了以下内容



    LoadModule php7_module "c:/php7/php7apache2_4.dll"
#<FilesMatch \.php$>
# SetHandler application/x-httpd-php
#</FilesMatch>
AddType application/x-httpd-php .php
PHPIniDir "C:/php7"

我还通过以下方式修改了php的php.ini文件:

     extension_dir = C:\php7\ext
extension=bz2
extension=curl
;extension=ffi
extension=fileinfo
extension=gd2
extension=gettext
extension=gmp
extension=intl
extension=imap
;extension=ldap
extension=mbstring
extension=exif ; Must be after mbstring as it depends on it
extension=mysqli
;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
;extension=odbc
extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
extension=pdo_odbc
extension=pdo_pgsql
extension=pdo_sqlite
extension=pgsql
extension=shmop
; The MIBS data available in the PHP distribution must be installed.
; See http://www.php.net/manual/en/snmp.installation.php
;extension=snmp
extension=soap
extension=sockets
;extension=sodium
extension=sqlite3
extension=tidy
extension=xmlrpc
extension=xsl

并且仍在 php.ini 中我也进行了修改

     [sqlite3]
; Directory pointing to SQLite3 extensions
; http://php.net/sqlite3.extension-dir
sqlite3.extension_dir = C:\Apache24\htdocs

然后我重启了apache几十次,PC也重启了一次。

问题:

我制作了一个“index.php”文件并将其放置在“c:/apache24/htdocs”中,其中包含以下文本:

    <?php phpinfo(); ?>

在 Chrome Web 浏览器中转到“localhost”,我看到了 PHP 信息文件。但是,---> 它没有启用 sqlite3 或 pdo_sqlite <---。但是,在命令窗口中运行“php -m”,它显示 sqlite3 和 pdo_sqlite 已加载。此外,在 localhost PHP 信息中,它使用在“C:\php7\php.ini”处找到的已加载配置文件,这确实是正确的。

我没有其他想法,为什么 sqlite3 或 pdo_sqlite 在 apache2 中不可见,但在 com 窗口中可见,特别是因为它使用相同的 php.ini 文件。

更新

Apache24\logs 检查“error.log”文件,我可以看到以下警告:

PHP警告:PHP启动:无法加载动态库'pdo_sqlite'(尝试过:C:\\php7\\ext\\pdo_sqlite(找不到指定的模块。),C:\\php7\\ext\\php_pdo_sqlite.dll(找不到指定的模块。))位于第 0 行的未知中
但是,使用 Windows 10 资源管理器可以在 c:\php7\ext 中看到 php_pdo_sqlite.dll,但另一方面 C:\\php7\\ext 不是 Windows 资源管理器的有效路径。我不知道双反斜杠是否仅用于打印,或者实际上它在该路径中搜索。然而 cmd 不受双反斜杠的困扰。我真的不知道该怎么想!

最佳答案

将 Apache 升级到 2.4.41 + 将以下内容添加到我的 httpd.conf 解决了我的问题。

# PHP7

LoadModule php7_module "C:/Php/php7apache2_4.dll"
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php .phtml
PHPIniDir C:/Php

# FIX CURL REQUIRES LIBSSH2
LoadFile "C:/Php/libssh2.dll"
LoadFile "C:/Php/libsqlite3.dll"

关于php - sqlite3 和 pdo_sqlite 未加载到 php apache2 localhost 中,但加载到 php cmd 窗口中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59530576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com