温馨提示×

centos lamp怎样配置数据库连接

小樊
45
2025-10-26 05:02:52
栏目: 智能运维

CentOS LAMP配置数据库连接完整步骤

1. 准备工作:更新系统

在开始前,确保系统软件包为最新版本,避免兼容性问题:

sudo yum update -y

2. 安装LAMP核心组件

LAMP环境由**Apache(Web服务器)、MySQL/MariaDB(数据库)、PHP(服务器端脚本)**组成,通过以下命令安装:

sudo yum install -y httpd mariadb-server php php-mysqlnd
  • httpd:Apache HTTP服务器,提供Web服务。
  • mariadb-server:MariaDB数据库服务器(MySQL的替代分支,兼容MySQL)。
  • php:PHP解释器,用于处理动态页面。
  • php-mysqlnd:PHP连接MySQL的驱动模块(必装,否则PHP无法与数据库交互)。

3. 启动并配置服务自启

安装完成后,启动Apache和MariaDB服务,并设置为开机自动启动:

sudo systemctl start httpd      # 启动Apache
sudo systemctl enable httpd     # 开机自启Apache
sudo systemctl start mariadb    # 启动MariaDB
sudo systemctl enable mariadb   # 开机自启MariaDB

4. 配置MariaDB安全设置

运行安全脚本,设置root密码、删除匿名用户、禁止远程root登录等,提升数据库安全性:

sudo mysql_secure_installation

按提示操作:

  • 输入当前root密码(首次安装为空,直接回车);
  • 设置root用户的登录密码;
  • 删除匿名用户;
  • 禁止root远程登录;
  • 删除测试数据库。

5. 创建数据库与授权用户

登录MariaDB,创建专用数据库和用户,并授予该用户对数据库的访问权限(避免使用root用户直接操作应用):

sudo mysql -u root -p           # 用root登录MariaDB(需输入密码)

在MariaDB命令行中执行以下SQL语句:

-- 创建数据库(例如名为"myapp")
CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建用户(例如名为"appuser",密码"StrongPassword123!")
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'StrongPassword123>';

-- 授权用户对数据库的所有权限
GRANT ALL PRIVILEGES ON myapp.* TO 'appuser'@'localhost';

-- 刷新权限,使授权立即生效
FLUSH PRIVILEGES;

-- 退出MariaDB
EXIT;

注意

  • 替换myappappuserStrongPassword123!为实际的数据库名、用户名、密码;
  • 若需允许远程访问,可将'localhost'改为'%',并配置防火墙允许3306端口(详见步骤8)。

6. 测试PHP与数据库连接

在Apache的默认文档根目录(/var/www/html)下创建PHP测试文件,验证PHP是否能正常连接数据库:

sudo nano /var/www/html/db_test.php

输入以下内容(替换为实际的数据库信息):

<?php
// 数据库连接配置
$servername = "localhost";      // 数据库服务器地址(本地为localhost)
$username = "appuser";          // 数据库用户名
$password = "StrongPassword123";// 数据库密码
$dbname = "myapp";              // 数据库名

// 创建连接(使用mysqli扩展,支持MySQLi协议)
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接是否成功
if ($conn->connect_error) {
    die("数据库连接失败: " . $conn->connect_error); // 连接失败则终止并输出错误
} else {
    echo "数据库连接成功!"; // 连接成功则输出提示
}

// 关闭连接(可选,脚本结束时自动关闭)
$conn->close();
?>

保存并退出编辑器(Ctrl+OEnterCtrl+X)。

7. 验证连接结果

在浏览器中访问测试文件的URL(将your_server_ip替换为服务器的实际IP地址):

http://your_server_ip/db_test.php

若看到**“数据库连接成功!”**的字样,说明PHP已成功连接数据库。

8. 配置防火墙(可选但推荐)

若服务器开启了防火墙(如firewalld),需开放HTTP(80端口)和HTTPS(443端口),允许外部访问Web服务:

sudo firewall-cmd --permanent --zone=public --add-service=http    # 开放HTTP端口
sudo firewall-cmd --permanent --zone=public --add-service=https   # 开放HTTPS端口
sudo firewall-cmd --reload                                        # 重新加载防火墙规则

若需允许远程访问MySQL(3306端口),可添加以下命令:

sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp   # 开放MySQL端口
sudo firewall-cmd --reload                                        # 重新加载防火墙规则

常见问题排查

  • 连接失败:检查数据库用户权限(是否允许从当前主机访问)、密码是否正确、数据库是否存在。
  • PHP无法连接:确保已安装php-mysqlnd模块,且Apache已重启加载模块(sudo systemctl restart httpd)。
  • 防火墙拦截:检查防火墙是否开放了80、443端口(HTTP/HTTPS),以及是否允许远程访问3306端口(若需要)。

通过以上步骤,你已完成CentOS LAMP环境中数据库的配置与连接测试,可在此基础上开发动态Web应用(如WordPress、Laravel等)。

0