在安装 Laravel 12 时,PHP 需要开启一系列扩展以确保框架正常运行。以下是详细介绍:
必需扩展
- BCMath :用于任意精度的数学运算。Laravel 在处理一些需要高精度计算的场景(如货币计算)时会用到这个扩展。开启方法是在
php.ini
文件中去掉;extension=bcmath
前面的分号,然后重启 Web 服务器(如 Apache、Nginx)或 PHP 相关服务(如 PHP-FPM)。 - Ctype :提供字符类型检查的函数,在 Laravel 进行数据验证和处理时会被频繁使用。此扩展通常默认开启,若未开启,同样在
php.ini
中去掉;extension=ctype
前的分号并重启服务。 - Fileinfo :用于获取文件的详细信息,比如文件的 MIME 类型等。在文件上传和处理相关功能中会用到,开启方式是去掉
;extension=fileinfo
前的分号并重启服务。 - JSON :处理 JSON 数据的编码和解码。Laravel 在 API 开发、数据传输等方面广泛使用 JSON 格式,该扩展是必需的。一般默认已开启,若未开启则在
php.ini
中去掉;extension=json
前的分号并重启服务。 - Mbstring :支持多字节字符串处理,确保在处理包含多种语言字符的文本时不会出现乱码问题。开启方法是去掉
;extension=mbstring
前的分号并重启服务。 - OpenSSL :提供 SSL/TLS 加密和安全套接字层相关功能,在 Laravel 处理 HTTPS 请求、加密数据等场景中发挥重要作用。去掉
;extension=openssl
前的分号并重启服务来开启。(实际安装中提示开启) - PDO :PHP 数据对象扩展,是 Laravel 数据库交互的基础,支持多种数据库系统(如 MySQL、SQLite 等)。开启时去掉
;extension=pdo
前的分号并重启服务。此外,还需根据使用的具体数据库开启相应的 PDO 驱动扩展,如使用 MySQL 需开启pdo_mysql
,使用 SQLite 需开启pdo_sqlite
。(实际安装中提示开启) - Tokenizer :用于对 PHP 代码进行词法分析,在 Laravel 的代码解析和处理过程中会用到。去掉
;extension=tokenizer
前的分号并重启服务来开启。 - XML :支持 XML 数据的处理,虽然 Laravel 主要以 JSON 为主,但在一些特定场景(如与外部系统交互使用 XML 格式数据)下会用到。去掉
;extension=xml
前的分号并重启服务。
可选扩展
- GD :用于图像的创建、编辑和处理。如果你的 Laravel 项目涉及图像上传、裁剪、缩略图生成等功能,建议开启该扩展。在
php.ini
中去掉;extension=gd
前的分号并重启服务。 - Redis :如果项目使用 Redis 作为缓存或队列存储,需要开启 Redis 扩展。去掉
;extension=redis
前的分号并重启服务。 - Memcached :当使用 Memcached 作为缓存驱动时,需要开启该扩展。去掉
;extension=memcached
前的分号并重启服务。
提示:
以上为豆包推荐开启的扩展,实际安装中遇到两个扩展安装提示,openssl和pdo_sqlite。另外,镜像源的选择也非常关键,有一些镜像源地址缺少新版本依赖包或者服务器不稳定,这些问题影响安装的成功。