php - Apache 没有加载 PHP 扩展
问题描述
我(手动)安装了 Apache 和 PHP。我从 php.ini 激活了 curl 扩展,它在 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 添加到环境变量中。我不知道为什么,但是没有这个扩展就不会加载。我认为 Apache 的 php7 模块在环境中需要 php。
- 重新启动计算机(Apache 重新启动将不起作用)
我希望有人会觉得这很有帮助。
感谢您的帮助。
解决方案
我有同样的问题 - 在 Windows 上。将扩展目录的路径更改为绝对路径后,它起作用了。
正如默认的 php.ini 中所建议的(不工作):
extension_dir = "ext"
变成了绝对路径(工作)
extension_dir = "c:\amp\php\ext"
奇怪的是,这个问题只发生在某些机器/版本上。无法确定。这里列出了一个官方错误:
推荐阅读
- python - 为什么用 BeautifulSoup 看不到这个 html 表?
- python - AttributeError:模块“syft”没有属性“TensorFlowHook”
- python - 如何防止powershell在激活虚拟环境的情况下启动
- python - 改变现有DataFrame的形式
- c - Ubuntu C 中 pthread_join() 的功能
- reactjs - 调用函数 onPress React Native 钩子
- visual-studio-code - 关闭vscode后如何保留撤消历史记录?
- c# - 如何使用 Squid-Box.SevenZipSharp 在 C# 上压缩和解压缩文件 执行失败错误
- powershell - 在powershell中添加元素
- c++ - Micropython 用户模块:即使属性已更改,类也会打印初始化数据