当前位置: 首页 > news >正文

CentOS 7 源码版 PhpMyAdmin 安装指南(适配 Nginx+PHP-FPM 环境)

一、PhpMyAdmin 简介

PhpMyAdmin 是一款由 PHP 语言开发的开源、免费数据库管理工具,专为 MySQL 和 MariaDB 数据库设计,自 1998 年首次发布以来,已成为全球数百万开发者和运维人员管理数据库的首选工具之一。它通过 Web 浏览器提供可视化操作界面,将复杂的 SQL 命令转化为直观的点击操作,大幅降低了数据库管理的技术门槛,无需本地安装客户端即可远程管理数据库。

1.1 核心功能

  • 数据库基础操作:支持创建、删除、重命名数据库,以及查看数据库容量、字符集、存储引擎等基础信息,无需手动执行 CREATE DATABASE 或 DROP DATABASE 等 SQL 命令。
  • 数据表全流程管理:可可视化创建数据表(自定义字段名、数据类型、长度、主键、外键、索引等),支持插入、修改、删除数据,还能批量导入 / 导出数据(支持 SQL、CSV、Excel、JSON 等多种格式),满足数据迁移与备份需求。
  • SQL 工具集:内置 SQL 编辑器,支持语法高亮、代码补全、SQL 语句格式化,可直接执行自定义 SQL 脚本;提供 SQL 查询历史记录,方便回溯操作;还能生成数据表的创建 / 删除 SQL 语句,辅助自动化运维。
  • 用户与权限管理:支持管理 MySQL/MariaDB 用户(创建、删除、修改密码),并可精细化分配权限(如仅允许某用户操作指定数据库的查询权限,禁止删除操作),符合企业级权限管控需求。
  • 性能监控与优化:可查看数据库服务器状态(如连接数、CPU 使用率、内存占用)、数据表索引使用情况,还能通过 “慢查询日志” 定位低效 SQL,辅助优化数据库性能。

1.2 优势特点

  • 跨平台兼容性:支持 Windows、Linux、macOS 等主流操作系统,只要服务器部署了 PHP+Web 服务器(如 Nginx、Apache),即可通过浏览器访问,无需依赖特定客户端。
  • 轻量易部署:源码包体积小(通常仅几十 MB),无复杂依赖(核心依赖 PHP 与数据库服务),安装配置步骤简单,适合个人开发者、中小企业快速搭建数据库管理环境。
  • 开源可控:基于 GNU 通用公共许可证(GPL)开源,可自由修改源码以适配个性化需求,且社区活跃,定期更新安全补丁与功能迭代,保障使用安全性。
  • 多语言支持:内置中文、英文、日文等数十种语言,可在界面中直接切换,降低非英语用户的使用门槛。

1.3 适用场景

  • 个人开发与测试:本地搭建 LAMP/LNMP 环境时,通过 PhpMyAdmin 快速管理测试数据库,无需记忆复杂 SQL 命令。
  • 中小企业运维:运维人员远程管理服务器上的 MySQL/MariaDB 数据库,执行数据备份、用户权限调整等日常操作。
  • Web 应用配套:作为 CMS 系统(如 WordPress)、电商系统等 Web 应用的数据库管理工具,方便用户在后台间接管理数据。

二、前置环境检查(关键!)

PhpMyAdmin 依赖 PHP 环境与 MySQL/MariaDB 服务,安装前需确认以下条件已满足:

2.1 确认 PHP 与 PHP-FPM 正常运行

# 1. 检查 PHP 版本(需 ≥ 7.1,推荐 7.3+,与前文安装的 PHP 7.3 适配)

php -v

# 输出类似:PHP 7.3.33 (cli) (built: Oct 26 2022 14:14:18) 表示正常

# 2. 检查 PHP-FPM 服务状态(需 active (running))

systemctl status php-fpm # yum 安装方案

# 或 源码安装方案:/etc/init.d/php-fpm status

2.2 确认 MySQL/MariaDB 服务正常(可选,安装详细步骤可以参考前面的文章)

# 检查 MySQL/MariaDB 服务状态

systemctl status mariadb # CentOS 7 默认自带 MariaDB

# 或 systemctl status mysql(若手动安装 MySQL)

# 若未安装,先执行安装(以 MariaDB 为例)

yum install -y mariadb-server

systemctl start mariadb

systemctl enable mariadb

# 初始化数据库(设置 root 密码、删除匿名用户等)

mysql_secure_installation

2.3 确认 PHP 必需扩展已安装

PhpMyAdmin 依赖 mysqli、gd、mbstring 等 PHP 扩展,需确保已安装:

