杰瑞科技汇

phpMyAdmin安装教程,本地如何快速配置?

目录

  1. 【准备工作】 - 安装前的必要条件
  2. 【方法一:Linux (Ubuntu/Debian) - 最推荐】
    • 使用 APT 包管理器安装(最简单)
    • 手动安装(更灵活,推荐生产环境)
  3. 【方法二:Windows - XAMPP/WAMP 环境】

    使用 XAMPP 集成环境安装

    phpMyAdmin安装教程,本地如何快速配置?-图1
    (图片来源网络,侵删)
  4. 【方法三:Docker - 最现代、最隔离的方式】
  5. 【安装后配置与安全加固】 - 非常重要!
  6. 【常见问题与解决方案】

【准备工作】 - 安装前的必要条件

在安装 phpMyAdmin 之前,请确保你的系统已经满足以下条件:

  1. Web 服务器:已安装并运行,常见的选择有:
    • Apache (推荐,与 phpMyAdmin 兼容性最好)
    • Nginx (需要额外配置 php-fpm)
  2. PHP:已安装并运行,phpMyAdmin 需要 PHP 7.2 或更高版本,你可以通过以下命令检查 PHP 版本:
    php -v

    你需要安装一些 PHP 扩展,在 Debian/Ubuntu 系统上,可以使用以下命令安装:

    sudo apt update
    sudo apt install php php-mysql php-gd php-mbstring php-xml php-zip php-json php-curl
  3. MySQL/MariaDB 数据库:已安装并运行,并且你知道一个拥有管理员权限的用户(如 root)及其密码。

【方法一:Linux (Ubuntu/Debian) - 最推荐】

对于 Linux 服务器,这是最主流的安装方式。

方案 A:使用 APT 包管理器安装(最简单)

这种方法最省心,适合快速部署和测试。

phpMyAdmin安装教程,本地如何快速配置?-图2
(图片来源网络,侵删)
  1. 更新软件包列表

    sudo apt update
  2. 安装 phpMyAdmin

    sudo apt install phpmyadmin

    安装过程中会弹出一个图形化配置界面(如果终端支持):

    • Web server to reconfigure automatically:选择你的 Web 服务器,apache2,按空格键选中,然后按 Tab 键选择 OK
    • Configure database for phpmyadmin with dbconfig-common?:选择 <Yes> 来让系统自动为 phpMyAdmin 创建数据库和用户。
    • MySQL application password for phpmyadmin:在这里为 phpMyAdmin 的数据库用户设置一个密码,请务必记住这个密码,或者留空让系统自动生成一个安全的密码。
  3. 启用 Apache 的 rewrite 模块 这是为了让 phpMyAdmin 的 URL 重写功能正常工作。

    phpMyAdmin安装教程,本地如何快速配置?-图3
    (图片来源网络,侵删)
    sudo a2enmod rewrite
  4. 重启 Apache 服务

    sudo systemctl restart apache2
  5. 访问 phpMyAdmin 你可以在浏览器中访问 http://你的服务器IP/phpmyadminhttp://localhost/phpmyadmin

方案 B:手动安装(更灵活,推荐生产环境)

