PHP 扩展已启用但未在 Apache 上加载

PHP 扩展已启用但未在 Apache 上加载

由于某种原因,我的 php 扩展已启用,但未由 Apache 2.4 服务器加载。我缺少的扩展是 mbstring 和 fileinfo。我手动进行了安装,并希望保持这种状态,主要是为了学习目的。

当我说启用时,我的意思是当我php -m在 cmd 中运行时,扩展名就在列表中

但是,当我<?php phpinfo();从我的服务器运行时,这些扩展不在列表中。

在我的 php.ini 文件中,我仅配置了以下内容(与扩展相关):

extension_dir = "ext"
extension=mbstring (uncommented the line)
extension=fileinfo (uncommented the line)

我在httpd.conf中添加了以下内容:

# PHP5 module
LoadModule php7_module "C:/php/php7apache2_4.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/php/"

并且,在 phpinfo() 中,我看到只加载了一个 php.ini,即来自 C:/php 的那个

为什么我的扩展在 Apache 服务器上不可用?我是否必须以某种方式在 Apache 中手动加载/启用它们?

*版本:Apache 2.4.39,PHP 7.3.4

答案1

我在使用常规 Apache PHP 类型的配置之外的扩展时也遇到了同样的问题。我发现如果我不使用 Apache 作为服务,而是打开命令控制台来启动 Apache,它就会加载。这是它加载的唯一方式。不要使用批处理或服务。

对于 Windows,

  1. Winkey+ R
  2. 类型cmd
  3. Ctrl+ Shift+ Enter,然后
  4. 点击“是”。
  5. 然后,cd 到您的 Apache/bin 目录并输入httpd

我认为如果你做任何超出常规的事情,除非你构建自己的可执行文件,否则自定义扩展将无法起作用。

相关内容