PHP 扩展未通过 httpd 找到,但可以从 CLI 找到,具有相同的 php.ini

2023-12-31

我想在安装 PHP 7.1 和 Apache 2.4 后在我的 Windows 7 上使用它的一些扩展。我编写了一个小测试脚本index.php调用给定扩展的某些功能。

<?php
    var_dump(mb_strlen('p'));
    var_dump(mysqli_connect_error());

并取消注释相应的行php.ini, like

...
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_exif.dll      ; Must be after mbstring as it depends on it
extension=php_mysqli.dll
;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
...

并根据Windows特定部分配置extension_dirphp.ini

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
; extension_dir = "ext"

extension_dir = "ext" 

我重新启动了 Apache Web 服务器并获取了http://localhost/index.php http://localhost/index.php。我收到错误消息:

致命错误:未捕获错误:调用 C:\Program Files\Apache24\htdocs 中未定义的函数 mb_strlen()...

这意味着扩展未加载。

我仔细检查了php.ini我所做的修改与phpinfo()在浏览器中显示:

Loaded Configuration File    C:\Program Files\php\php.ini 

相反,如果我不是通过网络服务器而是从命令行启动相同的index.php,那么我会得到不同的输出:

C:\Program Files\Apache24\htdocs>"C:\Program Files\php\php.exe" index.php
int(1)
NULL

这意味着扩展已正确加载。

命令行 PHP 使用相同的php.ini:

c:\Program Files\Apache24\htdocs>php -i|find "Loaded Configuration File"
Loaded Configuration File => C:\Program Files\php\php.ini

怎么会是same php.ini文件从命令行加载扩展,但通过 Web 服务器使用时不加载它们?


与 php.ini 中的描述相反,extension_dir应指定完整路径,而不仅仅是相对路径。更改行php.ini from

extension_dir = "ext"

to

extension_dir = "C:/Progra~1/php/ext"

并重新启动网络服务器解决了问题。

注意:我使用 DOS-8.3 路径而不是"C:/Program Files/php/ext"因为根据 php-7.1.11-Win32-VC14-x64.zip\install.txt 手册,它不喜欢包含空格的路径:

您可以选择不同的位置,但路径中不能有空格(例如 C:\Program Files\PHP),因为如果这样做,某些 Web 服务器会崩溃。

