无论是与外部API交互的 cURL,还是物联网场景的 MQTT 协议,都是 PHP 开发者必备的技能。本文将用保姆级教程,带你完成两大核心扩展的安装与验证。


一、PHP cURL 扩展安装

1. 环境准备

# 更新软件源(所有操作需 sudo 权限)
sudo apt-get update

2. 精准安装扩展包

# 先确认 PHP 版本
php -v

# 示例:PHP 8.3 安装命令
sudo apt-get install php8.3-curl

# 多版本安装示例
# sudo apt-get install php7.4-curl

3. 验证安装结果

# 查看已加载模块
php -m | grep curl

✅ 成功标志:终端显示 curl 字样

4. 疑难排查指南

若未成功加载:

# 定位 php.ini 配置文件
php --ini

# 编辑对应配置文件(示例路径)
sudo nano /etc/php/8.3/cli/php.ini

编辑完成后,按下 Ctrl + O保存

确保存在且未被注释:

extension=curl

5. 服务重启三部曲

根据服务器类型选择:

# PHP-FPM 用户
sudo systemctl restart php8.3-fpm

# Apache 用户
sudo systemctl restart apache2

# Nginx 用户
sudo systemctl restart nginx

6. 实战测试脚本

创建 test_curl.php

<?php
$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => "https://httpbin.org/get",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYPEER => false
]);

$response = curl_exec($ch);
curl_errno($ch) ? 
    printf("Error: %s", curl_error($ch)) : 
    print_r(json_decode($response));

curl_close($ch);

运行验证:

php test_curl.php

📌 预期结果:显示 HTTP 请求的完整响应信息


二、PHP MQTT 扩展安装

方案 A:Mosquitto 扩展安装

1. 安装底层依赖

sudo apt-get install mosquitto libmosquitto-dev

2. PECL 安装扩展

sudo pecl install Mosquitto-alpha

# 若未安装 pecl
sudo apt-get install php-pear

3. 配置扩展

# 在 php.ini 添加
extension=mosquitto.so

方案 B:纯 PHP 客户端实现

# 通过 Composer 安装
composer require php-mqtt/client

4. 功能验证脚本

创建 test_mqtt.php

<?php
require 'vendor/autoload.php';

use PhpMqtt\Client\MqttClient;

$client = new MqttClient('test.mosquitto.org', 1883);
$client->connect();

// 消息发布
$client->publish('php/blog', 'Hello from PHP!', 0);

// 消息订阅(需异步处理)
$client->subscribe('php/blog', function ($topic, $message) {
    echo "收到消息: [$topic] $message\n";
});

$client->loop(true);

三、避坑指南

常见问题 解决方案
pecl 命令不存在 sudo apt install php-pear
找不到 mosquitto.so 检查 pecl 安装日志确认路径
MQTT 连接超时 检查防火墙设置和 broker 地址
cURL HTTPS 请求失败 启用 openssl 扩展并配置证书路径

四、扩展应用场景


💡 技术贴士:建议使用 phpinfo() 函数确认扩展加载情况。遇到问题可在 /var/log/ 目录下查看相关服务日志。

(本文测试环境:Ubuntu 22.04 LTS,PHP 8.3)