CentOS LAMP配置数据库连接完整步骤
在开始前,确保系统软件包为最新版本,避免兼容性问题:
sudo yum update -y
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无法与数据库交互)。安装完成后,启动Apache和MariaDB服务,并设置为开机自动启动:
sudo systemctl start httpd # 启动Apache
sudo systemctl enable httpd # 开机自启Apache
sudo systemctl start mariadb # 启动MariaDB
sudo systemctl enable mariadb # 开机自启MariaDB
运行安全脚本,设置root密码、删除匿名用户、禁止远程root登录等,提升数据库安全性:
sudo mysql_secure_installation
按提示操作:
登录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;
注意:
- 替换
myapp、appuser、StrongPassword123!为实际的数据库名、用户名、密码;- 若需允许远程访问,可将
'localhost'改为'%',并配置防火墙允许3306端口(详见步骤8)。
在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+O→Enter→Ctrl+X)。
在浏览器中访问测试文件的URL(将your_server_ip替换为服务器的实际IP地址):
http://your_server_ip/db_test.php
若看到**“数据库连接成功!”**的字样,说明PHP已成功连接数据库。
若服务器开启了防火墙(如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-mysqlnd模块,且Apache已重启加载模块(sudo systemctl restart httpd)。通过以上步骤,你已完成CentOS LAMP环境中数据库的配置与连接测试,可在此基础上开发动态Web应用(如WordPress、Laravel等)。