如何在 XAMPP 中安装和启用常用 PHP 扩展如 cURL 和 GD 库

夜雪小哥_3021

夜雪小哥_3021

2026-04-07

599人浏览

原创

xampp 默认已预置 curl 和 gd 扩展,需在 php.ini 中取消注释 extension=curl 和 extension=gd 并重启 apache;务必以 phpinfo() 显示的 loaded configuration file 路径为准,验证时用 test.php 检查 extension_loaded() 和 gd_info()。

如何在 xampp 中安装和启用常用 php 扩展如 curl 和 gd 库

确认 XAMPP 自带扩展是否已编译好

XAMPP Windows 版本默认已静态编译或预置了 cURLGD 扩展,但它们不一定在 php.ini 中启用。直接启用前先验证:打开命令行,运行 php -m | findstr curlphp -m | findstr gd(Windows)或 php -m | grep curl(macOS/Linux),若无输出,说明未启用;若有输出但网页中 phpinfo() 不显示,可能是配置未生效或 Web 服务器用的是另一份 php.ini

修改正确的 php.ini 文件并启用扩展

XAMPP 中 Apache 和 CLI 可能使用不同 php.ini:Apache 读取的是 \xampp\php\php.ini,而控制台命令用的可能是同一份,也可能被覆盖。务必以 phpinfo() 页面顶部 “Loaded Configuration File” 显示的路径为准。找到该文件后,搜索以下两行:

;extension=curl
;extension=gd

取消注释(删掉前面的分号),保存。注意:

  • curl 在 PHP 8+ 中无需额外 DLL,但旧版 XAMPP(如 7.4)可能需确保 libssh2.dllssleay32.dll\xampp\apache\bin\ 目录下
  • gd 依赖 libpnglibjpeg 等 DLL,XAMPP 通常已自带,但若启用后 gd_info() 返回空数组,检查 extension_dir 是否指向 "C:\xampp\php\ext"(路径末尾不能有反斜杠)
  • Windows 下扩展名是 .dll,无需写后缀;Linux/macOS 是 .so,但 XAMPP macOS 版极少单独提供 GD 编译包,建议优先用官方包而非自行编译

重启 Apache 并验证扩展是否真正加载

仅改 php.ini 不够,必须完整重启 Apache 服务(不是“重新启动模块”)。在 XAMPP Control Panel 中点击 StopStart Apache。之后创建一个 test.php 放入 \xampp\htdocs\

Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别(干旱/病害)
Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别(干旱/病害)

利用农业相机拍摄植物叶片高分辨率图像,通过AI视觉技术检测叶片卷曲方向(向上卷曲或向下卷曲)

下载
<?php var_dump(extension_loaded('curl'));
var_dump(extension_loaded('gd'));
print_r(gd_info());
?>

访问 http://localhost/test.php。若前两行返回 bool(true),且 gd_info() 输出数组含 GD Version 字段,说明成功。常见失败现象:

  • 页面空白 → 检查 php.ini 语法错误(如多了一个等号)、扩展 DLL 被杀毒软件隔离
  • 报错 PHP Warning: PHP Startup: Unable to load dynamic library 'curl' → 对应 DLL 文件缺失或位数不匹配(32 位 Apache 加载了 64 位 DLL)
  • gd_info() 报错 Call to undefined function gd_info()extension=gd 拼写错误,或启用了 php_gd2.dll(旧名),新版统一为 gd

GD 库图像处理功能仍不可用?检查依赖库和配置项

即使 gd 扩展加载成功,imagecreatefrompng()imagettftext() 仍可能失败。这是因为 GD 的子功能受独立开关控制:

  • 确保 php.inienable_dl = Off(XAMPP 默认关闭,开启反而不安全)
  • 检查 gd.jpeg_ignore_warning = 1(避免因 JPEG 头损坏中断脚本)
  • 字体支持依赖 mbstring 和系统字体路径;imagettftext() 报错 “could not bind to socket” 实际是找不到字体文件,需传入绝对路径如 C:/Windows/Fonts/arial.ttf
  • 部分 PNG 功能(如 alpha 合成)要求编译时启用 --with-png-dir,XAMPP 已满足,但若 gd_info()['PNG Support'] === false,说明构建时漏掉了 libpng,只能换新版 XAMPP

最易被忽略的是:Apache 和 CLI 使用不同 php.ini,改完后只测试了命令行,却没刷新浏览器——务必用 phpinfo() 确认 Web 环境实际加载的配置。

php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2023.09.01

8944

6

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

5441

5

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

1995

5

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

2023.10.23

3368

4

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

2023.10.23

4034

6

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.03

3171

9

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.09

4477

8

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.13

3502

8

sprintf函数用法详解
sprintf函数用法详解

sprintf函数的用法:1、格式化字符串;2、指定输出宽度和精度;3、返回值。更多关于sprintf函数用法详解的内容,大家可以阅读下面的文章。

2023.11.27

11562

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
墨刀帮助中心
墨刀帮助中心

共0课时 | 0人学习

MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习