Apache 没有加载 PHP 扩展



我安装了(手动(Apache和PHP。我从 php 激活了 curl 扩展.ini它在 PHP-CLI 中运行良好,但是当我在 Apache 的帮助下通过浏览器访问 PHP 时,curl(和任何其他(扩展给了我"{extension_function} 未定义"的错误

PHP7.2-64bit

阿帕奇2.4

// php.ini
extension_dir = "/server/php/ext"
...
extension=bz2
extension=curl
extension=fileinfo
;extension=gd2
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=interbase
;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
// httpd.conf    
LoadModule php7_module "/server/php/php7apache2_4.dll"
<IfModule php7_module>
AddHandler application/x-httpd-php .php
AddType application/x-httpd-php .php .html
PHPIniDir "/server/php"
</IfModule>

更新

我正在使用这var_dump(function_exists('curl_init'));行代码进行测试... 当我从 php-cli 运行这一行时,它返回 true。 当我使用浏览器从 php 文件运行此行时,它返回 false。

来自 PHP-CLI

从浏览器

PHP 文件

错误

解决

  1. 我到处都使用绝对路径(没有相对路径((使用正斜杠(
  2. 将 PHP 添加到环境变量中。我不知道为什么,但是没有这个扩展就不会加载。我认为 Apache 的 php7 模块在环境中需要 php。
  3. 重新启动计算机(Apache 重新启动不起作用(

我希望有人会觉得这有帮助。

谢谢你的帮助。

我遇到了同样的问题 - 在Windows上。将扩展目录的路径更改为绝对路径后,它起作用了。

如默认 php 中所建议的.ini(不起作用(:

extension_dir = "ext"

变成绝对路径(工作(

extension_dir = "c:ampphpext"

奇怪的是,此问题仅在某些机器/版本上发生。无法确定它。这里列出了一个官方错误:

https://bugs.php.net/bug.php?id=74866

相关内容

  • 没有找到相关文章

最新更新