手动安装可以让你更好地控制文件位置和权限,并且总是能安装到最新的稳定版本。

  1. 下载 phpMyAdmin 访问 phpMyAdmin 官方下载页面,获取最新的稳定版(如 phpMyAdmin-x.x.x-all-languages.tar.gz)的下载链接,然后使用 wget 下载。

    # 请将下面的 URL 替换为最新的下载链接
    wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz
  2. 解压文件

    tar -xvzf phpMyAdmin-5.2.1-all-languages.tar.gz
  3. 移动文件到 Web 服务器根目录 我们通常把它放在 /var/www/ 目录下,并重命名为一个简单的名字,如 pma

    sudo mv phpMyAdmin-5.2.1-all-languages /var/www/pma
  4. 设置权限 确保Web服务器(如 www-data 用户)有权限读取这些文件。

    sudo chown -R www-data:www-data /var/www/pma
    sudo chmod -R 755 /var/www/pma
  5. 创建配置文件 进入 pma 目录,复制并重命名 config.sample.inc.phpconfig.inc.php

    cd /var/www/pma
    sudo cp config.sample.inc.php config.inc.php
  6. 编辑配置文件 使用 nanovim 编辑器打开 config.inc.php 文件。

    sudo nano config.inc.php

    找到以下配置项并进行修改:

    • $cfg['blowfish_secret']:这是一个用于 Cookie 认证的密钥。必须修改为一个随机的、复杂的字符串(至少32位字符)。

      $cfg['blowfish_secret'] = 'qwerasdfzxcv1234!@#$qwer'; // 修改成你自己的随机字符串
    • $cfg['Servers'][$i]['auth_type']:认证方式,可以设置为:

      • 'config':直接在配置文件中写用户名和密码(不安全,仅用于测试)。
      • 'cookie':使用用户名和密码登录(推荐)。
      • 'http':使用 HTTP 认证。
      • 'host':允许你输入主机名进行连接。 我们推荐使用 'cookie'
    • $cfg['Servers'][$i]['host']:数据库主机,默认是 'localhost',通常无需修改。

    • $cfg['Servers'][$i]['port']:数据库端口,默认是 3306,如果数据库使用其他端口,请修改。

    • $cfg['Servers'][$i]['controluser']$cfg['Servers'][$i]['controlpass']:这是推荐的最佳实践,创建一个专门用于 phpMyAdmin 连接的数据库用户,而不是使用 root,具体步骤见下文的【安全加固】部分。

  7. 配置 Web 服务器 你需要告诉 Apache 如何处理这个新的目录。

    • 对于 Apache,创建一个新的虚拟主机配置文件或修改默认配置。 在 /etc/apache2/sites-available/ 目录下创建一个新文件,pma.conf
      <Directory /var/www/pma>
          Options FollowSymLinks
          DirectoryIndex index.php
          AllowOverride All
          Require all granted
      </Directory>

      然后启用这个配置:

      sudo a2ensite pma.conf
      sudo a2enmod rewrite # 如果还没启用
      sudo systemctl reload apache2
  8. 访问 phpMyAdmin 在浏览器中访问 http://你的服务器IP/pma


【方法二:Windows - XAMPP/WAMP 环境】

如果你在 Windows 上使用 XAMPP 或 WAMP 这样的集成环境,安装非常简单。

  1. 下载 phpMyAdminphpMyAdmin 官方下载页面 下载最新版本的 .zip 压缩包。

  2. 解压文件 将下载的 .zip 文件解压到你的 XAMPP 安装目录下的 htdocs 文件夹中。C:\xampp\htdocs\。 为了方便,可以将解压后的文件夹重命名,pma

  3. 重命名配置文件 进入 pma 文件夹,找到 config.sample.inc.php 文件,将其重命名为 config.inc.php

  4. 编辑配置文件 用记事本或代码编辑器(如 VS Code)打开 config.inc.php

    • 找到 $cfg['blowfish_secret'],将其值修改为一个随机的字符串。
    • 确保 $cfg['Servers'][$i]['host'] 的值是 'localhost'
  5. 访问 phpMyAdmin 启动 XAMPP Control Panel 中的 Apache 和 MySQL 服务,然后在浏览器中访问 http://localhost/pma


【方法三:Docker - 最现代、最隔离的方式】

使用 Docker 可以完美隔离 phpMyAdmin 环境,非常适合开发和测试。

  1. 确保已安装 Docker 和 Docker Compose

  2. 创建 docker-compose.yml 文件 在你的项目目录下,创建一个名为 docker-compose.yml 的文件,内容如下:

    version: '3.7'
    services:
      # MySQL/MariaDB 服务
      db:
        image: mysql:8.0
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: your_strong_root_password # 请务必修改
          MYSQL_DATABASE: phpmyadmin
          MYSQL_USER: pma_user
          MYSQL_PASSWORD: your_strong_pma_password # 请务必修改
        volumes:
          - db_data:/var/lib/mysql
      # phpMyAdmin 服务
      pma:
        image: phpmyadmin/phpmyadmin
        restart: always
        depends_on:
          - db
        ports:
          - "8080:80" # 将主机的 8080 端口映射到容器的 80 端口
        environment:
          PMA_HOST: db # 连接到 db 服务的名称
          PMA_USER: pma_user # 上面创建的用户
          PMA_PASSWORD: your_strong_pma_password # 上面设置的密码
          PMA_ARBITRARY: 1 # 允许连接到任意 MySQL 服务器
    volumes:
      db_data:
  3. 启动服务docker-compose.yml 文件所在的目录下,运行以下命令:

    docker-compose up -d
  4. 访问 phpMyAdmin 等待几秒钟,让容器启动完成,然后在浏览器中访问 http://localhost:8080。 你可以使用 root/your_strong_root_passwordpma_user/your_strong_pma_password 登录。


