laravel 6 不配置 curl 扩展,而是依赖已启用的 php curl 扩展;需通过 php -m | grep curl 验证,linux 用 sudo apt install php7.4-curl + phpenmod curl,windows 修改 cli 模式下的 php.ini 启用 extension=curl,macos 用 brew install php@7.4 并编辑对应 php.ini,最后重启服务并验证 function_exists('curl_init') 返回 true。

Laravel 6 本身不“配置” cURL 扩展,它依赖 PHP 环境中已启用的 curl 扩展。只要 PHP 的 curl 扩展已正确安装并启用,Laravel 6 就能直接使用(例如通过 Http::get()、GuzzleHttp\Client 或原生 curl_* 函数)。
关键点在于:cURL 是 PHP 的扩展,不是 Laravel 的包。配置动作发生在 PHP 层,而非 Laravel 层。
✅ 确认 PHP 已加载 curl 扩展
在终端运行:
php -m | grep curl
若输出 curl,说明已启用;若无输出,需手动启用。
? Linux(Ubuntu/Debian)系统
-
安装对应 PHP 版本的 curl 模块
Laravel 6 要求 PHP ≥ 7.2(推荐 7.3–7.4),例如用 PHP 7.4:sudo apt update sudo apt install php7.4-curl
-
启用模块(部分系统需显式启用):
sudo phpenmod curl
-
重启 Web 服务或 PHP-FPM:
sudo systemctl restart apache2 # 或 Nginx + PHP-FPM: sudo systemctl restart php7.4-fpm nginx
? Windows(WAMP/XAMPP/Laragon)
-
找到 CLI 模式下实际使用的
php.ini:php --ini
关注
Loaded Configuration File路径(如C:\laragon\bin\php\php-7.4.33\php.ini)。 -
用文本编辑器打开该
php.ini,搜索:;extension=curl
去掉分号,改为:
extension=curl
确保
extension_dir设置正确(通常默认即可),且libssh2.dll、ssleay32.dll、libeay32.dll等依赖 DLL 存在于 PHP 目录或系统路径中(现代 PHP 安装包通常自带)。
Test Curl 2下载父母的功课——育儿心理学对话支持技能(心虫增强版)。提供结构化对话、情绪识别、场景匹配与安全检测;可选Python脚本(scripts/)在SKILL_DIR/data/本地存储评估历史、洞察与会话状态,不对外传输。核心路径:觉察(看见防御)→接纳(慈悲是……
重启 Web 服务(如 Laragon 的「Restart All」按钮)。
⚠️ 注意:Laravel 运行
composer install、php artisan等命令走的是 CLI 模式,所以必须确保 CLI 对应的php.ini启用了 curl,而不是 Apache/Nginx 加载的那个。
? macOS(Homebrew 安装的 PHP)
-
安装带 curl 的 PHP(如 PHP 7.4):
brew install php@7.4
-
确保
php.ini已生成并启用扩展:php --ini # 查看加载的 php.ini 路径 php -i | grep "curl"
-
若未启用,编辑
php.ini,取消注释:extension=curl
重启 Web 服务器(如
brew services restart httpd或nginx)。
? 验证是否生效(Laravel 6 项目内)
创建一个测试路由或 Artisan 命令:
// routes/web.php
Route::get('/test-curl', function () {
$ch = curl_init('https://httpbin.org/get');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);
return $err ? "Error: $err" : "Success: " . strlen($result) . " bytes";
});
访问 /test-curl,应返回成功响应。
或者更简单地运行:
php -r "var_dump(function_exists('curl_init'));"
输出 bool(true) 即表示 OK。
❌ 常见误区提醒
- 不要往
composer.json里加"ixudra/curl"—— 这是第三方封装库,Laravel 6 完全不需要它来使用基础 cURL 功能; - 不要只改 Apache 的
php.ini,却忽略 CLI 模式下的配置(php --ini结果才是关键); - Laravel 6 报
cURL error 60或Class 'GuzzleHttp\Client' not found,大概率是 PHP curl 扩展未启用,或 Guzzle 依赖未安装(后者执行composer install即可)。
不复杂但容易忽略。










