本页内容

  • 准备工作
  • 安装 LEMP 服务器
  • 为 phpMyAdmin 创建用户
  • 在 Alma Linux 8 上安装 phpMyAdmin
  • 为 phpMyAdmin 配置 Nginx
  • 配置防火墙
  • 访问 phpMyAdmin Web 界面
  • 总结

phpMyAdmin 是一款免费开源的 MySQL 和 MariaDB 数据库管理应用程序。它允许您通过基于 Web 的界面管理数据库、执行各种数据库相关任务以及运行查询。它使用 PHP 编写,提供了一个强大且用户友好的界面,用于通过 Web 浏览器管理数据库。它支持跨平台,可在包括 Windows、macOS、Linux 和 BSD 在内的多种操作系统上运行。

在本教程中,您将学习如何在 Alma Linux 8 上安装 phpMyAdmin。

准备工作

  • 一台运行 Alma Linux 8 的服务器。
  • 已指向您服务器 IP 的有效域名。
  • 服务器上已配置 root 密码。

安装 LEMP 服务器

首先,使用以下命令安装 Nginx Web 服务器和 MariaDB 数据库服务器:

dnf install nginx mariadb -y

接下来,使用以下命令安装 Remi PHP 软件仓库:

dnf -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

接下来,使用以下命令禁用默认的 PHP 模块并启用 Remi PHP 模块:

dnf module -y reset php
dnf module install php:remi-7.4 -y

接下来,使用以下命令安装 PHP 及其他所需扩展:

dnf install php php-cli php-common php-fpm php-curl php-gd php-mbstring php-process php-snmp php-xml php-zip php-memcached php-mysqlnd php-json php-mbstring php-pdo php-pdo-dblib php-xml unzip wget -y

所有软件包安装完成后,编辑 PHP-FPM 配置文件:

nano /etc/php-fpm.d/www.conf

将用户和组从 apache 改为 Nginx:

user = nginx
group = nginx

保存并关闭文件,然后使用以下命令启动并设置 Nginx、MariaDB 和 PHP-FPM 服务开机自启:

systemctl start nginx php-fpm mariadb
systemctl enable nginx php-fpm mariadb

为 phpMyAdmin 创建用户

接下来,建议为 phpMyAdmin 创建一个独立用户来执行所有数据库管理任务。首先,通过运行以下命令来加固 MariaDB:

mysql_secure_installation

该脚本将设置 root 密码、删除匿名用户、禁止 root 远程登录并删除测试数据库,如下所示:

Set root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

接下来,使用以下命令登录 MariaDB:

mysql

登录后,使用以下命令创建数据库和用户:

MariaDB [(none)]> CREATE DATABASE phpmyadmin CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'password';

接下来,授予 admin 用户所有权限:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%';

接下来,使用以下命令刷新权限并退出 MariaDB 控制台:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

在 Alma Linux 8 上安装 phpMyAdmin

接下来,从官方网站下载最新版本的 phpMyAdmin:

wget https://files.phpmyadmin.net/phpMyAdmin/5.1.3/phpMyAdmin-5.1.3-all-languages.zip

下载完成后,使用以下命令解压下载的文件:

unzip phpMyAdmin-5.1.3-all-languages.zip

接下来,将解压后的目录移动到 Nginx 网站根目录:

mv phpMyAdmin-5.1.3-all-languages /usr/share/nginx/phpmyadmin

接下来,使用以下命令复制示例配置文件:

cp /usr/share/nginx/phpmyadmin/config{.sample,}.inc.php

接下来,使用以下命令编辑配置文件:

nano /usr/share/nginx/phpmyadmin/config.inc.php

如下所示定义您的密钥(blowfish_secret):

$cfg['blowfish_secret'] = 'securekey';

保存并关闭文件,然后更改 phpMyAdmin 目录的属主:

chown -R nginx:nginx /usr/share/nginx/phpmyadmin
chown -R nginx:nginx /var/lib/php/session/

为 phpMyAdmin 配置 Nginx

接下来,您需要为 phpMyAdmin 创建一个 Nginx 虚拟主机配置文件。可以使用以下命令创建:

nano /etc/nginx/conf.d/phpmyadmin.conf

添加以下行:

server {
    listen       80;
    server_name  phpmyadmin.example.com;
    root         /usr/share/nginx/phpmyadmin;
    
    access_log /var/log/nginx/phpmyadmin_access.log;
    error_log /var/log/nginx/phpmyadmin_error.log;

    index   index.php;

    location / {
        try_files    $uri $uri/ /index.php?$args;
    }
    location ~ \.php$ {
         try_files $uri =404;
         fastcgi_intercept_errors on;
         include        fastcgi_params;
         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
         fastcgi_pass unix:/run/php-fpm/www.sock;
     }
}

保存并关闭文件,然后使用以下命令检查 Nginx 是否存在配置语法错误:

nginx -t

您将看到类似以下的输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

接下来,重启 Nginx 服务以使更改生效:

systemctl restart nginx php-fpm

现在可以使用以下命令验证 Nginx 状态:

systemctl status nginx

您应该会看到类似以下的输出:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           ??php-fpm.conf
   Active: active (running) since Fri 2022-04-15 10:06:39 UTC; 3s ago
  Process: 85445 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 85443 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 85442 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 85449 (nginx)
    Tasks: 2 (limit: 11412)
   Memory: 3.8M
   CGroup: /system.slice/nginx.service
           ??85449 nginx: master process /usr/sbin/nginx
           ??85450 nginx: worker process

Apr 15 10:06:39 linux systemd[1]: nginx.service: Succeeded.
Apr 15 10:06:39 linux systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Apr 15 10:06:39 linux systemd[1]: Starting The nginx HTTP and reverse proxy server...
Apr 15 10:06:39 linux nginx[85443]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Apr 15 10:06:39 linux nginx[85443]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Apr 15 10:06:39 linux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Apr 15 10:06:39 linux systemd[1]: Started The nginx HTTP and reverse proxy server.

配置防火墙

接下来,您需要允许 HTTP 服务通过防火墙。可以使用以下命令放行:

firewall-cmd --permanent --zone public --add-service http

接下来,重新加载防火墙以使更改生效:

firewall-cmd --reload

访问 phpMyAdmin Web 界面

现在,打开您的 Web 浏览器,使用 URL http://phpmyadmin.example.com 访问 phpMyAdmin。您应该会看到 phpMyAdmin 登录页面:

在 AlmaLinux 上安装并加固 phpMyAdmin

输入您的管理员用户名和密码,然后点击“执行”(Go)按钮。登录后,您应该会看到 phpMyAdmin 仪表盘:

在 AlmaLinux 上安装并加固 phpMyAdmin

点击“数据库”按钮。您应该会看到类似以下的页面:

在 AlmaLinux 上安装并加固 phpMyAdmin

输入您要创建的数据库名称,然后点击“创建”按钮。

在 AlmaLinux 上安装并加固 phpMyAdmin

选择您要删除的数据库,然后点击“丢弃”(Drop)按钮以删除数据库。您应该会看到类似以下的页面:

在 AlmaLinux 上安装并加固 phpMyAdmin

点击“确定”按钮以确认并删除所选数据库。

总结

恭喜!您已成功在 Alma Linux 8 上配合 Nginx 安装 phpMyAdmin。现在,您可以通过 Web 浏览器管理您的 MySQL 和 MariaDB 数据库。如果您有任何问题,欢迎随时向我提问。