温馨提示×

LNMP在Ubuntu上的数据库如何配置

小樊
45
2025-11-10 16:11:18
栏目: 智能运维

LNMP在Ubuntu上的数据库配置指南
LNMP(Linux + Nginx + MySQL/MariaDB + PHP)是常见的Web服务架构,数据库(MySQL/MariaDB)是其中的核心组件之一。以下是在Ubuntu上配置LNMP数据库的详细步骤:

1. 安装MySQL/MariaDB数据库

Ubuntu上可选择安装MySQL或MariaDB(MySQL的开源分支),两者配置流程类似。以MariaDB为例,执行以下命令:

sudo apt update
sudo apt install mariadb-server -y

安装过程中,系统会提示设置root用户密码(务必记住,后续配置需用到)。安装完成后,启动MariaDB服务并设置开机自启:

sudo systemctl start mariadb
sudo systemctl enable mariadb

2. 提升数据库安全性

运行安全脚本,完成以下关键配置:

sudo mysql_secure_installation

按提示操作:

  • 设置root密码(若未在安装时设置);
  • 删除匿名用户(避免未授权访问);
  • 禁止root远程登录(仅允许本地访问,提升安全性);
  • 删除测试数据库(避免安全隐患)。

3. 登录数据库管理界面

使用root用户登录MariaDB(本地登录无需密码,若配置了远程访问需用密码):

sudo mysql -u root -p

输入root密码后进入MariaDB命令行界面(提示符变为mariadb>)。

4. 创建数据库与用户

为Web应用创建专用数据库和用户(避免直接使用root用户),并授予权限:

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

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

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

-- 刷新权限(使更改立即生效)
FLUSH PRIVILEGES;

-- 退出数据库
EXIT;

注意:密码需包含大小写字母、数字和特殊字符(如!@#$%^&*),长度不少于8位。

5. 配置PHP连接数据库

LNMP中的PHP需安装mysql扩展才能连接MySQL/MariaDB,Ubuntu安装PHP时通常会自动包含该扩展。若未安装,执行:

sudo apt install php-mysql -y

安装完成后,重启PHP-FPM服务(使扩展生效):

sudo systemctl restart php7.4-fpm  # 根据PHP版本调整(如php8.1-fpm)

6. 测试数据库连接

在Web根目录(如/var/www/html)创建测试脚本db_test.php,内容如下:

<?php
$servername = "localhost";
$username = "bloguser";
$password = "YourSecurePassword123!";
$dbname = "myblog";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Database connected successfully!";
$conn->close();
?>

保存后,在浏览器中访问http://your_server_ip/db_test.php。若显示“Database connected successfully!”,说明数据库配置成功。

7. 配置Nginx支持PHP(关联数据库与Web)

确保Nginx能处理PHP请求(将动态请求转发给PHP-FPM)。编辑Nginx默认站点配置文件:

sudo nano /etc/nginx/sites-available/default

server块中添加以下内容(若已存在则修改):

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;  # 根据PHP版本调整路径(如php8.1-fpm.sock)
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

保存后,测试Nginx配置语法是否正确:

sudo nginx -t

若无错误,重新加载Nginx:

sudo systemctl reload nginx

8. 后续优化(可选)

  • 修改数据库绑定地址:若需远程访问数据库,编辑/etc/mysql/mariadb.conf.d/50-server.cnf,将bind-address = 127.0.0.1改为服务器公网IP,然后重启MariaDB。
  • 配置防火墙:若使用UFW,允许HTTP(80)和HTTPS(443)流量:sudo ufw allow 'Nginx Full'
  • 定期备份:使用mysqldump命令备份数据库(如mysqldump -u bloguser -p myblog > myblog_backup.sql)。

通过以上步骤,即可在Ubuntu上完成LNMP环境的数据库配置,为WordPress、Laravel等Web应用提供数据支持。

0