参考资料

  1. 如何集成PHP-FPM与Nginx
  2. 宝塔官网安装
  3. php服务器软件详细说明以及案例
  4. 宝塔面板安装 删除
  5. 宝塔面板安装方法
  6. 如何在Ubuntu上安装PHP-FPM
  7. 如何安装宝塔面板?
  8. php服务器性能优化详细说明以及案例

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)。