在 CentOS 上连接 PHP 数据库(以 MySQL / MariaDB 为例),通常分为以下几个步骤。下面我按 最常见、最稳定 的方式一步步说明。
yum install -y httpd
systemctl start httpd
systemctl enable httpd
yum install -y epel-release
yum install -y yum-utils
yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php74
yum install -y php php-mysqlnd
dnf install -y php php-mysqlnd
检查版本:
php -v
yum install -y mariadb mariadb-server
systemctl start mariadb
systemctl enable mariadb
初始化数据库安全设置:
mysql_secure_installation
mysql -u root -p
CREATE DATABASE testdb;
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
<?php
$host = "localhost";
$user = "testuser";
$pass = "password";
$db = "testdb";
$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "数据库连接成功";
$conn->close();
?>
把文件放到:
/var/www/html/test.php
浏览器访问:
http://服务器IP/test.php
<?php
try {
$dsn = "mysql:host=localhost;dbname=testdb;charset=utf8mb4";
$pdo = new PDO($dsn, "testuser", "password");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "数据库连接成功";
} catch (PDOException $e) {
echo "连接失败:" . $e->getMessage();
}
?>
php -m | grep mysql
没有输出说明未安装扩展。
systemctl stop firewalld
或开放端口:
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
临时关闭测试:
setenforce 0
php -m | grep -E "mysqli|pdo"
systemctl status httpd
systemctl status mariadb
如果你:
可以直接告诉我,我可以给你 更精确的配置方案。