我提到的路径不包含任何空格,所以我不认为我做错了什么。尽管如此,我不确定如果我将 php 安装到默认目录 c:\php 会如何工作,但似乎定义完整路径是一种更安全的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 扩展未通过 httpd 找到,但可以从 CLI 找到,具有相同的 php.ini 的相关文章

  • 使用 Apache 允许 Glassfish 和 PHP 在同一服务器中协同工作

    是否可以建立从 Java 到 php 文件的桥梁 我有一个用 Java 编写的应用程序 我需要执行http piwik org http piwik org 这是用 PHP 编写的 在服务器中 我正在运行 PHP 但无法从浏览器访问 php
  • 从远程托管上的 PHP 获取 PHP 错误日志

    是否有 PHP 函数或其他方式以字符串形式获取 PHP 错误日志 我需要这个 因为我无法访问在其他人的服务器上运行的站点的错误日志 他提出通过电子邮件将错误日志发送给我 但这不太方便 有什么方法可以将错误日志输出到 PHP 页面吗 我意识到
  • 在 PHP 中设置 HTTP 响应代码(在 Apache 下)

    给出以下两种在 PHP 中设置 HTTP 响应代码的方法 具体来说 在 Apache 下 方法一 http response code 404 方法二 header HTTP 1 0 404 Not Found 我的问题是 除了这个事实之外
  • Composer 安装要求

    我正在尝试将 Composer 安装到 Laravel 项目中 当我做的时候sudo composer install在项目目录中它显示了两个错误 Problem 1 Installation request for simplesoftw
  • PHP-列出一年中一个月中的所有天[重复]

    这个问题在这里已经有答案了 可能的重复 我在 PHP 中有 2 个日期 如何运行 foreach 循环来遍历所有这些日期 https stackoverflow com questions 3207749 i have 2 dates in
  • php动态创建子域的问题

    你好 我通过以下代码在 php 中创建子域 function subd host port ownername passw request sock fsockopen localhost 2082 if sock print Socket
  • 当第二个参数包含运算符号时,为什么 ltrim 会删除一个字符? [复制]

    这个问题在这里已经有答案了 If I do ltrim 53 34567 53 ltrim 53 34567 53 ltrim 53 34567 53 I get 4567作为结果而不是34567 这种行为的解释是什么 ltrim 53 3
  • 通过 PHP 连接到 socket.io(nodejs)

    我需要通过 php 连接到 websocket 发送数据并立即断开连接 无需等待套接字的响应 我用了大象io http elephant io 但更新库后不起作用 请告诉我如何通过 PHP 连接到 websocket 我也遇到了这个问题 学
  • 为什么我的 PHP 脚本无法对其创建的文件进行 chmod?

    我有一个 php 创建一个需要可执行的文件 它是一个需要由系统运行的批处理文件 由于某种原因 即使该文件归 apache 所有并且 php 作为 apache 运行 并且创建了该文件 该脚本还是在 chmod 行处终止 我需要进行哪些不同配
  • 如何检查 $row['column_name'] 是否返回空 php mysql

    我有一个带有列的表格 id name phone describe 当我从这个表中获取值时 我正在使用 row mysql fetch array query 现在我想检查是否 row describe 返回空值 如何查看php 您可以使用
  • 优化数据可视化 Web 应用程序的性能

    我正在重写 3 年前编写的数据可视化网络工具 从那时起 浏览器的 JavaScript 引擎变得更快 所以我正在考虑将部分工作从服务器转移到客户端 在页面上 数据在表格和地图 或图表 中可视化 它使用相同的数据 但以不同的方式 因此准备显示
  • laravel 5.3 新的 Auth::routes()

    最近开始使用laravel 5 3写博客 但是运行后出现一个问题php artisan make auth 当我运行这个时 它会在我的web php 这是其中的代码 Auth routes Route get home HomeContro
  • AFNetworking 上传图片

    我看过一些例子 但我认为我的问题可能出在 PHP 中 我正在尝试使用 AFNetworking 将图像从 iPhone 上传到服务器 这是我的 obj c 代码 IBAction uploadButtonClicked id sender
  • 管理面板的 htaccess 重写规则

    我的网络应用程序中有这样的 url 模式 www mysitename com foldername controller method 所有请求的页面首先被重定向到根文件夹上的index php 然后处理请求的页面 但每当我进入管理面板
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • shell_exec 的输出被截断为 100 个字符

    当在 shell 中运行以下命令时 curl F file filename http 192 168 0 1 产生以下输出 Accuracy 0 0 1 classification Accuracy 0 0 1 classificati
  • 计算特定产品类别的购物车商品数量

    我试图仅从 WooCommerce 中的特定产品类别获取购物车中的商品数量 我正在为一家酒厂做一个网站 它有酒精和非酒精产品 所有葡萄酒都属于 葡萄酒 主类别或类别 ID 34 其下有许多子类别和产品 对于属于此类别的任何商品 我需要知道此
  • 为什么 LinkedIn v2 Share API 在任何 v2/shares 端点上给出权限不足的错误?

    当我调用任何 v2 LinkedIn 共享 API 端点时 例如https api linkedin com v2 socialActions https api linkedin com v2 socialActions share UR
  • Monolog,如何将 PHP 数组记录到控制台?

    我正在使用浏览器处理程序将消息记录到 JS 控制台 require once vendor autoload php use Monolog Logger use Monolog Handler BrowserConsoleHandler
  • 简单的颜色变化

    我正在创建一个用户界面 用户可以在其中更改页面的颜色值 我想要的是获取分配给其背景颜色的值并将其变亮一定程度 我只是想获得一条亮点线 而不必每次都制作新图像 示例 用户将背景颜色设置为 ECECEC 现在我希望某个元素边框变成 F4F4F4

