温馨提示×

debian php怎样连接数据库

小樊
51
2026-09-26 08:28:21
栏目: 编程语言

在 Debian 上用 PHP 连接数据库,通常步骤是:安装 PHP → 安装数据库 → 安装对应 PHP 扩展 → 写连接代码。下面以最常见的 MySQL / MariaDB 为例说明(也适用于 PostgreSQL 等)。


一、安装 PHP 及数据库扩展

1. 更新系统

sudo apt update
sudo apt upgrade -y

2. 安装 PHP(以 PHP 8.2 为例)

sudo apt install php php-cli php-fpm -y

3. 安装 MySQL / MariaDB 扩展

MySQL(推荐 mysqli 或 pdo_mysql)

sudo apt install php-mysql -y

如果是 MariaDB(Debian 默认常带)

sudo apt install mariadb-server php-mysql -y

4. 重启 Web 服务

sudo systemctl restart apache2
# 或
sudo systemctl restart nginx

二、确认扩展已启用

php -m | grep -E 'mysqli|pdo_mysql'

有输出说明安装成功。


三、PHP 连接数据库示例

方式一:PDO(推荐)

<?php
$host = '127.0.0.1';
$db   = 'testdb';
$user = 'testuser';
$pass = 'password';
$charset = 'utf8mb4';

$dsn = "mysql:host=$host;dbname=$db;charset=$charset";

try {
    $pdo = new PDO($dsn, $user, $pass);
    echo "数据库连接成功";
} catch (PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}
?>

方式二:mysqli

<?php
$conn = new mysqli("127.0.0.1", "testuser", "password", "testdb");

if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "数据库连接成功";
?>

四、常见问题

1. 拒绝连接(Access denied)

  • 用户名/密码错误
  • 用户没有远程或 localhost 权限
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;

2. 找不到驱动

确保安装了:

php -m | grep mysql

没有就重装 php-mysql

3. 使用 Nginx

需要 php-fpm 并配置 fastcgi


五、其他数据库(简要)

  • PostgreSQL
sudo apt install php-pgsql
  • SQLite
sudo apt install php-sqlite3

如果你能告诉我:

  • 用的是 Apache 还是 Nginx
  • 数据库类型(MySQL / PostgreSQL / SQLite)
  • PHP 版本

我可以给你更精确的配置示例。

0 踩