# 查看已安装的 PHP 扩展

php -m | grep -E "mysqli|gd|mbstring|json"

# 若缺失,通过 yum 安装(yum 安装 PHP 方案)

yum install -y php-mysqli php-gd php-mbstring

# 源码安装 PHP 方案:需在编译时添加 --with-mysqli --with-gd --enable-mbstring 参数(参考前文)

# 安装完成后重启 PHP-FPM 生效

systemctl restart php-fpm # yum 方案

# 或 源码方案:/etc/init.d/php-fpm restart

三、源码安装 PhpMyAdmin 步骤

3.1 下载 PhpMyAdmin 源码包

​访问phpMyAdmin,获取最新稳定版源码包地址(本文以 5.0.1 版本为例,适配 PHP 7.3)或者直接命令下载(外网环境直接 wget;内网需先在外网下载再传输),我放在/usr/share/nginx/html下,可自定义。

wget https://files.phpmyadmin.net/phpMyAdmin/5.0.1/phpMyAdmin-5.0.1-all-languages.tar.gz

解压源码包并改名(简化访问路径):

# 进入 Nginx 网站根目录(默认 /usr/share/nginx/html,可自定义)

cd /usr/share/nginx/html

# 解压

tar -zxvf phpMyAdmin-5.0.1-all-languages.tar.gz

# 重命名为 phpmyadmin(方便后续访问,如 http://IP/phpmyadmin)

mv phpMyAdmin-5.0.1-all-languages phpmyadmin

3.2 配置 PhpMyAdmin 核心文件

PhpMyAdmin 需通过配置文件连接 MySQL 服务,默认提供模板文件,需复制并修改关键参数:

进入配置目录,复制模板文件:

cd /usr/share/nginx/html/phpmyadmin

# 复制默认配置模板为正式配置文件

cp config.sample.inc.php config.inc.php

编辑配置文件,设置 blowfish_secret 和 MySQL 连接方式:

vi config.inc.php

关键配置修改(按以下内容调整):

<?php

$cfg['blowfish_secret'] = 'doris_phpmyadmin_2024!@#'; // 必填!自定义随机字符串(≥32位更佳)

$i = 0;

$i++;

$cfg['Servers'][$i]['verbose'] = 'MySQL'; // 服务器名称(自定义)

$cfg['Servers'][$i]['host'] = 'localhost'; // MySQL 地址(本地填 localhost,远程填 IP)

$cfg['Servers'][$i]['port'] = '3306'; // MySQL 端口(默认 3306)

$cfg['Servers'][$i]['socket'] = ''; // 本地连接用 socket(默认空即可)

$cfg['Servers'][$i]['auth_type'] = 'cookie'; // 认证方式(cookie 推荐,需登录)

$cfg['Servers'][$i]['user'] = ''; // 默认空(登录时手动输入 MySQL 用户名)

$cfg['Servers'][$i]['password'] = ''; // 默认空(登录时手动输入密码)

$cfg['Servers'][$i]['database'] = ''; // 默认空(不指定默认数据库)

$cfg['Servers'][$i]['AllowNoPassword'] = false; // 禁止空密码登录(安全推荐)

$cfg['Servers'][$i]['AllowRoot'] = true; // 允许 root 用户登录(根据需求调整)

?>

  • 注意:blowfish_secret 用于加密会话数据,必须填写(可随机生成,如通过 openssl rand -hex 16 生成 16 位随机字符串)。

3.3 配置 Nginx 支持 PhpMyAdmin

需确保 Nginx 已正确配置 PHP 解析(参考前文),若未配置或需单独优化 PhpMyAdmin 访问,可添加专项配置:

编辑 Nginx 虚拟主机配置文件:

在 server 块中添加 PhpMyAdmin 访问规则(若已配置 PHP 解析,可跳过此步,直接使用默认规则):

server {

listen 80;

server_name localhost; # 可改为服务器 IP 或域名

root /usr/share/nginx/html; # 网站根目录

index index.html index.php; # 默认首页(添加 index.php)

# PhpMyAdmin 路径匹配(若已配置全局 PHP 解析,此段可省略)

location /phpmyadmin/ {

alias /usr/share/nginx/html/phpmyadmin/; # 指向 PhpMyAdmin 目录

try_files $uri $uri/ /phpmyadmin/index.php?$args; # 重定向到 index.php

}

# PHP 解析规则(关键!确保已配置)

location ~ \.php$ {

root /usr/share/nginx/html;

fastcgi_pass 127.0.0.1:9000; # 对接 PHP-FPM 端口(与前文配置一致)

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 路径必须正确

include fastcgi_params;

}

}