【安装后配置与安全加固】 - 非常重要!

默认安装的 phpMyAdmin 存在安全风险,请务必进行以下加固操作。

  1. 修改或禁用 root 用户登录

    • 最佳实践:不要使用 root 用户通过 phpMyAdmin 登录,创建一个专门的管理员用户,并授予其 SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX 等权限。
    • 修改配置:在 config.inc.php 中,你可以禁用 root 用户登录:
      $cfg['Servers'][$i]['AllowRoot'] = false; // 禁止 root 用户登录
  2. 设置控制用户(推荐) 在 MySQL/MariaDB 中创建一个只用于 phpMyAdmin 连接的低权限用户。

    -- 登录到 MySQL
    mysql -u root -p
    -- 创建数据库(如果手动安装时没有创建)
    CREATE DATABASE phpmyadmin;
    -- 创建用户
    CREATE USER 'pma_user'@'localhost' IDENTIFIED BY '一个强密码';
    -- 授予该用户对 phpmyadmin 数据库的所有权限
    GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma_user'@'localhost';
    -- 刷新权限
    FLUSH PRIVILEGES;

    然后在 config.inc.php 中配置这个用户:

    $cfg['Servers'][$i]['controluser'] = 'pma_user';
    $cfg['Servers'][$i]['controlpass'] = '一个强密码';
  3. 限制访问 IP 地址 这是防止公网访问的最有效方法之一,只允许你的本地 IP 或办公网络 IP 访问。

    • 在 Apache 中:修改 .htaccess 文件(需要启用 AllowOverride All)或在虚拟主机配置中添加:
      <Directory /var/www/pma>
          Order deny,allow
          Deny from all
          Allow from 127.0.0.1
          Allow from 192.168.1.0/24 # 允许你的局域网
      </Directory>
    • 在 Nginx 中:在 server 块中添加:
      location /pma {
          allow 127.0.0.1;
          allow 192.168.1.0/24;
          deny all;
      }
  4. 隐藏版本信息config.inc.php 中添加以下配置,防止攻击者获取你的 phpMyAdmin 版本信息。

    $cfg['VersionCheck'] = false;
  5. 使用 .htaccess 密码保护(Apache) 即使设置了 IP 限制,也可以再加一层密码保护。

    sudo htpasswd -c /etc/apache2/.htpasswd 你的用户名

    然后在 phpMyAdmin 目录下的 .htaccess 文件中添加:

    AuthType Basic
    AuthName "Restricted Area"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user

【常见问题与解决方案】

  • 问题 1:登录后出现 "Cannot log in to the MySQL server" 错误。

    • 原因:数据库连接信息错误(主机、端口、用户名、密码)。
    • 解决:检查 config.inc.php 中的 $cfg['Servers'][$i]['host'], $cfg['Servers'][$i]['port'] 是否正确,确认你使用的用户名和密码是否正确,并且该用户有访问 phpMyAdmin 的权限。
  • 问题 2:页面样式错乱,显示大量代码或 CSS 文件加载失败。

    • 原因:PHP 的 mbstring 扩展未安装,或 Web 服务器配置不正确(如 URL 重写)。
    • 解决:确保已安装 php-mbstring 扩展并重启 Web 服务器,如果是手动安装,检查 Apache 的 rewrite 模块是否已启用。
  • 问题 3:出现 "The $cfg['PmaAbsoluteUri'] directive MUST be set in your configuration file." 错误。

    • 原因:phpMyAdmin 不知道它自己的 URL 是什么。
    • 解决:在 config.inc.php 中添加或修改 $cfg['PmaAbsoluteUri'],设置为你的 phpMyAdmin 的完整访问地址。
      $cfg['PmaAbsoluteUri'] = 'http://localhost/pma/'; // 注意末尾的斜杠
  • 问题 4:在 Docker 中无法连接到数据库。

    • 原因:服务名或环境变量配置错误。
    • 解决:检查 docker-compose.yml 文件中 pma 服务的 PMA_HOST 是否与 db 服务的 service name 一致,检查 PMA_USERPMA_PASSWORD 是否与 MySQL 服务中创建的用户信息完全匹配。
分享:
扫描分享到社交APP
上一篇
下一篇