温馨提示×

debian php怎么连接数据库

小樊
38
2026-09-23 09:49:25
栏目: 编程语言

在 Debian 上用 PHP 连接数据库,通常分 MySQL/MariaDB 和 PostgreSQL 两种常见情况。下面以最常用、最推荐的 PDO 方式说明,并附带环境准备步骤。


一、安装 PHP 及数据库扩展(Debian)

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

sudo apt install php-mysql -y

PostgreSQL

sudo apt install php-pgsql -y

4. 重启 Web 服务(如有)

sudo systemctl restart apache2
# 或
sudo systemctl restart php8.2-fpm

二、PHP 连接 MySQL / MariaDB(PDO 推荐)

1. 数据库准备(示例)

CREATE DATABASE testdb;
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;

2. PHP 示例代码

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

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

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

三、PHP 连接 PostgreSQL(PDO)

<?php
$host = 'localhost';
$db   = 'testdb';
$user = 'testuser';
$pass = 'password';

$dsn = "pgsql:host=$host;dbname=$db";

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

四、常见问题排查

1. 找不到驱动

php -m | grep pdo

没有 pdo_mysql 或 pdo_pgsql 就重装扩展。

2. 权限问题

  • 确认数据库用户允许 localhost
  • 确认防火墙未拦截(一般本地不会)

3. Apache / Nginx 不解析 PHP

  • Apache:sudo apt install libapache2-mod-php
  • Nginx:使用 php-fpm

五、建议

✅ 用 PDO(支持预处理,防 SQL 注入)
❌ 不推荐 mysql_* 旧函数(已废弃)


如果你用的是 Apache / Nginx / Docker / Laravel,或者连接的是 远程数据库,可以告诉我,我可以给你更具体的配置。

0 踩