参考资料

  1. PHP-FPM的常见错误有哪些?
  2. 宝塔面板安装方法
  3. 宝塔面板安装python
  4. php服务器管理工具详细说明以及案例
  5. 安装 PHP-FPM
  6. 宝塔面板在线安装
  7. 配置 PHP-CLI 版本(适用于宝塔面板)
  8. 宝塔面板安装docker

PHP 8.4 连接配置(TCP 或 Unix Socket)

1. TCP 连接配置

  • 适用场景:远程数据库、跨服务器通信

  • 配置方式:  

    $host = '127.0.0.1';  // 或远程IP(如 192.168.1.100)
    $port = 3306;         // 默认MySQL端口
    $dsn = "mysql:host=$host;port=$port;dbname=test";
  • 示例(PDO 连接 MySQL):  

    try {
        $pdo = new PDO(
            "mysql:host=127.0.0.1;port=3306;dbname=test",
            "username",
            "password"
        );
    } catch (PDOException $e) {
        die("Connection failed: " . $e->getMessage());
    }

2. Unix Socket 连接配置

  • 适用场景:本地数据库(如 MySQL/MariaDB 默认使用 socket 通信)

  • 配置方式:  

    $socket = '/var/run/mysqld/mysqld.sock';  // 常见路径(Ubuntu/Debian)
    $dsn = "mysql:unix_socket=$socket;dbname=test";
  • 示例(PDO 连接 MySQL):  

    try {
        $pdo = new PDO(
            "mysql:unix_socket=/var/run/mysqld/mysqld.sock;dbname=test",
            "username",
            "password"
        );
    } catch (PDOException $e) {
        die("Connection failed: " . $e->getMessage());
    }

3. 如何选择 TCP 或 Unix Socket?

方式适用场景性能安全性
TCP远程数据库、Docker 容器间通信略低(网络延迟)需配置防火墙/IP白名单
Unix Socket本地数据库(同服务器)更高(无网络开销)仅限本机访问

4. 检查 MySQL 的 Socket 路径

如果不确定 MySQL 的 socket 路径,可执行:

mysql --help | grep "socket"

或查询 MySQL 配置:

cat /etc/mysql/my.cnf | grep socket

5. PHP 8.4 注意事项

  • PDO 驱动必须启用php.iniextension=pdo_mysql

  • 错误处理:建议使用 try-catch 捕获 PDOException

  • 性能优化:Unix Socket 比 TCP 更快(减少网络层开销)

如需进一步优化,可结合连接池(如 Swoole、Workerman)或持久连接(PDO::ATTR_PERSISTENT)。