检查 Nginx 配置语法并重启服务:

# 检查配置语法(无报错则正常)

nginx -t

# 重启 Nginx 生效

systemctl restart nginx

3.4 调整目录权限(避免权限报错)

PhpMyAdmin 需写入临时文件(如会话数据、缓存),需确保 Nginx 运行用户有目录权限:

# 1. 查看 Nginx 运行用户(默认 nginx,若自定义需替换)

grep "user" /etc/nginx/nginx.conf # 输出类似:user nginx;

# 2. 赋予 PhpMyAdmin 目录权限(所有者为 nginx)

chown -R nginx:nginx /usr/share/nginx/html/phpmyadmin/

# 3. 调整目录权限(读写执行权限)

chmod -R 755 /usr/share/nginx/html/phpmyadmin/

# 4. (可选)创建临时目录并授权(若报错“缺少 tmp 目录”)

mkdir -p /usr/share/nginx/html/phpmyadmin/tmp

chown -R nginx:nginx /usr/share/nginx/html/phpmyadmin/tmp

chmod 770 /usr/share/nginx/html/phpmyadmin/tmp

# 并在 config.inc.php 中添加:$cfg['TempDir'] = '/usr/share/nginx/html/phpmyadmin/tmp';

四、访问与验证 PhpMyAdmin

4.1 浏览器访问

在本地浏览器输入 http://服务器IP/phpmyadmin(如 http://192.168.1.100/phpmyadmin),将显示 PhpMyAdmin 登录页面:

  • 输入 MySQL/MariaDB 数据账户的用户名(如 root)和密码
  • 点击 “执行” 登录,若成功进入管理界面(显示数据库列表、表结构),说明安装配置完成。

4.2 基础操作验证

登录后可进行简单操作验证功能是否正常:

  • 新建数据库:点击左侧 “新建”,输入数据库名(如 test_db),选择字符集(如 utf8mb4),点击 “创建”。
  • 新建表:进入 test_db,输入表名(如 user)和字段数(如 2),点击 “执行”,添加 id(INT 类型)和 name(VARCHAR 类型)字段,保存。
  • 插入数据:点击 “插入”,填写 id=1、name=test,点击 “执行”,查看数据是否成功插入。

五、常见问题与解决办法

5.1 访问登录页显示空白 / 报错 “500 Internal Server Error”

  • 原因 1:PHP 扩展缺失(如 mysqli 未安装)

解决:安装缺失扩展(yum install -y php-mysqli),重启 PHP-FPM(systemctl restart php-fpm)。

  • 原因 2:blowfish_secret 未配置或长度不足

解决:编辑 config.inc.php,填写 ≥32 位的随机字符串(如 $cfg['blowfish_secret'] = 'abcdef1234567890abcdef1234567890';)。

  • 原因 3:目录权限不足

解决:重新执行权限调整命令(chown -R nginx:nginx /usr/share/nginx/html/phpmyadmin/)。

5.2 登录后报错 “#2002 无法登录 MySQL 服务器”

  • 原因 1:MySQL 服务未启动

解决:启动 MySQL(systemctl start mariadb),设置开机自启(systemctl enable mariadb)。

  • 原因 2:config.inc.php 中 host 配置错误(如远程 MySQL 地址填错)

解决:确认 MySQL 地址,本地填 localhost,远程填实际 IP,且确保 MySQL 允许外部访问(需配置 bind-address = 0.0.0.0 并授权远程用户)。

5.3 上传大文件 / 导入大 SQL 报错 “上传的文件超出了 PHP 的限制”

  • 原因:PHP 配置中 upload_max_filesize、post_max_size 限制过小(默认 2M)

解决:编辑 PHP 配置文件(/etc/php.ini 或 /usr/local/php/etc/php.ini,根据安装方式选择):

upload_max_filesize = 50M # 上传文件最大限制

post_max_size = 50M # POST 数据最大限制

max_execution_time = 300 # 脚本执行时间(秒,避免导入超时)

重启 PHP-FPM(systemctl restart php-fpm)生效。

六、安全优化建议(可选)

为提升 PhpMyAdmin 安全性,推荐进行以下优化:

  • 修改访问路径:将 phpmyadmin 目录改名为复杂名称(如 phpmyadmin_2024),避免暴力破解(需同步修改 Nginx 配置中的 location 路径)。
  • 限制 IP 访问:在 Nginx 配置中添加 IP 白名单,仅允许指定 IP 访问 PhpMyAdmin:

