在 phpinfo() 页面搜索“ftp”,若显示“ftp support => enabled”则已启用;否则未启用,PHP 8.0+ 需手动安装或启用扩展。

phpinfo() 页面里怎么确认 FTP 扩展已启用
直接看 phpinfo() 输出页,搜索 “ftp” 是最快的方式。如果页面中出现 ftp support 且值为 enabled,说明 FTP 扩展已加载;若完全搜不到 “ftp” 字样,或显示 ftp support => disabled,则扩展未启用。
注意:PHP 8.0+ 默认已移除 FTP 扩展,即使编译时带 --enable-ftp,也需手动启用(Linux 下常见于未装 php-ftp 包,Windows 下可能未取消 extension=php_ftp.dll 注释)。
命令行快速验证 ftp_* 函数是否可用
比起打开浏览器看 phpinfo(),用 CLI 更直接:
php -r "var_dump(function_exists('ftp_connect'));"
返回 bool(true) 表示可用;bool(false) 表示不可用。还可顺手测几个关键函数:
立即学习“PHP免费学习笔记(深入)”;
-
ftp_connect:建立连接(最基础) -
ftp_login:认证(常因未启用而报Call to undefined function ftp_login()) -
ftp_pasv:设置被动模式(部分环境依赖此函数才能列目录)
Linux 下检查 php.ini 是否加载了 ftp.so
FTP 扩展在 Linux 多以独立模块存在,不是内置。需确认两件事:
- 扩展文件是否存在:
ls /usr/lib/php/*/ftp.so或find /usr -name "ftp.so" 2>/dev/null - 对应
php.ini是否启用了它:grep -i "extension.*ftp" /etc/php/*/cli/php.ini /etc/php/*/fpm/php.ini 2>/dev/null
常见错误配置:extension=ftp(缺 .so 后缀)、extension=php_ftp.so(实际文件名是 ftp.so)、或写在被注释掉的段落里(如 ;extension=ftp.so)。
Windows 下启用 ftp 扩展的典型路径
Windows 用户常卡在 php.ini 配置上。需做三件事:
- 确认
php_ftp.dll在ext/目录下(PHP 安装路径下的ext/php_ftp.dll) - 取消
php.ini中这行的注释:extension=php_ftp.dll - 确保
extension_dir指向正确的ext路径,例如:extension_dir = "ext"或绝对路径extension_dir = "C:/php/ext"
改完必须重启 Web 服务(Apache/Nginx + PHP-FPM)或 CLI 环境才生效——很多人改了 ini 却没重启,导致 phpinfo() 和 function_exists() 仍显示未启用。
