要在Windows中加载PHP扩展,有两种方法:将扩展编译为PHP,以及加载DLL。加载预编译扩展是一种更简单、更值得推荐的方法。
要加载扩展,系统中必须存在相应的“.dll”文件。所有扩展都由PHP团队定期自动编译(有关如何下载,请参见下一节)。
扩展库在哪里?
PHP扩展库通常被称为“php_*.dll”(星号表示特定扩展的名称),位于“PHPext”目录中。
PHP分发包含大多数开发人员最常用的扩展库。它们被称为“核心”扩展库。
但是,即使核心扩展没有提供用户所需的功能,也可以在»PECL中找到。PHP扩展社区库(PECL、PHP扩展社区库)是PHP扩展的存储库,它提供了如何下载和开发所有已知扩展的指南。
如果用户要为自己开发扩展,请考虑在PECL上发布,以供具有相同需求的其他用户使用。作为一个好的副作用,你可以收到来自其他用户的反馈,感谢,错误报告,甚至修改和更新。
你要下载哪个扩展?
用户通常会找到每个DLL的几个版本。
不同的版本号(至少前两个号码必须相同)
不同的线程安全设置
不同的处理器架构(x86、x64、…)
各种故障排除设置
其他
请注意,用户的扩展设置必须与所使用的PHP可执行文件设置匹配。以下脚本显示所有PHP设置:。
示例1phpinfo()调用
<?php phpinfo(); ?>
或者在命令行运行:
drive:\path ophpexecutablephp.exe -i
加载扩展
最常见的方法是php。ini配置文件应包含PHP扩展功能。很多扩展功能已经在php。请注意ini中包含的内容。请删除并启用分号。
请注意,PHP7.2.0或更高版本可以直接使用扩展名来代替扩展文件名。这样,配置文件将与操作系统分离,以便于理解。建议您使用此方法加载扩展。继续支持直接描述扩展的方法,以保持与以前版本的兼容性。
;extension=php_extname.dll extension=php_extname.dll
; PHP version 7.2 开始的推荐写法:
extension=extname zend_extension=another_extension
但是,一部分Web服务器与PHP可执行文件位于同一目录中php。ini文件不一定要使用,所以很混乱。哪个php。要确定是否使用ini文件,请检查phpinfo()的输出。
Configuration File (php.ini) Path C:WINDOWS
Loaded Configuration File C:Program FilesPHP5.2php.ini
在启用扩展功能之后,php。请保存ini文件,重新启动Web服务器,用phpinfo()再次确认。新的扩展需要自己的部分。
解决问题
如果扩展名未出现在phpinfo()中,则必须查看日志以确定问题的原因。
从命令行(CLI)使用PHP时,扩展功能的读取错误消息将直接显示在画面上。
如果Web服务器使用PHP,则日志文件的位置和格式不同。要查看日志文件的位置,请参阅您正在使用的网络服务器文档。这与PHP本身无关。
最常见的问题是DLL和DLL所依赖的文件的位置,php。ini的extension_dir中设置的值以及编译时设置的不匹配。
如果问题是编译时设置不匹配,则可能下载了错误的DLL文件。尝试下载配置匹配的扩展。另外,phpinfo()也非常有用。