随机推荐

  • 使用 office.js 在 Word 中插入注释

    我正在尝试在 office js 中制作一个 Word 插件 以在文档中插入注释 在我看来 实现这一目标的唯一方法是使用 OOXML 我可以插入评论 但我的问题是 当我这样做时 会插入一个段落分隔符 并且可以从该图像中看到 据我所知 归结为
  • 如何将列表居中?

    我有一个无序列表 我想将它放在页面中间 我的意思是 左侧项目符号应该与具有最长文本的列表项的中心垂直对齐 但位于页面的中心 第 1 项很无聊 第 2 项确实是一个很长的项目 哦 是的 它是 第 3 项几乎和第 1 项一样无聊 并不是 ite
  • 滑动 UITableViewCell

    我的目标是拥有一个UITableViewCell从屏幕的一侧滑出 如 Twitter 然后从另一侧滑回 我能够使单元格从屏幕向右滑动 但我似乎无法弄清楚如何让它从左向右滑回到屏幕上 这是我将其滑到右侧的代码 UITableViewCell
  • 保留片段 未保留

    我有一个包含 VideoView 的简单布局
  • 如果字典不存在则添加

    我有一个包含重复项的数据集 想要循环遍历数据并在键不存在时添加 Dim SSBIds As New Scripting Dictionary Dim key As Variant For i 2 To endSSB For Each key
  • 通过 Azure CLI 向资源分配多个标签会在使用变量时产生一个大标签

    通过 az cli bash 使用标签列表创建 VM 时 首先设置这个变量 tags env qa servertype frontend Distinct qa frontend25 CI Yes DataDog True 但是 当在 b
  • git add * 不添加已删除的文件

    我有一个本地目录 我在其中初始化了 git 我已使用以下命令在 git 中添加了该目录的所有文件 git add 现在 如果我从本地目录手动删除文件 我也想从 github 中删除它 我努力了 git add A 但这不起作用 每次我也必须
  • 如何使用jdbcTemplate在IN子句中传递列表参数[重复]

    这个问题在这里已经有答案了 我想在 mysql 查询中使用 jdbcTemplate 在 IN 子句中传递列表值 就像下面这样 List
  • 使用 Oracle 11g 客户端连接到 Oracle 19C 服务器

    all 我正在尝试连接到 Oracle 19C 数据库 我安装了两个 Oracle 客户端 11g 和 12c 因为我们需要支持遗留程序 我可以通过 12c 客户端使用 sqlplus 与任何用户进行连接 没有任何问题 但是如果我对任何用户
  • Ransack搜索,如何通过分割输入搜索参数来搜索每个单词

    我目前正在尝试使用ransack gem在 Rails 中对模型进行搜索 就目前情况而言 我正在使用基本设置 控制器 def index q Person search params q people q result distinct g
  • 枚举网络共享

    net 框架是否有一部分可以枚举主机上的文件共享 我发现了一些使用 WMI 的东西 但我不想走那条路 您可以使用 NetShareEnum win32 api http www pinvoke net default aspx netapi
  • 在 TensorFlow 中修改恢复的 CNN 模型的权重和偏差

    我最近开始使用 TensorFlow TF 遇到了一个需要帮助的问题 基本上 我已经恢复了预先训练的模型 并且在重新测试其准确性之前 我需要修改其中一层的权重和偏差 现在 我的问题如下 我怎样才能使用改变权重和偏差assignTF 中的方法
  • 如何提供使用 fs.readFile 读取的文件

    我正在使用 Node js 开发一个应用程序 我必须读取服务器上的本地文件 我正在使用此功能 fs readFile path utf8 function err data 我如何向客户提供 数据 最好在新选项卡中打开它或在客户端上下载它
  • 如何仅在协程完成后才继续执行该功能?

    void Generate StartCoroutine FallDelayCoroutine print time3 Time time IEnumerator FallDelayCoroutine print time1 Time ti
  • 相当于 MySQL 中的 MSSQL IDENTITY 列

    MSSQL 相当于什么IDENTITYMySQL 中的列 我如何在 MySQL 中创建这个表 CREATE TABLE Lookups Gender GenderID INT IDENTITY 1 1 NOT NULL GenderName
  • 如何在 .send_keys() 中的字符之间进行延迟

    我正在自动化一个在线应用程序 并试图使每个 send keys 更加真实 而不是仅仅用 猛击文本字段 电子邮件受保护 cdn cgi l email protection 立即 我喜欢击键之间有一点延迟 这样看起来就像是人在打字 而不是机器
  • 将字符串转换为数组或对象

    是否可以将此字符串转换为数组或对象 它不是有效的 stringify JSON 数据 不知道如何解决这个问题 subject Test Comment message Test Message 预先感谢 像这样 JSON parse sub
  • 从输入框获取img src到div中

    我这个小项目背后的想法是让用户输入 img 的 URL 当用户点击按钮时 img 应该被插入到新的 div 页面内 我尝试在 stackoverflow 上寻找几个小时 但老实说 我不明白如何对我自己的代码使用其他答案 大部分 CSS 和
  • 值和引用类型

    我知道JavaScript中有6种数据类型 JavaScript 中的 引用 类型是什么 JavaScript 中的 值 数据类型是什么 有人可以按这两个类别列出它们吗 undefined null number string boolea
  • PHP 扩展未通过 httpd 找到,但可以从 CLI 找到,具有相同的 php.ini

    我想在安装 PHP 7 1 和 Apache 2 4 后在我的 Windows 7 上使用它的一些扩展 我编写了一个小测试脚本index php调用给定扩展的某些功能