location /phpmyadmin/ {

allow 192.168.1.0/24; # 允许内网 IP 段访问

deny all; # 拒绝其他所有 IP

alias /usr/share/nginx/html/phpmyadmin/;

try_files $uri $uri/ /phpmyadmin/index.php?$args;

}

  • 禁用 root 登录:编辑 config.inc.php,设置 $cfg['Servers'][$i]['AllowRoot'] = false;,创建普通 MySQL 用户并授权管理数据库。
  • 定期更新:关注 PhpMyAdmin 官网,及时下载更新补丁,修复安全漏洞(源码更新需覆盖旧文件,保留 config.inc.php 配置)。

通过本文步骤,可在 CentOS 7 系统中基于源码完成 PhpMyAdmin 安装,完美适配前文部署的 Nginx+PHP-FPM 环境。若需迁移或升级,只需备份 config.inc.php 配置文件和数据,即可快速完成操作,确保数据库管理的便捷性与安全性。


文章转载自:

http://JG5blDbc.mjybt.cn
http://QUwLTcUR.mjybt.cn
http://xhPnNads.mjybt.cn
http://vRvUOFXr.mjybt.cn
http://4pAtOT10.mjybt.cn
http://x3RDxWDs.mjybt.cn
http://iYEYOe7c.mjybt.cn
http://aPwEHEqi.mjybt.cn
http://T5FKQzPS.mjybt.cn
http://acIcHpSd.mjybt.cn
http://wh1xo7Il.mjybt.cn
http://TIP7Jqyn.mjybt.cn
http://xeFVBLvd.mjybt.cn
http://0DmxCD8F.mjybt.cn
http://Ggf6tUrH.mjybt.cn
http://ij38rjkt.mjybt.cn
http://7wh9eGJg.mjybt.cn
http://Fge4fk7h.mjybt.cn
http://wspbmIJc.mjybt.cn
http://HEseMEZX.mjybt.cn
http://Yserqa56.mjybt.cn
http://bPlnKmds.mjybt.cn
http://iKybzldr.mjybt.cn
http://mZQayKSv.mjybt.cn
http://Pfjx66xz.mjybt.cn
http://1iAqJWKY.mjybt.cn
http://6K5DqmHp.mjybt.cn
http://mWhQSJw3.mjybt.cn
http://BnbVXFVO.mjybt.cn
http://xPa1gmiw.mjybt.cn
http://www.dtcms.com/a/387485.html

相关文章:

  • 在 WSL Ubuntu 上使用 Docker 搭建可被 Ansible 控制的受控节点环境
  • 数据赋能,安全护航——D-QS工程造价数字化平台的数据治理与行业应用
  • Matplotlib 可视化:从基础绘图到高级定制
  • 知识管理与高效学习技术
  • 【AI总结】万字长文预警!Spring Boot 4 全景深度解析:从虚拟线程到声明式 HTTP 客户端,再到云原生最佳实践
  • 小杰机器学习(eight)——tensorflow进行线性回归——算法实现、数据加载、模型定义、模型保存与加载、查看网络结构。
  • 什么是网络安全态势感知
  • O3.6opencv风格迁移和人脸识别
  • uniapp h5本地域名调试解决跨域
  • IvorySQL 与 deepin 完成兼容性认证,共创开源生态新篇章
  • vue和springboot和ngnix跨域问题
  • 云边云科技4G路由器:连锁门店智慧联网的可靠基石
  • Ubuntu修改环境变量
  • 3D影像地形图的制作:利用ArcGISPro
  • ZEMAX光学设计流程:从基础到复杂系统实战
  • Android 项目:画图白板APP开发(九)——撤销、恢复(覆盖前文所有功能)
  • 设计模式(C++)详解——组合模式(Composite Pattern)(2)
  • Android中获取用户的国家码
  • JVM性能优化总结
  • 【js】js将金额转千百十元角分的打印格式:
  • 硬件(十三)模拟转数字ADC转换
  • OpenEuler系统下部署MySQL数据库
  • 异步MySQL连接池实现
  • 用Python 连接 MySQL数据库测试实战脚本(文中含源代码)
  • vue中下载文件保存格式和加密方式
  • typescript和vue和node项目的构建打包部署
  • Chat2DB+cpolar组合突破物理限制,成为数据库查询新解
  • Power BI 组件 AI Chart 技术解析:自然语言驱动的可视化革新
  • 【Linux网络】网络传输基本流程
  • 【开题答辩全过程】以 Boss直聘网站数据分析与可视化为例,包含答辩的问题和答案