温馨提示×

CentOS怎样配置PHP连接

小樊
39
2026-07-19 11:12:26
栏目: 编程语言

下面以 CentOS 7 / CentOS 8 为例,说明 PHP 连接数据库(以 MySQL 为主) 的常见配置方式。如果你指的是 PHP 连接其他服务(如 Redis、LDAP、Oracle),可以再具体说明。


一、确认 PHP 已安装

php -v

如果未安装:

# CentOS 7
yum install php -y

# CentOS 8
dnf install php -y

二、安装 PHP 数据库扩展(关键步骤)

1️⃣ PHP 连接 MySQL(最常用)

✅ CentOS 7

yum install php-mysqlnd -y

✅ CentOS 8

dnf install php-mysqlnd -y

安装完成后重启 Web 服务:

systemctl restart httpd   # Apache
# 或
systemctl restart php-fpm # Nginx

三、验证 PHP 是否支持 MySQL

创建测试文件:

vim /var/www/html/test.php

内容:

<?php
phpinfo();

浏览器访问:

http://服务器IP/test.php

搜索:

  • mysqli
  • pdo_mysql

✅ 看到说明已成功加载


四、PHP 连接 MySQL 示例

1️⃣ 使用 mysqli 连接

<?php
$host = '127.0.0.1';
$user = 'root';
$pass = 'password';
$db   = 'test';

$conn = new mysqli($host, $user, $pass, $db);

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

2️⃣ 使用 PDO 连接(推荐)

<?php
try {
    $pdo = new PDO(
        "mysql:host=127.0.0.1;dbname=test;charset=utf8",
        "root",
        "password"
    );
    echo "PDO 连接成功";
} catch (PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}
?>

五、常见问题排查

❌ 1. 连接被拒绝

Connection refused

✅ 检查:

systemctl status mysqld

❌ 2. 用户权限问题

GRANT ALL ON test.* TO 'root'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

❌ 3. SELinux 阻止连接

getenforce

临时关闭测试:

setenforce 0

❌ 4. 防火墙未放行

firewall-cmd --add-service=mysql --permanent
firewall-cmd --reload

六、PHP 连接其他服务(可选)

服务 扩展
Redis php-redis
LDAP php-ldap
Oracle php-oci8
PostgreSQL php-pgsql

安装示例:

yum install php-redis -y

七、总结

✅ CentOS 配置 PHP 连接 MySQL 的核心步骤:

  1. 安装 php-mysqlnd
  2. 重启 PHP / Web 服务
  3. 使用 mysqliPDO 连接
  4. 排查权限 / 防火墙 / SELinux

如果你能说明:

  • CentOS 版本
  • PHP 版本
  • 连接的是哪种数据库或服务

我可以给你 精确到命令级别 的配置方案。

0